mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-11-04 06:31:57 +00:00 
			
		
		
		
	propagate video_id field on getting playlists
This commit is contained in:
		@@ -107,7 +107,7 @@ struct Playlist
 | 
			
		||||
  property updated : Time
 | 
			
		||||
  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.field "type", "playlist"
 | 
			
		||||
      json.field "title", self.title
 | 
			
		||||
@@ -142,7 +142,7 @@ struct Playlist
 | 
			
		||||
 | 
			
		||||
      json.field "videos" 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|
 | 
			
		||||
            video.to_json(locale, json)
 | 
			
		||||
          end
 | 
			
		||||
@@ -151,12 +151,12 @@ struct Playlist
 | 
			
		||||
    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
 | 
			
		||||
      to_json(offset, locale, json, continuation: continuation)
 | 
			
		||||
      to_json(offset, locale, json, video_id: video_id)
 | 
			
		||||
    else
 | 
			
		||||
      JSON.build do |json|
 | 
			
		||||
        to_json(offset, locale, json, continuation: continuation)
 | 
			
		||||
        to_json(offset, locale, json, video_id: video_id)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
@@ -196,7 +196,7 @@ struct InvidiousPlaylist
 | 
			
		||||
    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.field "type", "invidiousPlaylist"
 | 
			
		||||
      json.field "title", self.title
 | 
			
		||||
@@ -218,11 +218,11 @@ struct InvidiousPlaylist
 | 
			
		||||
      json.field "videos" do
 | 
			
		||||
        json.array do
 | 
			
		||||
          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
 | 
			
		||||
          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|
 | 
			
		||||
            video.to_json(locale, json, offset + index)
 | 
			
		||||
          end
 | 
			
		||||
@@ -231,12 +231,12 @@ struct InvidiousPlaylist
 | 
			
		||||
    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
 | 
			
		||||
      to_json(offset, locale, json, continuation: continuation)
 | 
			
		||||
      to_json(offset, locale, json, video_id: video_id)
 | 
			
		||||
    else
 | 
			
		||||
      JSON.build do |json|
 | 
			
		||||
        to_json(offset, locale, json, continuation: continuation)
 | 
			
		||||
        to_json(offset, locale, json, video_id: video_id)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,7 @@ module Invidious::Routes::API::V1::Misc
 | 
			
		||||
      #  First we find the actual offset, and then we lookback
 | 
			
		||||
      #  it shouldn't happen often though
 | 
			
		||||
 | 
			
		||||
      response = playlist.to_json(offset, locale, continuation: continuation)
 | 
			
		||||
      response = playlist.to_json(offset, locale, video_id: video_id)
 | 
			
		||||
      json_response = JSON.parse(response)
 | 
			
		||||
 | 
			
		||||
      if json_response["videos"].as_a[0]["index"] != offset
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user