summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSamantaz Fox <coding@samantaz.fr>2023-05-06 20:23:47 +0200
committerSamantaz Fox <coding@samantaz.fr>2023-05-25 22:53:53 +0200
commit4379a3d873540460859ec30845dfba66a33d0aea (patch)
tree161754af09311aaffccd6bd6394c304781b51c04 /src
parentdf8526545383f4def3605fb61551edbd851c18c7 (diff)
downloadinvidious-4379a3d873540460859ec30845dfba66a33d0aea.tar.gz
invidious-4379a3d873540460859ec30845dfba66a33d0aea.tar.bz2
invidious-4379a3d873540460859ec30845dfba66a33d0aea.zip
Comments: Move ctoken functions to youtube.cr
Diffstat (limited to 'src')
-rw-r--r--src/invidious/comments.cr44
-rw-r--r--src/invidious/comments/youtube.cr48
2 files changed, 46 insertions, 46 deletions
diff --git a/src/invidious/comments.cr b/src/invidious/comments.cr
index 3c7e2bb4..c8cdc2df 100644
--- a/src/invidious/comments.cr
+++ b/src/invidious/comments.cr
@@ -87,47 +87,3 @@ def content_to_comment_html(content, video_id : String? = "")
return html_array.join("").delete('\ufeff')
end
-
-def produce_comment_continuation(video_id, cursor = "", sort_by = "top")
- object = {
- "2:embedded" => {
- "2:string" => video_id,
- "25:varint" => 0_i64,
- "28:varint" => 1_i64,
- "36:embedded" => {
- "5:varint" => -1_i64,
- "8:varint" => 0_i64,
- },
- "40:embedded" => {
- "1:varint" => 4_i64,
- "3:string" => "https://www.youtube.com",
- "4:string" => "",
- },
- },
- "3:varint" => 6_i64,
- "6:embedded" => {
- "1:string" => cursor,
- "4:embedded" => {
- "4:string" => video_id,
- "6:varint" => 0_i64,
- },
- "5:varint" => 20_i64,
- },
- }
-
- case sort_by
- when "top"
- object["6:embedded"].as(Hash)["4:embedded"].as(Hash)["6:varint"] = 0_i64
- when "new", "newest"
- object["6:embedded"].as(Hash)["4:embedded"].as(Hash)["6:varint"] = 1_i64
- else # top
- object["6:embedded"].as(Hash)["4:embedded"].as(Hash)["6:varint"] = 0_i64
- end
-
- continuation = object.try { |i| Protodec::Any.cast_json(i) }
- .try { |i| Protodec::Any.from_json(i) }
- .try { |i| Base64.urlsafe_encode(i) }
- .try { |i| URI.encode_www_form(i) }
-
- return continuation
-end
diff --git a/src/invidious/comments/youtube.cr b/src/invidious/comments/youtube.cr
index c262876e..1ba1b534 100644
--- a/src/invidious/comments/youtube.cr
+++ b/src/invidious/comments/youtube.cr
@@ -4,9 +4,9 @@ module Invidious::Comments
def fetch_youtube(id, cursor, format, locale, thin_mode, region, sort_by = "top")
case cursor
when nil, ""
- ctoken = produce_comment_continuation(id, cursor: "", sort_by: sort_by)
+ ctoken = Comments.produce_continuation(id, cursor: "", sort_by: sort_by)
when .starts_with? "ADSJ"
- ctoken = produce_comment_continuation(id, cursor: cursor, sort_by: sort_by)
+ ctoken = Comments.produce_continuation(id, cursor: cursor, sort_by: sort_by)
else
ctoken = cursor
end
@@ -203,4 +203,48 @@ module Invidious::Comments
return response
end
+
+ def produce_continuation(video_id, cursor = "", sort_by = "top")
+ object = {
+ "2:embedded" => {
+ "2:string" => video_id,
+ "25:varint" => 0_i64,
+ "28:varint" => 1_i64,
+ "36:embedded" => {
+ "5:varint" => -1_i64,
+ "8:varint" => 0_i64,
+ },
+ "40:embedded" => {
+ "1:varint" => 4_i64,
+ "3:string" => "https://www.youtube.com",
+ "4:string" => "",
+ },
+ },
+ "3:varint" => 6_i64,
+ "6:embedded" => {
+ "1:string" => cursor,
+ "4:embedded" => {
+ "4:string" => video_id,
+ "6:varint" => 0_i64,
+ },
+ "5:varint" => 20_i64,
+ },
+ }
+
+ case sort_by
+ when "top"
+ object["6:embedded"].as(Hash)["4:embedded"].as(Hash)["6:varint"] = 0_i64
+ when "new", "newest"
+ object["6:embedded"].as(Hash)["4:embedded"].as(Hash)["6:varint"] = 1_i64
+ else # top
+ object["6:embedded"].as(Hash)["4:embedded"].as(Hash)["6:varint"] = 0_i64
+ end
+
+ continuation = object.try { |i| Protodec::Any.cast_json(i) }
+ .try { |i| Protodec::Any.from_json(i) }
+ .try { |i| Base64.urlsafe_encode(i) }
+ .try { |i| URI.encode_www_form(i) }
+
+ return continuation
+ end
end