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
#{translate(locale, "crash_page_report_issue", url_new_issue)}
- #{issue_template}
+ #{issue_template}
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 @@
<%=translate(locale, "timeline_parse_error_show_technical_details")%>
- <%=get_issue_template(env, item.parse_exception)[1]%>
+ <%=get_issue_template(env, item.parse_exception)[1]%>
<% 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