diff options
| -rw-r--r-- | Makefile | 44 | ||||
| -rw-r--r-- | locales/en-US.json | 1 | ||||
| -rw-r--r-- | locales/is.json | 1 | ||||
| -rw-r--r-- | src/invidious/config.cr | 1 | ||||
| -rw-r--r-- | src/invidious/routes/api/v1/videos.cr | 2 | ||||
| -rw-r--r-- | src/invidious/routes/preferences.cr | 5 | ||||
| -rw-r--r-- | src/invidious/routes/watch.cr | 2 | ||||
| -rw-r--r-- | src/invidious/user/preferences.cr | 1 | ||||
| -rw-r--r-- | src/invidious/views/user/preferences.ecr | 5 |
9 files changed, 38 insertions, 24 deletions
@@ -89,28 +89,28 @@ distclean: clean # ----------------------- help: - echo "Targets available in this Makefile:" - echo "" - echo "get-libs Fetch Crystal libraries" - echo "invidious Build Invidious" - echo "run Launch Invidious" - echo "" - echo "format Run the Crystal formatter" - echo "test Run tests" - echo "verify Just make sure that the code compiles, but without" - echo " generating any binaries. Useful to search for errors" - echo "" - echo "clean Remove build artifacts" - echo "distclean Remove build artifacts and libraries" - echo "" - echo "" - echo "Build options available for this Makefile:" - echo "" - echo "RELEASE Make a release build (Default: 1)" - echo "STATIC Link libraries statically (Default: 0)" - echo "" - echo "DISABLE_QUIC Disable support for QUIC (Default: 0)" - echo "NO_DBG_SYMBOLS Strip debug symbols (Default: 0)" + @echo "Targets available in this Makefile:" + @echo "" + @echo " get-libs Fetch Crystal libraries" + @echo " invidious Build Invidious" + @echo " run Launch Invidious" + @echo "" + @echo " format Run the Crystal formatter" + @echo " test Run tests" + @echo " verify Just make sure that the code compiles, but without" + @echo " generating any binaries. Useful to search for errors" + @echo "" + @echo " clean Remove build artifacts" + @echo " distclean Remove build artifacts and libraries" + @echo "" + @echo "" + @echo "Build options available for this Makefile:" + @echo "" + @echo " RELEASE Make a release build (Default: 1)" + @echo " STATIC Link libraries statically (Default: 0)" + @echo "" + @echo " DISABLE_QUIC Disable support for QUIC (Default: 0)" + @echo " NO_DBG_SYMBOLS Strip debug symbols (Default: 0)" diff --git a/locales/en-US.json b/locales/en-US.json index c924c8aa..1335d384 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -65,6 +65,7 @@ "preferences_continue_autoplay_label": "Autoplay next video: ", "preferences_listen_label": "Listen by default: ", "preferences_local_label": "Proxy videos: ", + "preferences_watch_history_label": "Enable watch history: ", "preferences_speed_label": "Default speed: ", "preferences_quality_label": "Preferred video quality: ", "preferences_quality_option_dash": "DASH (adaptative quality)", diff --git a/locales/is.json b/locales/is.json index 9258154e..8d565dae 100644 --- a/locales/is.json +++ b/locales/is.json @@ -55,6 +55,7 @@ "preferences_continue_autoplay_label": "Spila næst sjálfkrafa: ", "preferences_listen_label": "Hlusta sjálfgefið: ", "preferences_local_label": "Proxy myndbönd? ", + "preferences_watch_history": "Virkja áhorfssögu: ", "preferences_speed_label": "Sjálfgefinn hraði: ", "preferences_quality_label": "Æskilegt myndbands gæði: ", "preferences_volume_label": "Spilara hljóðstyrkur: ", diff --git a/src/invidious/config.cr b/src/invidious/config.cr index 72e145da..280de702 100644 --- a/src/invidious/config.cr +++ b/src/invidious/config.cr @@ -23,6 +23,7 @@ struct ConfigPreferences property listen : Bool = false property local : Bool = false property locale : String = "en-US" + property watch_history : Bool = true property max_results : Int32 = 40 property notifications_only : Bool = false property player_style : String = "invidious" diff --git a/src/invidious/routes/api/v1/videos.cr b/src/invidious/routes/api/v1/videos.cr index 2b23d2ad..2a4911db 100644 --- a/src/invidious/routes/api/v1/videos.cr +++ b/src/invidious/routes/api/v1/videos.cr @@ -136,7 +136,7 @@ module Invidious::Routes::API::V1::Videos # # See: https://github.com/iv-org/invidious/issues/2391 webvtt = YT_POOL.client &.get("#{url}&format=vtt").body - .gsub(/([0-9:.]+ --> [0-9:.]+).+/, "\\1") + .gsub(/([0-9:.]{12} --> [0-9:.]{12}).+/, "\\1") end if title = env.params.query["title"]? diff --git a/src/invidious/routes/preferences.cr b/src/invidious/routes/preferences.cr index 68d61fd1..570cba69 100644 --- a/src/invidious/routes/preferences.cr +++ b/src/invidious/routes/preferences.cr @@ -47,6 +47,10 @@ module Invidious::Routes::PreferencesRoute local ||= "off" local = local == "on" + watch_history = env.params.body["watch_history"]?.try &.as(String) + watch_history ||= "off" + watch_history = watch_history == "on" + speed = env.params.body["speed"]?.try &.as(String).to_f32? speed ||= CONFIG.default_user_preferences.speed @@ -149,6 +153,7 @@ module Invidious::Routes::PreferencesRoute latest_only: latest_only, listen: listen, local: local, + watch_history: watch_history, locale: locale, max_results: max_results, notifications_only: notifications_only, diff --git a/src/invidious/routes/watch.cr b/src/invidious/routes/watch.cr index 42bc4219..f5454bb5 100644 --- a/src/invidious/routes/watch.cr +++ b/src/invidious/routes/watch.cr @@ -75,7 +75,7 @@ module Invidious::Routes::Watch end env.params.query.delete_all("iv_load_policy") - if watched && !watched.includes? id + if watched && preferences.watch_history && !watched.includes? id Invidious::Database::Users.mark_watched(user.as(User), id) end diff --git a/src/invidious/user/preferences.cr b/src/invidious/user/preferences.cr index bf7ea401..8ecbe7a0 100644 --- a/src/invidious/user/preferences.cr +++ b/src/invidious/user/preferences.cr @@ -23,6 +23,7 @@ struct Preferences property latest_only : Bool = CONFIG.default_user_preferences.latest_only property listen : Bool = CONFIG.default_user_preferences.listen property local : Bool = CONFIG.default_user_preferences.local + property watch_history : Bool = CONFIG.default_user_preferences.watch_history property vr_mode : Bool = CONFIG.default_user_preferences.vr_mode property show_nick : Bool = CONFIG.default_user_preferences.show_nick diff --git a/src/invidious/views/user/preferences.ecr b/src/invidious/views/user/preferences.ecr index 3606d140..dbb5e9db 100644 --- a/src/invidious/views/user/preferences.ecr +++ b/src/invidious/views/user/preferences.ecr @@ -207,6 +207,11 @@ <legend><%= translate(locale, "preferences_category_subscription") %></legend> <div class="pure-control-group"> + <label for="watch_history"><%= translate(locale, "preferences_watch_history_label") %></label> + <input name="watch_history" id="watch_history" type="checkbox" <% if preferences.watch_history %>checked<% end %>> + </div> + + <div class="pure-control-group"> <label for="annotations_subscribed"><%= translate(locale, "preferences_annotations_subscribed_label") %></label> <input name="annotations_subscribed" id="annotations_subscribed" type="checkbox" <% if preferences.annotations_subscribed %>checked<% end %>> </div> |
