propagate video_id field on getting playlists

This commit is contained in:
diogo 2021-08-09 09:47:37 +02:00
parent e785dcbc22
commit e98751c879
No known key found for this signature in database
GPG Key ID: ED45B7CCDB979B99
2 changed files with 13 additions and 13 deletions

View File

@ -2440,7 +2440,7 @@ end
offset ||= env.params.query["page"]?.try &.to_i?.try { |page| (page - 1) * 100 } offset ||= env.params.query["page"]?.try &.to_i?.try { |page| (page - 1) * 100 }
offset ||= 0 offset ||= 0
continuation = env.params.query["continuation"]? video_id = env.params.query["continuation"]?
format = env.params.query["format"]? format = env.params.query["format"]?
format ||= "json" format ||= "json"
@ -2474,7 +2474,7 @@ end
# it shouldn't happen often though # it shouldn't happen often though
lookback = 0 lookback = 0
response = playlist.to_json(offset, locale, continuation: continuation) response = playlist.to_json(offset, locale, video_id: video_id)
json_response = JSON.parse(response) json_response = JSON.parse(response)
if json_response["videos"].as_a[0]["index"] != offset if json_response["videos"].as_a[0]["index"] != offset

View File

@ -107,7 +107,7 @@ struct Playlist
property updated : Time property updated : Time
property thumbnail : String? property thumbnail : String?
def to_json(offset, locale, json : JSON::Builder, continuation : String? = nil) def to_json(offset, locale, json : JSON::Builder, video_id : String? = nil)
json.object do json.object do
json.field "type", "playlist" json.field "type", "playlist"
json.field "title", self.title json.field "title", self.title
@ -142,7 +142,7 @@ struct Playlist
json.field "videos" do json.field "videos" do
json.array do json.array do
videos = get_playlist_videos(PG_DB, self, offset: offset, locale: locale, continuation: continuation) videos = get_playlist_videos(PG_DB, self, offset: offset, locale: locale, video_id: video_id)
videos.each_with_index do |video, index| videos.each_with_index do |video, index|
video.to_json(locale, json) video.to_json(locale, json)
end end
@ -151,12 +151,12 @@ struct Playlist
end end
end end
def to_json(offset, locale, json : JSON::Builder? = nil, continuation : String? = nil) def to_json(offset, locale, json : JSON::Builder? = nil, video_id : String? = nil)
if json if json
to_json(offset, locale, json, continuation: continuation) to_json(offset, locale, json, video_id: video_id)
else else
JSON.build do |json| JSON.build do |json|
to_json(offset, locale, json, continuation: continuation) to_json(offset, locale, json, video_id: video_id)
end end
end end
end end
@ -196,7 +196,7 @@ struct InvidiousPlaylist
end end
end end
def to_json(offset, locale, json : JSON::Builder, continuation : String? = nil) def to_json(offset, locale, json : JSON::Builder, video_id : String? = nil)
json.object do json.object do
json.field "type", "invidiousPlaylist" json.field "type", "invidiousPlaylist"
json.field "title", self.title json.field "title", self.title
@ -218,11 +218,11 @@ struct InvidiousPlaylist
json.field "videos" do json.field "videos" do
json.array do json.array do
if !offset || offset == 0 if !offset || offset == 0
index = PG_DB.query_one?("SELECT index FROM playlist_videos WHERE plid = $1 AND id = $2 LIMIT 1", self.id, continuation, as: Int64) index = PG_DB.query_one?("SELECT index FROM playlist_videos WHERE plid = $1 AND id = $2 LIMIT 1", self.id, video_id, as: Int64)
offset = self.index.index(index) || 0 offset = self.index.index(index) || 0
end end
videos = get_playlist_videos(PG_DB, self, offset: offset, locale: locale, continuation: continuation) videos = get_playlist_videos(PG_DB, self, offset: offset, locale: locale, video_id: video_id)
videos.each_with_index do |video, index| videos.each_with_index do |video, index|
video.to_json(locale, json, offset + index) video.to_json(locale, json, offset + index)
end end
@ -231,12 +231,12 @@ struct InvidiousPlaylist
end end
end end
def to_json(offset, locale, json : JSON::Builder? = nil, continuation : String? = nil) def to_json(offset, locale, json : JSON::Builder? = nil, video_id : String? = nil)
if json if json
to_json(offset, locale, json, continuation: continuation) to_json(offset, locale, json, video_id: video_id)
else else
JSON.build do |json| JSON.build do |json|
to_json(offset, locale, json, continuation: continuation) to_json(offset, locale, json, video_id: video_id)
end end
end end
end end