diff options
| -rw-r--r-- | src/invidious.cr | 19 | ||||
| -rw-r--r-- | src/invidious/comments.cr | 19 | ||||
| -rw-r--r-- | src/invidious/views/components/item.ecr | 10 | ||||
| -rw-r--r-- | src/invidious/views/history.ecr | 2 | ||||
| -rw-r--r-- | src/invidious/views/watch.ecr | 6 |
5 files changed, 32 insertions, 24 deletions
diff --git a/src/invidious.cr b/src/invidious.cr index 64273a17..0daecfda 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -307,9 +307,7 @@ get "/watch" do |env| nojs ||= "0" nojs = nojs == "1" - if env.get? "preferences" - preferences = env.get("preferences").as(Preferences) - end + preferences = env.get("preferences").as(Preferences) if env.get? "user" user = env.get("user").as(User) @@ -344,7 +342,7 @@ get "/watch" do |env| if source == "youtube" begin - comment_html = JSON.parse(fetch_youtube_comments(id, PG_DB, nil, proxies, "html", locale, region))["contentHtml"] + comment_html = JSON.parse(fetch_youtube_comments(id, PG_DB, nil, proxies, "html", locale, preferences.thin_mode, region))["contentHtml"] rescue ex if preferences.comments[1] == "reddit" comments, reddit_thread = fetch_reddit_comments(id) @@ -363,12 +361,12 @@ get "/watch" do |env| comment_html = replace_links(comment_html) rescue ex if preferences.comments[1] == "youtube" - comment_html = JSON.parse(fetch_youtube_comments(id, PG_DB, nil, proxies, "html", locale, region))["contentHtml"] + comment_html = JSON.parse(fetch_youtube_comments(id, PG_DB, nil, proxies, "html", locale, preferences.thin_mode, region))["contentHtml"] end end end else - comment_html = JSON.parse(fetch_youtube_comments(id, PG_DB, nil, proxies, "html", locale, region))["contentHtml"] + comment_html = JSON.parse(fetch_youtube_comments(id, PG_DB, nil, proxies, "html", locale, preferences.thin_mode, region))["contentHtml"] end comment_html ||= "" @@ -447,9 +445,7 @@ get "/embed/:id" do |env| locale = LOCALES[env.get("preferences").as(Preferences).locale]? id = env.params.url["id"] - if env.get? "preferences" - preferences = env.get("preferences").as(Preferences) - end + preferences = env.get("preferences").as(Preferences) if id.includes?("%20") || id.includes?("+") || env.params.query.to_s.includes?("%20") || env.params.query.to_s.includes?("+") id = env.params.url["id"].gsub("%20", "").delete("+") @@ -2682,6 +2678,9 @@ get "/api/v1/comments/:id" do |env| source = env.params.query["source"]? source ||= "youtube" + thin_mode = env.params.query["thin_mode"]? + thin_mode = thin_mode == "true" + format = env.params.query["format"]? format ||= "json" @@ -2689,7 +2688,7 @@ get "/api/v1/comments/:id" do |env| if source == "youtube" begin - comments = fetch_youtube_comments(id, PG_DB, continuation, proxies, format, locale, region) + comments = fetch_youtube_comments(id, PG_DB, continuation, proxies, format, locale, thin_mode, region) rescue ex error_message = {"error" => ex.message}.to_json env.response.status_code = 500 diff --git a/src/invidious/comments.cr b/src/invidious/comments.cr index 275de470..dc5db766 100644 --- a/src/invidious/comments.cr +++ b/src/invidious/comments.cr @@ -56,7 +56,7 @@ class RedditListing }) end -def fetch_youtube_comments(id, db, continuation, proxies, format, locale, region) +def fetch_youtube_comments(id, db, continuation, proxies, format, locale, thin_mode, region) video = get_video(id, db, proxies, region: region) session_token = video.info["session_token"]? @@ -232,7 +232,7 @@ def fetch_youtube_comments(id, db, continuation, proxies, format, locale, region if format == "html" comments = JSON.parse(comments) - content_html = template_youtube_comments(comments, locale) + content_html = template_youtube_comments(comments, locale, thin_mode) comments = JSON.build do |json| json.object do @@ -278,7 +278,7 @@ def fetch_reddit_comments(id) return comments, thread end -def template_youtube_comments(comments, locale) +def template_youtube_comments(comments, locale, thin_mode) html = "" root = comments["comments"].as_a @@ -297,7 +297,11 @@ def template_youtube_comments(comments, locale) END_HTML end - author_thumbnail = "/ggpht#{URI.parse(child["authorThumbnails"][-1]["url"].as_s).full_path}" + if !thin_mode + author_thumbnail = "/ggpht#{URI.parse(child["authorThumbnails"][-1]["url"].as_s).full_path}" + else + author_thumbnail = "" + end html += <<-END_HTML <div class="pure-g"> @@ -318,7 +322,12 @@ def template_youtube_comments(comments, locale) END_HTML if child["creatorHeart"]? - creator_thumbnail = "/ggpht#{URI.parse(child["creatorHeart"]["creatorThumbnail"].as_s).full_path}" + if !thin_mode + creator_thumbnail = "/ggpht#{URI.parse(child["creatorHeart"]["creatorThumbnail"].as_s).full_path}" + else + creator_thumbnail = "" + end + html += <<-END_HTML <span class="creator-heart-container" title="#{translate(locale, "`x` marked it with a ❤", child["creatorHeart"]["creatorName"].as_s)}"> <div class="creator-heart"> diff --git a/src/invidious/views/components/item.ecr b/src/invidious/views/components/item.ecr index 8226dc6f..e2a5195c 100644 --- a/src/invidious/views/components/item.ecr +++ b/src/invidious/views/components/item.ecr @@ -3,7 +3,7 @@ <% case item when %> <% when SearchChannel %> <a style="width:100%;" href="/channel/<%= item.ucid %>"> - <% if env.get?("user") && env.get("user").as(User).preferences.thin_mode %> + <% if env.get("preferences").as(Preferences).thin_mode %> <% else %> <center> <img style="width:56.25%;" src="/ggpht<%= URI.parse(item.author_thumbnail).full_path %>"/> @@ -21,7 +21,7 @@ <% url = "/playlist?list=#{item.id}" %> <% end %> <a style="width:100%;" href="<%= url %>"> - <% if env.get?("user") && env.get("user").as(User).preferences.thin_mode %> + <% if env.get("preferences").as(Preferences).thin_mode %> <% else %> <div class="thumbnail"> <img class="thumbnail" src="/vi/<%= item.thumbnail_id %>/mqdefault.jpg"/> @@ -35,7 +35,7 @@ </p> <% when MixVideo %> <a style="width:100%;" href="/watch?v=<%= item.id %>&list=<%= item.mixes[0] %>"> - <% if env.get?("user") && env.get("user").as(User).preferences.thin_mode %> + <% if env.get("preferences").as(Preferences).thin_mode %> <% else %> <div class="thumbnail"> <img class="thumbnail" src="/vi/<%= item.id %>/mqdefault.jpg"/> @@ -51,7 +51,7 @@ </p> <% when PlaylistVideo %> <a style="width:100%;" href="/watch?v=<%= item.id %>&list=<%= item.playlists[0] %>"> - <% if env.get?("user") && env.get("user").as(User).preferences.thin_mode %> + <% if env.get("preferences").as(Preferences).thin_mode %> <% else %> <div class="thumbnail"> <img class="thumbnail" src="/vi/<%= item.id %>/mqdefault.jpg"/> @@ -74,7 +74,7 @@ <h5><%= translate(locale, "Shared `x` ago", recode_date(item.published, locale)) %></h5> <% end %> <% else %> - <% if env.get?("user") && env.get("user").as(User).preferences.thin_mode %> + <% if env.get("preferences").as(Preferences).thin_mode %> <% else %> <a style="width:100%;" href="/watch?v=<%= item.id %>"> <div class="thumbnail"> diff --git a/src/invidious/views/history.ecr b/src/invidious/views/history.ecr index e3cbd7eb..a68b3274 100644 --- a/src/invidious/views/history.ecr +++ b/src/invidious/views/history.ecr @@ -19,7 +19,7 @@ <div class="pure-u-1 pure-u-md-1-4"> <div class="h-box"> <a style="width:100%;" href="/watch?v=<%= item %>"> - <% if env.get?("user") && env.get("user").as(User).preferences.thin_mode %> + <% if env.get("preferences").as(Preferences).thin_mode %> <% else %> <div class="thumbnail"> <img class="thumbnail" src="/vi/<%= item %>/mqdefault.jpg"/> diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr index 34c3bf4d..2aa43623 100644 --- a/src/invidious/views/watch.ecr +++ b/src/invidious/views/watch.ecr @@ -167,7 +167,7 @@ <% rvs.each do |rv| %> <% if rv["id"]? %> <a href="/watch?v=<%= rv["id"] %>"> - <% if preferences && preferences.thin_mode %> + <% if env.get("preferences").as(Preferences).thin_mode %> <% else %> <div class="thumbnail"> <img class="thumbnail" src="/vi/<%= rv["id"] %>/mqdefault.jpg"> @@ -387,7 +387,7 @@ function get_youtube_comments(timeouts = 0) { comments.innerHTML = '<h3 style="text-align:center"><div class="loading"><i class="icon ion-ios-refresh"></i></div></h3>'; - var url = "/api/v1/comments/<%= video.id %>?format=html&hl=<%= env.get("preferences").as(Preferences).locale %>"; + var url = "/api/v1/comments/<%= video.id %>?format=html&hl=<%= env.get("preferences").as(Preferences).locale %>&thin_mode=<%= env.get("preferences").as(Preferences).thin_mode %>"; var xhr = new XMLHttpRequest(); xhr.responseType = "json"; xhr.timeout = 20000; @@ -445,7 +445,7 @@ function get_youtube_replies(target, load_more) { body.innerHTML = '<h3 style="text-align:center"><div class="loading"><i class="icon ion-ios-refresh"></i></div></h3>'; - var url = '/api/v1/comments/<%= video.id %>?format=html&hl=<%= env.get("preferences").as(Preferences).locale %>&continuation=' + + var url = '/api/v1/comments/<%= video.id %>?format=html&hl=<%= env.get("preferences").as(Preferences).locale %>&thin_mode=<%= env.get("preferences").as(Preferences).thin_mode %>&continuation=' + continuation; var xhr = new XMLHttpRequest(); xhr.responseType = 'json'; |
