@ -26,22 +26,53 @@ def error_template_helper(env : HTTP::Server::Context, locale : String?, status_
if exception . is_a? ( InfoException )
if exception . is_a? ( InfoException )
return error_template_helper ( env , locale , status_code , exception . message || " " )
return error_template_helper ( env , locale , status_code , exception . message || " " )
end
end
env . response . content_type = " text/html "
env . response . content_type = " text/html "
env . response . status_code = status_code
env . response . status_code = status_code
issue_template = %( Title: ` #{ exception . message } ( #{ exception . class } ) ` )
issue_title = " #{ exception . message } ( #{ exception . class } ) "
issue_template = %( Title: ` #{ issue_title } ` )
issue_template += %( \n Date: ` #{ Time :: Format :: ISO_8601_DATE_TIME . format ( Time . utc ) } ` )
issue_template += %( \n Date: ` #{ Time :: Format :: ISO_8601_DATE_TIME . format ( Time . utc ) } ` )
issue_template += %( \n Route: ` #{ env . request . resource } ` )
issue_template += %( \n Route: ` #{ env . request . resource } ` )
issue_template += %( \n Version: ` #{ SOFTWARE [ " version " ] } @ #{ SOFTWARE [ " branch " ] } ` )
issue_template += %( \n Version: ` #{ SOFTWARE [ " version " ] } @ #{ SOFTWARE [ " branch " ] } ` )
# issue_template += github_details("Preferences", env.get("preferences").as(Preferences).to_pretty_json)
# issue_template += github_details("Preferences", env.get("preferences").as(Preferences).to_pretty_json)
issue_template += github_details ( " Backtrace " , exception . inspect_with_backtrace )
issue_template += github_details ( " Backtrace " , exception . inspect_with_backtrace )
# URLs for the error message below
url_faq = " https://github.com/iv-org/documentation/blob/master/FAQ.md "
url_search_issues = " https://github.com/iv-org/invidious/issues "
url_switch = " https://redirect.invidious.io " + env . request . resource
url_new_issue = " https://github.com/iv-org/invidious/issues/new "
url_new_issue += " ?labels=bug&template=bug_report.md&title= "
url_new_issue += URI . encode_www_form ( " [Bug] " + issue_title )
error_message = << - END_HTML
error_message = << - END_HTML
Looks like you ' ve found a bug in Invidious . Please open a new issue
< div class = " error_message " >
< a href = " https://github.com/iv-org/invidious/issues " > on GitHub < / a>
< h2 > #{translate(locale, "crash_page_you_found_a_bug")}</h2>
and include the following text in your message :
< br / > < br / >
< pre style = " padding: 20px; background: rgba(0, 0, 0, 0.12345); " > #{issue_template}</pre>
< p > < b > #{translate(locale, "crash_page_before_reporting")}</b></p>
< ul >
< li > #{translate(locale, "crash_page_refresh", env.request.resource)}</li>
< li > #{translate(locale, "crash_page_switch_instance", url_switch)}</li>
< li > #{translate(locale, "crash_page_read_the_faq", url_faq)}</li>
< li > #{translate(locale, "crash_page_search_issue", url_search_issues)}</li>
< / ul>
< br / >
< 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>
< / div>
END_HTML
END_HTML
next_steps = error_redirect_helper ( env , locale )
# Don't show the usual "next steps" widget. The same options are
# proposed above the error message, just worded differently.
next_steps = " "
return templated " error "
return templated " error "
end
end