mirror of
https://github.com/iv-org/invidious.git
synced 2025-04-14 04:42:56 -04:00
Add setting to hide member-only videos
This commit is contained in:
parent
7c0117253a
commit
643675490d
@ -502,5 +502,6 @@
|
||||
"carousel_slide": "Slide {{current}} of {{total}}",
|
||||
"carousel_skip": "Skip the Carousel",
|
||||
"carousel_go_to": "Go to slide `x`",
|
||||
"video_badges_members_only": "Members only"
|
||||
"video_badges_members_only": "Members only",
|
||||
"preferences_exclude_members_only_videos_label": "Hide channel member-only videos"
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ struct ConfigPreferences
|
||||
property vr_mode : Bool = true
|
||||
property show_nick : Bool = true
|
||||
property save_player_pos : Bool = false
|
||||
property exclude_members_only_videos : Bool = false
|
||||
|
||||
def to_tuple
|
||||
{% begin %}
|
||||
|
@ -144,6 +144,10 @@ module Invidious::Routes::PreferencesRoute
|
||||
notifications_only ||= "off"
|
||||
notifications_only = notifications_only == "on"
|
||||
|
||||
exclude_members_only_videos = env.params.body["exclude_members_only_videos"]?.try &.as(String)
|
||||
exclude_members_only_videos ||= "off"
|
||||
exclude_members_only_videos = exclude_members_only_videos == "on"
|
||||
|
||||
# Convert to JSON and back again to take advantage of converters used for compatibility
|
||||
preferences = Preferences.from_json({
|
||||
annotations: annotations,
|
||||
@ -180,6 +184,7 @@ module Invidious::Routes::PreferencesRoute
|
||||
vr_mode: vr_mode,
|
||||
show_nick: show_nick,
|
||||
save_player_pos: save_player_pos,
|
||||
exclude_members_only_videos: exclude_members_only_videos,
|
||||
}.to_json)
|
||||
|
||||
if user = env.get? "user"
|
||||
|
@ -57,6 +57,8 @@ struct Preferences
|
||||
property volume : Int32 = CONFIG.default_user_preferences.volume
|
||||
property save_player_pos : Bool = CONFIG.default_user_preferences.save_player_pos
|
||||
|
||||
property exclude_members_only_videos : Bool = CONFIG.default_user_preferences.exclude_members_only_videos
|
||||
|
||||
module BoolToString
|
||||
def self.to_json(value : String, json : JSON::Builder)
|
||||
json.string value
|
||||
|
@ -1,7 +1,10 @@
|
||||
<%= page_nav_html %>
|
||||
<% exclude_members_only_videos = env.get("preferences").as(Preferences).exclude_members_only_videos %>
|
||||
|
||||
<div class="pure-g">
|
||||
<%- items.each do |item| -%>
|
||||
<% next if exclude_members_only_videos && item.responds_to?(:badges) &&
|
||||
item.is_a? SearchVideo && item.badges.members_only? %>
|
||||
<%= rendered "components/item" %>
|
||||
<%- end -%>
|
||||
</div>
|
||||
|
@ -42,6 +42,7 @@
|
||||
|
||||
<div class="pure-g">
|
||||
<% trending.each do |item| %>
|
||||
<% next %>
|
||||
<%= rendered "components/item" %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
@ -194,6 +194,12 @@
|
||||
</select>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<div class="pure-control-group">
|
||||
<label for="exclude_members_only_videos"><%= translate(locale, "preferences_exclude_members_only_videos_label") %></label>
|
||||
<input name="exclude_members_only_videos" id="exclude_members_only_videos" type="checkbox" <% if preferences.exclude_members_only_videos %>checked<% end %>>
|
||||
</div>
|
||||
|
||||
<% if env.get? "user" %>
|
||||
<div class="pure-control-group">
|
||||
<label for="show_nick"><%= translate(locale, "preferences_show_nick_label") %></label>
|
||||
|
Loading…
x
Reference in New Issue
Block a user