From efd54b752337f980484e12b03286cccc164deaa4 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Wed, 29 May 2019 14:24:30 -0500 Subject: [PATCH] Add 'comments' as URL parameter --- assets/js/watch.js | 60 +++++++++++++++++++---------------------- src/invidious/videos.cr | 5 ++++ 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/assets/js/watch.js b/assets/js/watch.js index 9b8439200..c9cac43b4 100644 --- a/assets/js/watch.js +++ b/assets/js/watch.js @@ -237,7 +237,7 @@ function get_reddit_comments(timeouts = 0) { comments.children[0].children[0].children[0].onclick = toggle_comments; comments.children[0].children[1].children[0].onclick = swap_comments; } else { - if (video_data.preferences.comments[1] === 'youtube') { + if (video_data.params.comments[1] === 'youtube') { get_youtube_comments(timeouts + 1); } else { comments.innerHTML = fallback; @@ -278,35 +278,31 @@ function get_youtube_comments(timeouts = 0) { xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status == 200) { - if (xhr.response.commentCount > 0) { - comments.innerHTML = ' \ -
\ -

\ - [ - ] \ - {commentsText} \ -

\ - \ - \ - {redditComments} \ - \ - \ -
\ -
{contentHtml}
\ -
'.supplant({ - contentHtml: xhr.response.contentHtml, - redditComments: video_data.reddit_comments_text, - commentsText: video_data.comments_text.supplant( - { commentCount: number_with_separator(xhr.response.commentCount) } - ) - }); + comments.innerHTML = ' \ +
\ +

\ + [ - ] \ + {commentsText} \ +

\ + \ + \ + {redditComments} \ + \ + \ +
\ +
{contentHtml}
\ +
'.supplant({ + contentHtml: xhr.response.contentHtml, + redditComments: video_data.reddit_comments_text, + commentsText: video_data.comments_text.supplant( + { commentCount: number_with_separator(xhr.response.commentCount) } + ) + }); - comments.children[0].children[0].children[0].onclick = toggle_comments; - comments.children[0].children[1].children[0].onclick = swap_comments; - } else { - comments.innerHTML = ''; - } + comments.children[0].children[0].children[0].onclick = toggle_comments; + comments.children[0].children[1].children[0].onclick = swap_comments; } else { - if (video_data.preferences[1] === 'youtube') { + if (video_data.params.comments[1] === 'youtube') { get_youtube_comments(timeouts + 1); } else { comments.innerHTML = ''; @@ -409,13 +405,13 @@ if (video_data.plid) { get_playlist(video_data.plid); } -if (video_data.preferences.comments[0] === 'youtube') { +if (video_data.params.comments[0] === 'youtube') { get_youtube_comments(); -} else if (video_data.preferences.comments[0] === 'reddit') { +} else if (video_data.params.comments[0] === 'reddit') { get_reddit_comments(); -} else if (video_data.preferences.comments[1] === 'youtube') { +} else if (video_data.params.comments[1] === 'youtube') { get_youtube_comments(); -} else if (video_data.preferences.comments[1] === 'reddit') { +} else if (video_data.params.comments[1] === 'reddit') { get_reddit_comments(); } else { comments = document.getElementById('comments'); diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index f59580178..8c0595043 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -245,6 +245,7 @@ struct VideoPreferences json_mapping({ annotations: Bool, autoplay: Bool, + comments: Array(String), continue: Bool, continue_autoplay: Bool, controls: Bool, @@ -1228,6 +1229,7 @@ end def process_video_params(query, preferences) annotations = query["iv_load_policy"]?.try &.to_i? autoplay = query["autoplay"]?.try &.to_i? + comments = query["comments"]?.try &.split(",").map { |a| a.downcase } continue = query["continue"]?.try &.to_i? continue_autoplay = query["continue_autoplay"]?.try &.to_i? listen = query["listen"]? && (query["listen"] == "true" || query["listen"] == "1").to_unsafe @@ -1244,6 +1246,7 @@ def process_video_params(query, preferences) # region ||= preferences.region annotations ||= preferences.annotations.to_unsafe autoplay ||= preferences.autoplay.to_unsafe + comments ||= preferences.comments continue ||= preferences.continue.to_unsafe continue_autoplay ||= preferences.continue_autoplay.to_unsafe listen ||= preferences.listen.to_unsafe @@ -1258,6 +1261,7 @@ def process_video_params(query, preferences) annotations ||= CONFIG.default_user_preferences.annotations.to_unsafe autoplay ||= CONFIG.default_user_preferences.autoplay.to_unsafe + comments ||= CONFIG.default_user_preferences.comments continue ||= CONFIG.default_user_preferences.continue.to_unsafe continue_autoplay ||= CONFIG.default_user_preferences.continue_autoplay.to_unsafe listen ||= CONFIG.default_user_preferences.listen.to_unsafe @@ -1306,6 +1310,7 @@ def process_video_params(query, preferences) params = VideoPreferences.new( annotations: annotations, autoplay: autoplay, + comments: comments, continue: continue, continue_autoplay: continue_autoplay, controls: controls,