summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/invidious/helpers/errors.cr37
-rw-r--r--src/invidious/views/error.ecr1
2 files changed, 38 insertions, 0 deletions
diff --git a/src/invidious/helpers/errors.cr b/src/invidious/helpers/errors.cr
index 68ced430..714e0670 100644
--- a/src/invidious/helpers/errors.cr
+++ b/src/invidious/helpers/errors.cr
@@ -40,6 +40,9 @@ def error_template_helper(env : HTTP::Server::Context, locale : Hash(String, JSO
and include the following text in your message:
<pre style="padding: 20px; background: rgba(0, 0, 0, 0.12345);">#{issue_template}</pre>
END_HTML
+
+ next_steps = error_redirect_helper(env, locale)
+
return templated "error"
end
@@ -47,6 +50,7 @@ def error_template_helper(env : HTTP::Server::Context, locale : Hash(String, JSO
env.response.content_type = "text/html"
env.response.status_code = status_code
error_message = translate(locale, message)
+ next_steps = error_redirect_helper(env, locale)
return templated "error"
end
@@ -103,3 +107,36 @@ end
def error_json_helper(env : HTTP::Server::Context, locale : Hash(String, JSON::Any) | Nil, status_code : Int32, message : String)
error_json_helper(env, locale, status_code, message, nil)
end
+
+def error_redirect_helper(env : HTTP::Server::Context, locale : Hash(String, JSON::Any) | Nil)
+ request_path = env.request.path
+
+ if request_path.starts_with?("/search") || request_path.starts_with?("/watch") ||
+ request_path.starts_with?("/channel") || request_path.starts_with?("/playlist?list=PL")
+
+ next_steps_text = translate(locale, "next_steps_error_message")
+ refresh = translate(locale, "next_steps_error_message_refresh")
+ go_to_youtube = translate(locale, "next_steps_error_message_go_to_youtube")
+ switch_instance = translate(locale, "Switch Invidious Instance")
+
+
+ return <<-END_HTML
+ <p style="margin-bottom: 4px;">#{next_steps_text}</p>
+ <ul>
+ <li>
+ <a href="#{env.request.resource}">#{refresh}</a>
+ </li>
+ <li>
+ <a href="/redirect?referer=#{env.get("current_page")}">#{switch_instance}</a>
+ </li>
+ <li>
+ <a href="https://youtube.com#{env.request.resource}">#{go_to_youtube}</a>
+ </li>
+ </ul>
+ END_HTML
+
+ return next_step_html
+ else
+ return ""
+ end
+end \ No newline at end of file
diff --git a/src/invidious/views/error.ecr b/src/invidious/views/error.ecr
index d0752e5b..04eb74d5 100644
--- a/src/invidious/views/error.ecr
+++ b/src/invidious/views/error.ecr
@@ -4,4 +4,5 @@
<div class="h-box">
<%= error_message %>
+ <%= next_steps %>
</div>