From adc12addfa1a78ac27f0e61bb6a594e56ac5f035 Mon Sep 17 00:00:00 2001 From: Samantaz Fox Date: Thu, 7 Oct 2021 13:53:12 +0200 Subject: [PATCH] Add config option to display source code URL in footer (#2450) --- assets/css/default.css | 5 +++ config/config.example.yml | 9 +++++ locales/en-US.json | 8 +++- src/invidious/helpers/helpers.cr | 4 ++ src/invidious/routes/preferences.cr | 2 + src/invidious/views/preferences.ecr | 5 +++ src/invidious/views/template.ecr | 59 +++++++++++++++++------------ 7 files changed, 66 insertions(+), 26 deletions(-) diff --git a/assets/css/default.css b/assets/css/default.css index ce6c30c9..9e283fb6 100644 --- a/assets/css/default.css +++ b/assets/css/default.css @@ -314,6 +314,11 @@ footer a { text-decoration: underline; } +footer span { + margin: 4px 0; + display: block; +} + /* keyframes */ @keyframes spin { diff --git a/config/config.example.yml b/config/config.example.yml index d2346719..8bb19fcc 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -432,6 +432,15 @@ feed_threads: 1 ## #cache_annotations: false +## +## Source code URL. If your instance is running a modfied source +## code, you MUST publish it somewhere and set this option. +## +## Accepted values: a string +## Default: +## +#modified_source_code_url: "" + ######################################### diff --git a/locales/en-US.json b/locales/en-US.json index 083b539e..1fa1983d 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -425,5 +425,11 @@ "Current version: ": "Current version: ", "next_steps_error_message": "After which you should try to: ", "next_steps_error_message_refresh": "Refresh", - "next_steps_error_message_go_to_youtube": "Go to YouTube" + "next_steps_error_message_go_to_youtube": "Go to YouTube", + "footer_donate": "Donate: ", + "footer_documentation": "Documentation", + "footer_source_code": "Source code", + "footer_original_source_code": "Original source code", + "footer_modfied_source_code": "Modified Source code", + "adminprefs_modified_source_code_url_label": "URL to modified source code repository" } diff --git a/src/invidious/helpers/helpers.cr b/src/invidious/helpers/helpers.cr index 99adcd30..968062d6 100644 --- a/src/invidious/helpers/helpers.cr +++ b/src/invidious/helpers/helpers.cr @@ -97,6 +97,10 @@ class Config property hsts : Bool? = true # Enables 'Strict-Transport-Security'. Ensure that `domain` and all subdomains are served securely property disable_proxy : Bool? | Array(String)? = false # Disable proxying server-wide: options: 'dash', 'livestreams', 'downloads', 'local' + # URL to the modified source code to be easily AGPL compliant + # Will display in the footer, next to the main source code link + property modified_source_code_url : String? = nil + @[YAML::Field(converter: Preferences::FamilyConverter)] property force_resolve : Socket::Family = Socket::Family::UNSPEC # Connect to YouTube over 'ipv6', 'ipv4'. Will sometimes resolve fix issues with rate-limiting (see https://github.com/ytdl-org/youtube-dl/issues/21729) property port : Int32 = 3000 # Port to listen for connections (overrided by command line argument) diff --git a/src/invidious/routes/preferences.cr b/src/invidious/routes/preferences.cr index 9410ac30..ae5407dc 100644 --- a/src/invidious/routes/preferences.cr +++ b/src/invidious/routes/preferences.cr @@ -200,6 +200,8 @@ module Invidious::Routes::PreferencesRoute statistics_enabled ||= "off" CONFIG.statistics_enabled = statistics_enabled == "on" + CONFIG.modified_source_code_url = env.params.body["modified_source_code_url"]?.try &.as(String) + File.write("config/config.yml", CONFIG.to_yaml) end else diff --git a/src/invidious/views/preferences.ecr b/src/invidious/views/preferences.ecr index be021c59..401c15ea 100644 --- a/src/invidious/views/preferences.ecr +++ b/src/invidious/views/preferences.ecr @@ -286,6 +286,11 @@ checked<% end %>> + +
+ + checked<% end %>> +
<% end %> <% if env.get? "user" %> diff --git a/src/invidious/views/template.ecr b/src/invidious/views/template.ecr index 7be95959..b7020598 100644 --- a/src/invidious/views/template.ecr +++ b/src/invidious/views/template.ecr @@ -117,38 +117,47 @@ +