summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSamantaz Fox <coding@samantaz.fr>2023-04-30 18:59:18 +0200
committerSamantaz Fox <coding@samantaz.fr>2023-04-30 18:59:18 +0200
commitff5e42d836ff6ea85fe44437b60cde97726c03f4 (patch)
tree4ba22f310c7b78c6fbfe1e039dd7dfa94e772cc3 /src
parent9dfa268204f20b6eba65d3f0977a590e3fbfc120 (diff)
parent5517a4eadb980ae06d4dde08afd10fec8c83f9b4 (diff)
downloadinvidious-ff5e42d836ff6ea85fe44437b60cde97726c03f4.tar.gz
invidious-ff5e42d836ff6ea85fe44437b60cde97726c03f4.tar.bz2
invidious-ff5e42d836ff6ea85fe44437b60cde97726c03f4.zip
Channels: Fix fetching more community posts (#3761)
Diffstat (limited to 'src')
-rw-r--r--src/invidious/channels/community.cr14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/invidious/channels/community.cr b/src/invidious/channels/community.cr
index ce34ff82..ad786f3a 100644
--- a/src/invidious/channels/community.cr
+++ b/src/invidious/channels/community.cr
@@ -31,18 +31,16 @@ def fetch_channel_community(ucid, continuation, locale, format, thin_mode)
session_token: session_token,
}
- response = YT_POOL.client &.post("/comment_service_ajax?action_get_comments=1&ctoken=#{continuation}&continuation=#{continuation}&hl=en&gl=US", headers, form: post_req)
- body = JSON.parse(response.body)
+ body = YoutubeAPI.browse(continuation)
- body = body["response"]["continuationContents"]["itemSectionContinuation"]? ||
- body["response"]["continuationContents"]["backstageCommentsContinuation"]?
+ body = body.dig?("continuationContents", "itemSectionContinuation") ||
+ body.dig?("continuationContents", "backstageCommentsContinuation")
if !body
raise InfoException.new("Could not extract continuation.")
end
end
- continuation = body["continuations"]?.try &.[0]["nextContinuationData"]["continuation"].as_s
posts = body["contents"].as_a
if message = posts[0]["messageRenderer"]?
@@ -270,10 +268,8 @@ def fetch_channel_community(ucid, continuation, locale, format, thin_mode)
end
end
end
-
- if body["continuations"]?
- continuation = body["continuations"][0]["nextContinuationData"]["continuation"].as_s
- json.field "continuation", extract_channel_community_cursor(continuation)
+ if cont = posts.dig?(-1, "continuationItemRenderer", "continuationEndpoint", "continuationCommand", "token")
+ json.field "continuation", extract_channel_community_cursor(cont.as_s)
end
end
end