forked from midou/invidious
		
	channel: use YT API to fetch playlist items
This commit is contained in:
		@@ -1,28 +1,30 @@
 | 
			
		||||
def fetch_channel_playlists(ucid, author, continuation, sort_by)
 | 
			
		||||
  if continuation
 | 
			
		||||
    response_json = YoutubeAPI.browse(continuation)
 | 
			
		||||
    items, continuation = extract_items(response_json, author, ucid)
 | 
			
		||||
    initial_data = YoutubeAPI.browse(continuation)
 | 
			
		||||
  else
 | 
			
		||||
    url = "/channel/#{ucid}/playlists?flow=list&view=1"
 | 
			
		||||
    params =
 | 
			
		||||
      case sort_by
 | 
			
		||||
      when "last", "last_added"
 | 
			
		||||
        # Equivalent to "&sort=lad"
 | 
			
		||||
        # {"2:string": "playlists", "3:varint": 4, "4:varint": 1, "6:varint": 1}
 | 
			
		||||
        "EglwbGF5bGlzdHMYBCABMAE%3D"
 | 
			
		||||
      when "oldest", "oldest_created"
 | 
			
		||||
        # formerly "&sort=da"
 | 
			
		||||
        # Not available anymore :c or maybe ??
 | 
			
		||||
        # {"2:string": "playlists", "3:varint": 2, "4:varint": 1, "6:varint": 1}
 | 
			
		||||
        "EglwbGF5bGlzdHMYAiABMAE%3D"
 | 
			
		||||
        # {"2:string": "playlists", "3:varint": 1, "4:varint": 1, "6:varint": 1}
 | 
			
		||||
        # "EglwbGF5bGlzdHMYASABMAE%3D"
 | 
			
		||||
      when "newest", "newest_created"
 | 
			
		||||
        # Formerly "&sort=dd"
 | 
			
		||||
        # {"2:string": "playlists", "3:varint": 3, "4:varint": 1, "6:varint": 1}
 | 
			
		||||
        "EglwbGF5bGlzdHMYAyABMAE%3D"
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    case sort_by
 | 
			
		||||
    when "last", "last_added"
 | 
			
		||||
      #
 | 
			
		||||
    when "oldest", "oldest_created"
 | 
			
		||||
      url += "&sort=da"
 | 
			
		||||
    when "newest", "newest_created"
 | 
			
		||||
      url += "&sort=dd"
 | 
			
		||||
    else nil # Ignore
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    response = YT_POOL.client &.get(url)
 | 
			
		||||
    initial_data = extract_initial_data(response.body)
 | 
			
		||||
    return [] of SearchItem, nil if !initial_data
 | 
			
		||||
 | 
			
		||||
    items, continuation = extract_items(initial_data, author, ucid)
 | 
			
		||||
    initial_data = YoutubeAPI.browse(ucid, params: params || "")
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  return items, continuation
 | 
			
		||||
  return extract_items(initial_data, ucid, author)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
# ## NOTE: DEPRECATED
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user