summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsyeopite <syeopite@syeopite.dev>2025-04-05 12:23:42 -0700
committersyeopite <syeopite@syeopite.dev>2025-04-05 12:40:38 -0700
commit6c063436d4259d62ed6794e99298348b0be74b61 (patch)
treec922caec64d1b1ef2bc31118e3744c447d76c10c
parent7b2758545429e5ad09f0182bf71b351a52815a1d (diff)
downloadinvidious-6c063436d4259d62ed6794e99298348b0be74b61.tar.gz
invidious-6c063436d4259d62ed6794e99298348b0be74b61.tar.bz2
invidious-6c063436d4259d62ed6794e99298348b0be74b61.zip
Fix issues raised by code review
Remove explicit `self.` from #process of parsers Remove explicit return tuple in get_issue_template Fix formatting Move inline issue template style to stylesheet Use @id in ProblematicTimelineItem xml repr Fix naming
-rw-r--r--assets/css/default.css5
-rw-r--r--src/invidious/helpers/errors.cr4
-rw-r--r--src/invidious/helpers/serialized_yt_data.cr2
-rw-r--r--src/invidious/playlists.cr4
-rw-r--r--src/invidious/routes/embed.cr8
-rw-r--r--src/invidious/views/components/item.ecr2
-rw-r--r--src/invidious/yt_backend/extractors.cr22
7 files changed, 25 insertions, 22 deletions
diff --git a/assets/css/default.css b/assets/css/default.css
index 9d2ab34b..01d4b736 100644
--- a/assets/css/default.css
+++ b/assets/css/default.css
@@ -880,4 +880,9 @@ h1, h2, h3, h4, h5, p,
.error-card pre {
height: 300px;
+}
+
+.error-issue-template {
+ padding: 20px;
+ background: rgba(0, 0, 0, 0.12345);
} \ No newline at end of file
diff --git a/src/invidious/helpers/errors.cr b/src/invidious/helpers/errors.cr
index 399324cd..e2c4b650 100644
--- a/src/invidious/helpers/errors.cr
+++ b/src/invidious/helpers/errors.cr
@@ -31,7 +31,7 @@ def get_issue_template(env : HTTP::Server::Context, exception : Exception) : Tup
issue_template += github_details("Backtrace", exception.inspect_with_backtrace)
- return {issue_title, issue_template}
+ return issue_title, issue_template
end
def error_template_helper(env : HTTP::Server::Context, status_code : Int32, exception : Exception)
@@ -78,7 +78,7 @@ def error_template_helper(env : HTTP::Server::Context, status_code : Int32, exce
<p>#{translate(locale, "crash_page_report_issue", url_new_issue)}</p>
<!-- TODO: Add a "copy to clipboard" button -->
- <pre style="padding: 20px; background: rgba(0, 0, 0, 0.12345);">#{issue_template}</pre>
+ <pre class="error-issue-template">#{issue_template}</pre>
</div>
END_HTML
diff --git a/src/invidious/helpers/serialized_yt_data.cr b/src/invidious/helpers/serialized_yt_data.cr
index a6501e41..2796a8dc 100644
--- a/src/invidious/helpers/serialized_yt_data.cr
+++ b/src/invidious/helpers/serialized_yt_data.cr
@@ -320,7 +320,7 @@ struct ProblematicTimelineItem
def to_xml(env, locale, xml : XML::Builder)
xml.element("entry") do
- xml.element("id") { xml.text "iv-err-#{Random.new.base64(8)}" }
+ xml.element("id") { xml.text "iv-err-#{@id}" }
xml.element("title") { xml.text "Parse Error: This item has failed to parse" }
xml.element("updated") { xml.text Time.utc.to_rfc3339 }
diff --git a/src/invidious/playlists.cr b/src/invidious/playlists.cr
index c762b64b..7c584d15 100644
--- a/src/invidious/playlists.cr
+++ b/src/invidious/playlists.cr
@@ -501,9 +501,7 @@ def extract_playlist_videos(initial_data : Hash(String, JSON::Any))
})
end
rescue ex
- videos << ProblematicTimelineItem.new(
- parse_exception: ex
- )
+ videos << ProblematicTimelineItem.new(parse_exception: ex)
end
return videos
diff --git a/src/invidious/routes/embed.cr b/src/invidious/routes/embed.cr
index b7ae4e0e..930e4915 100644
--- a/src/invidious/routes/embed.cr
+++ b/src/invidious/routes/embed.cr
@@ -13,14 +13,14 @@ module Invidious::Routes::Embed
raise NotFoundException.new(translate(locale, "error_video_not_in_playlist", url))
end
- get_first_video = videos[0].as(PlaylistVideo)
+ first_playlist_video = videos[0].as(PlaylistVideo)
rescue ex : NotFoundException
return error_template(404, ex)
rescue ex
return error_template(500, ex)
end
- url = "/embed/#{get_first_video}?#{env.params.query}"
+ url = "/embed/#{first_playlist_video}?#{env.params.query}"
if env.params.query.size > 0
url += "?#{env.params.query}"
@@ -75,14 +75,14 @@ module Invidious::Routes::Embed
raise NotFoundException.new(translate(locale, "error_video_not_in_playlist", url))
end
- get_first_video = videos[0].as(PlaylistVideo)
+ first_playlist_video = videos[0].as(PlaylistVideo)
rescue ex : NotFoundException
return error_template(404, ex)
rescue ex
return error_template(500, ex)
end
- url = "/embed/#{get_first_video.id}"
+ url = "/embed/#{first_playlist_video.id}"
elsif video_series
url = "/embed/#{video_series.shift}"
env.params.query["playlist"] = video_series.join(",")
diff --git a/src/invidious/views/components/item.ecr b/src/invidious/views/components/item.ecr
index 279a74b2..a24423df 100644
--- a/src/invidious/views/components/item.ecr
+++ b/src/invidious/views/components/item.ecr
@@ -106,7 +106,7 @@
</div>
<details>
<summary class="pure-button pure-button-secondary"><%=translate(locale, "timeline_parse_error_show_technical_details")%></summary>
- <pre style="padding: 20px; background: rgba(0, 0, 0, 0.12345);"><%=get_issue_template(env, item.parse_exception)[1]%></pre>
+ <pre class="error-issue-template"><%=get_issue_template(env, item.parse_exception)[1]%></pre>
</details>
</div>
<% else %>
diff --git a/src/invidious/yt_backend/extractors.cr b/src/invidious/yt_backend/extractors.cr
index 321957f1..df2de81d 100644
--- a/src/invidious/yt_backend/extractors.cr
+++ b/src/invidious/yt_backend/extractors.cr
@@ -62,7 +62,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = (item["videoRenderer"]? || item["gridVideoRenderer"]?)
return self.parse(item_contents, author_fallback)
end
@@ -190,7 +190,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = (item["channelRenderer"]? || item["gridChannelRenderer"]?)
return self.parse(item_contents, author_fallback)
end
@@ -253,7 +253,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = item["hashtagTileRenderer"]?
return self.parse(item_contents)
end
@@ -306,7 +306,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = item["gridPlaylistRenderer"]?
return self.parse(item_contents, author_fallback)
end
@@ -350,7 +350,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = item["playlistRenderer"]?
return self.parse(item_contents, author_fallback)
end
@@ -413,7 +413,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = item["shelfRenderer"]?
return self.parse(item_contents, author_fallback)
end
@@ -481,7 +481,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = item.dig?("itemSectionRenderer", "contents", 0)
return self.parse(item_contents, author_fallback)
end
@@ -510,7 +510,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = item.dig?("richItemRenderer", "content")
return self.parse(item_contents, author_fallback)
end
@@ -543,7 +543,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = item["reelItemRenderer"]?
return self.parse(item_contents, author_fallback)
end
@@ -640,7 +640,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = item["lockupViewModel"]?
return self.parse(item_contents, author_fallback)
end
@@ -718,7 +718,7 @@ private module Parsers
extend self
include BaseParser
- def self.process(item : JSON::Any, author_fallback : AuthorFallback)
+ def process(item : JSON::Any, author_fallback : AuthorFallback)
if item_contents = item["shortsLockupViewModel"]?
return self.parse(item_contents, author_fallback)
end