mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-05-31 14:11:54 +05:30 
			
		
		
		
	Remove useless arguments from playlist-related functions
This commit is contained in:
		@@ -90,7 +90,7 @@ struct Playlist
 | 
			
		||||
  property updated : Time
 | 
			
		||||
  property thumbnail : String?
 | 
			
		||||
 | 
			
		||||
  def to_json(offset, locale, json : JSON::Builder, video_id : String? = nil)
 | 
			
		||||
  def to_json(offset, json : JSON::Builder, video_id : String? = nil)
 | 
			
		||||
    json.object do
 | 
			
		||||
      json.field "type", "playlist"
 | 
			
		||||
      json.field "title", self.title
 | 
			
		||||
@@ -125,7 +125,7 @@ struct Playlist
 | 
			
		||||
 | 
			
		||||
      json.field "videos" do
 | 
			
		||||
        json.array do
 | 
			
		||||
          videos = get_playlist_videos(self, offset: offset, locale: locale, video_id: video_id)
 | 
			
		||||
          videos = get_playlist_videos(self, offset: offset, video_id: video_id)
 | 
			
		||||
          videos.each do |video|
 | 
			
		||||
            video.to_json(json)
 | 
			
		||||
          end
 | 
			
		||||
@@ -134,13 +134,9 @@ struct Playlist
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def to_json(offset, locale, json : JSON::Builder? = nil, video_id : String? = nil)
 | 
			
		||||
    if json
 | 
			
		||||
      to_json(offset, locale, json, video_id: video_id)
 | 
			
		||||
    else
 | 
			
		||||
  def to_json(offset, _json : Nil = nil, video_id : String? = nil)
 | 
			
		||||
    JSON.build do |json|
 | 
			
		||||
        to_json(offset, locale, json, video_id: video_id)
 | 
			
		||||
      end
 | 
			
		||||
      to_json(offset, json, video_id: video_id)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -179,7 +175,7 @@ struct InvidiousPlaylist
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def to_json(offset, locale, json : JSON::Builder, video_id : String? = nil)
 | 
			
		||||
  def to_json(offset, json : JSON::Builder, video_id : String? = nil)
 | 
			
		||||
    json.object do
 | 
			
		||||
      json.field "type", "invidiousPlaylist"
 | 
			
		||||
      json.field "title", self.title
 | 
			
		||||
@@ -205,7 +201,7 @@ struct InvidiousPlaylist
 | 
			
		||||
            offset = self.index.index(index) || 0
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          videos = get_playlist_videos(self, offset: offset, locale: locale, video_id: video_id)
 | 
			
		||||
          videos = get_playlist_videos(self, offset: offset, video_id: video_id)
 | 
			
		||||
          videos.each_with_index do |video, index|
 | 
			
		||||
            video.to_json(json, offset + index)
 | 
			
		||||
          end
 | 
			
		||||
@@ -214,13 +210,9 @@ struct InvidiousPlaylist
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def to_json(offset, locale, json : JSON::Builder? = nil, video_id : String? = nil)
 | 
			
		||||
    if json
 | 
			
		||||
      to_json(offset, locale, json, video_id: video_id)
 | 
			
		||||
    else
 | 
			
		||||
  def to_json(offset, _json : Nil = nil, video_id : String? = nil)
 | 
			
		||||
    JSON.build do |json|
 | 
			
		||||
        to_json(offset, locale, json, video_id: video_id)
 | 
			
		||||
      end
 | 
			
		||||
      to_json(offset, json, video_id: video_id)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -320,7 +312,7 @@ def produce_playlist_continuation(id, index)
 | 
			
		||||
  return continuation
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def get_playlist(plid, locale, refresh = true, force_refresh = false)
 | 
			
		||||
def get_playlist(plid : String)
 | 
			
		||||
  if plid.starts_with? "IV"
 | 
			
		||||
    if playlist = Invidious::Database::Playlists.select(id: plid)
 | 
			
		||||
      return playlist
 | 
			
		||||
@@ -328,11 +320,11 @@ def get_playlist(plid, locale, refresh = true, force_refresh = false)
 | 
			
		||||
      raise InfoException.new("Playlist does not exist.")
 | 
			
		||||
    end
 | 
			
		||||
  else
 | 
			
		||||
    return fetch_playlist(plid, locale)
 | 
			
		||||
    return fetch_playlist(plid)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def fetch_playlist(plid, locale)
 | 
			
		||||
def fetch_playlist(plid : String)
 | 
			
		||||
  if plid.starts_with? "UC"
 | 
			
		||||
    plid = "UU#{plid.lchop("UC")}"
 | 
			
		||||
  end
 | 
			
		||||
@@ -402,7 +394,7 @@ def fetch_playlist(plid, locale)
 | 
			
		||||
  })
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def get_playlist_videos(playlist, offset, locale = nil, video_id = nil)
 | 
			
		||||
def get_playlist_videos(playlist : InvidiousPlaylist | Playlist, offset : Int32, video_id = nil)
 | 
			
		||||
  # Show empy playlist if requested page is out of range
 | 
			
		||||
  # (e.g, when a new playlist has been created, offset will be negative)
 | 
			
		||||
  if offset >= playlist.video_count || offset < 0
 | 
			
		||||
 
 | 
			
		||||
@@ -125,7 +125,7 @@ module Invidious::Routes::API::V1::Authenticated
 | 
			
		||||
    JSON.build do |json|
 | 
			
		||||
      json.array do
 | 
			
		||||
        playlists.each do |playlist|
 | 
			
		||||
          playlist.to_json(0, locale, json)
 | 
			
		||||
          playlist.to_json(0, json)
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ module Invidious::Routes::API::V1::Misc
 | 
			
		||||
  # APIv1 currently uses the same logic for both
 | 
			
		||||
  # user playlists and Invidious playlists. This means that we can't
 | 
			
		||||
  # reasonably split them yet. This should be addressed in APIv2
 | 
			
		||||
  def self.get_playlist(env)
 | 
			
		||||
  def self.get_playlist(env : HTTP::Server::Context)
 | 
			
		||||
    locale = env.get("preferences").as(Preferences).locale
 | 
			
		||||
 | 
			
		||||
    env.response.content_type = "application/json"
 | 
			
		||||
@@ -34,7 +34,7 @@ module Invidious::Routes::API::V1::Misc
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    begin
 | 
			
		||||
      playlist = get_playlist(plid, locale)
 | 
			
		||||
      playlist = get_playlist(plid)
 | 
			
		||||
    rescue ex : InfoException
 | 
			
		||||
      return error_json(404, ex)
 | 
			
		||||
    rescue ex
 | 
			
		||||
@@ -49,7 +49,7 @@ module Invidious::Routes::API::V1::Misc
 | 
			
		||||
    # includes into the playlist a maximum of 20 videos, before the offset
 | 
			
		||||
    if offset > 0
 | 
			
		||||
      lookback = offset < 50 ? offset : 50
 | 
			
		||||
      response = playlist.to_json(offset - lookback, locale)
 | 
			
		||||
      response = playlist.to_json(offset - lookback)
 | 
			
		||||
      json_response = JSON.parse(response)
 | 
			
		||||
    else
 | 
			
		||||
      #  Unless the continuation is really the offset 0, it becomes expensive.
 | 
			
		||||
@@ -58,13 +58,13 @@ module Invidious::Routes::API::V1::Misc
 | 
			
		||||
      #  it shouldn't happen often though
 | 
			
		||||
 | 
			
		||||
      lookback = 0
 | 
			
		||||
      response = playlist.to_json(offset, locale, video_id: video_id)
 | 
			
		||||
      response = playlist.to_json(offset, video_id: video_id)
 | 
			
		||||
      json_response = JSON.parse(response)
 | 
			
		||||
 | 
			
		||||
      if json_response["videos"].as_a[0]["index"] != offset
 | 
			
		||||
        offset = json_response["videos"].as_a[0]["index"].as_i
 | 
			
		||||
        lookback = offset < 50 ? offset : 50
 | 
			
		||||
        response = playlist.to_json(offset - lookback, locale)
 | 
			
		||||
        response = playlist.to_json(offset - lookback)
 | 
			
		||||
        json_response = JSON.parse(response)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 
 | 
			
		||||
@@ -6,9 +6,9 @@ module Invidious::Routes::Embed
 | 
			
		||||
 | 
			
		||||
    if plid = env.params.query["list"]?.try &.gsub(/[^a-zA-Z0-9_-]/, "")
 | 
			
		||||
      begin
 | 
			
		||||
        playlist = get_playlist(plid, locale: locale)
 | 
			
		||||
        playlist = get_playlist(plid)
 | 
			
		||||
        offset = env.params.query["index"]?.try &.to_i? || 0
 | 
			
		||||
        videos = get_playlist_videos(playlist, offset: offset, locale: locale)
 | 
			
		||||
        videos = get_playlist_videos(playlist, offset: offset)
 | 
			
		||||
      rescue ex
 | 
			
		||||
        return error_template(500, ex)
 | 
			
		||||
      end
 | 
			
		||||
@@ -60,9 +60,9 @@ module Invidious::Routes::Embed
 | 
			
		||||
 | 
			
		||||
      if plid
 | 
			
		||||
        begin
 | 
			
		||||
          playlist = get_playlist(plid, locale: locale)
 | 
			
		||||
          playlist = get_playlist(plid)
 | 
			
		||||
          offset = env.params.query["index"]?.try &.to_i? || 0
 | 
			
		||||
          videos = get_playlist_videos(playlist, offset: offset, locale: locale)
 | 
			
		||||
          videos = get_playlist_videos(playlist, offset: offset)
 | 
			
		||||
        rescue ex
 | 
			
		||||
          return error_template(500, ex)
 | 
			
		||||
        end
 | 
			
		||||
 
 | 
			
		||||
@@ -265,7 +265,7 @@ module Invidious::Routes::Feeds
 | 
			
		||||
 | 
			
		||||
    if plid.starts_with? "IV"
 | 
			
		||||
      if playlist = Invidious::Database::Playlists.select(id: plid)
 | 
			
		||||
        videos = get_playlist_videos(playlist, offset: 0, locale: locale)
 | 
			
		||||
        videos = get_playlist_videos(playlist, offset: 0)
 | 
			
		||||
 | 
			
		||||
        return XML.build(indent: "  ", encoding: "UTF-8") do |xml|
 | 
			
		||||
          xml.element("feed", "xmlns:yt": "http://www.youtube.com/xml/schemas/2015",
 | 
			
		||||
 
 | 
			
		||||
@@ -66,7 +66,7 @@ module Invidious::Routes::Playlists
 | 
			
		||||
    user = user.as(User)
 | 
			
		||||
 | 
			
		||||
    playlist_id = env.params.query["list"]
 | 
			
		||||
    playlist = get_playlist(playlist_id, locale)
 | 
			
		||||
    playlist = get_playlist(playlist_id)
 | 
			
		||||
    subscribe_playlist(user, playlist)
 | 
			
		||||
 | 
			
		||||
    env.redirect "/playlist?list=#{playlist.id}"
 | 
			
		||||
@@ -161,7 +161,7 @@ module Invidious::Routes::Playlists
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    begin
 | 
			
		||||
      videos = get_playlist_videos(playlist, offset: (page - 1) * 100, locale: locale)
 | 
			
		||||
      videos = get_playlist_videos(playlist, offset: (page - 1) * 100)
 | 
			
		||||
    rescue ex
 | 
			
		||||
      videos = [] of PlaylistVideo
 | 
			
		||||
    end
 | 
			
		||||
@@ -314,7 +314,7 @@ module Invidious::Routes::Playlists
 | 
			
		||||
 | 
			
		||||
    begin
 | 
			
		||||
      playlist_id = env.params.query["playlist_id"]
 | 
			
		||||
      playlist = get_playlist(playlist_id, locale).as(InvidiousPlaylist)
 | 
			
		||||
      playlist = get_playlist(playlist_id).as(InvidiousPlaylist)
 | 
			
		||||
      raise "Invalid user" if playlist.author != user.email
 | 
			
		||||
    rescue ex
 | 
			
		||||
      if redirect
 | 
			
		||||
@@ -405,7 +405,7 @@ module Invidious::Routes::Playlists
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    begin
 | 
			
		||||
      playlist = get_playlist(plid, locale)
 | 
			
		||||
      playlist = get_playlist(plid)
 | 
			
		||||
    rescue ex
 | 
			
		||||
      return error_template(500, ex)
 | 
			
		||||
    end
 | 
			
		||||
@@ -422,7 +422,7 @@ module Invidious::Routes::Playlists
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    begin
 | 
			
		||||
      videos = get_playlist_videos(playlist, offset: (page - 1) * 100, locale: locale)
 | 
			
		||||
      videos = get_playlist_videos(playlist, offset: (page - 1) * 100)
 | 
			
		||||
    rescue ex
 | 
			
		||||
      return error_template(500, "Error encountered while retrieving playlist videos.<br>#{ex.message}")
 | 
			
		||||
    end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user