Minor refactor for channel playlists

This commit is contained in:
Omar Roth 2019-12-05 15:47:35 -05:00
parent 513363504f
commit 88a538e71b
No known key found for this signature in database
GPG Key ID: B8254FB7EC3D37F2

View File

@ -383,7 +383,7 @@ def fetch_channel(ucid, db, pull_all_videos = true, locale = nil)
end end
def fetch_channel_playlists(ucid, author, auto_generated, continuation, sort_by) def fetch_channel_playlists(ucid, author, auto_generated, continuation, sort_by)
if continuation if continuation || auto_generated
url = produce_channel_playlists_url(ucid, continuation, sort_by, auto_generated) url = produce_channel_playlists_url(ucid, continuation, sort_by, auto_generated)
response = YT_POOL.client &.get(url) response = YT_POOL.client &.get(url)
@ -402,13 +402,6 @@ def fetch_channel_playlists(ucid, author, auto_generated, continuation, sort_by)
html = XML.parse_html(json["content_html"].as_s) html = XML.parse_html(json["content_html"].as_s)
nodeset = html.xpath_nodes(%q(//li[contains(@class, "feed-item-container")])) nodeset = html.xpath_nodes(%q(//li[contains(@class, "feed-item-container")]))
elsif auto_generated
url = "/channel/#{ucid}"
response = YT_POOL.client &.get(url)
html = XML.parse_html(response.body)
nodeset = html.xpath_nodes(%q(//ul[@id="browse-items-primary"]/li[contains(@class, "feed-item-container")]))
else else
url = "/channel/#{ucid}/playlists?disable_polymer=1&flow=list&view=1" url = "/channel/#{ucid}/playlists?disable_polymer=1&flow=list&view=1"
@ -504,10 +497,10 @@ def produce_channel_playlists_url(ucid, cursor, sort = "newest", auto_generated
}, },
} }
if !auto_generated if cursor
cursor = Base64.urlsafe_encode(cursor, false) cursor = Base64.urlsafe_encode(cursor, false) if !auto_generated
end
object["80226972:embedded"]["3:base64"].as(Hash)["15:string"] = cursor object["80226972:embedded"]["3:base64"].as(Hash)["15:string"] = cursor
end
if auto_generated if auto_generated
object["80226972:embedded"]["3:base64"].as(Hash)["4:varint"] = 0x32_i64 object["80226972:embedded"]["3:base64"].as(Hash)["4:varint"] = 0x32_i64
@ -807,7 +800,7 @@ def produce_channel_community_continuation(ucid, cursor)
object = { object = {
"80226972:embedded" => { "80226972:embedded" => {
"2:string" => ucid, "2:string" => ucid,
"3:string" => cursor, "3:string" => cursor || "",
}, },
} }