summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/invidious.cr19
-rw-r--r--src/invidious/comments.cr19
-rw-r--r--src/invidious/views/components/item.ecr10
-rw-r--r--src/invidious/views/history.ecr2
-rw-r--r--src/invidious/views/watch.ecr6
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';