mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-11-03 22:21:55 +00:00 
			
		
		
		
	Add config opt. to view chan vid page by default
This commit is contained in:
		@@ -309,7 +309,8 @@ Invidious::Routing.get "/", Invidious::Routes::Misc, :home
 | 
			
		||||
Invidious::Routing.get "/privacy", Invidious::Routes::Misc, :privacy
 | 
			
		||||
Invidious::Routing.get "/licenses", Invidious::Routes::Misc, :licenses
 | 
			
		||||
 | 
			
		||||
Invidious::Routing.get "/channel/:ucid", Invidious::Routes::Channels, :home
 | 
			
		||||
Invidious::Routing.get "/channel/:ucid", Invidious::Routes::Channels, :channel
 | 
			
		||||
Invidious::Routing.get "/channel/:ucid/home", Invidious::Routes::Channels, :home
 | 
			
		||||
Invidious::Routing.get "/channel/:ucid/videos", Invidious::Routes::Channels, :videos
 | 
			
		||||
Invidious::Routing.get "/channel/:ucid/playlists", Invidious::Routes::Channels, :playlists
 | 
			
		||||
Invidious::Routing.get "/channel/:ucid/community", Invidious::Routes::Channels, :community
 | 
			
		||||
 
 | 
			
		||||
@@ -55,6 +55,7 @@ struct ConfigPreferences
 | 
			
		||||
  property volume : Int32 = 100
 | 
			
		||||
  property vr_mode : Bool = true
 | 
			
		||||
  property show_nick : Bool = true
 | 
			
		||||
  property view_channel_homepage_by_default : Bool = true
 | 
			
		||||
 | 
			
		||||
  def to_tuple
 | 
			
		||||
    {% begin %}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,12 @@
 | 
			
		||||
class Invidious::Routes::Channels < Invidious::Routes::BaseRoute
 | 
			
		||||
  def channel(env)
 | 
			
		||||
    if !env.get("preferences").as(Preferences).view_channel_homepage_by_default
 | 
			
		||||
      env.redirect "/channel/#{env.params.url["ucid"]}/videos"
 | 
			
		||||
    else
 | 
			
		||||
      env.redirect "/channel/#{env.params.url["ucid"]}/home"
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def home(env)
 | 
			
		||||
    data = self.fetch_basic_information(env)
 | 
			
		||||
    if !data.is_a?(Tuple)
 | 
			
		||||
 
 | 
			
		||||
@@ -72,6 +72,10 @@ class Invidious::Routes::PreferencesRoute < Invidious::Routes::BaseRoute
 | 
			
		||||
    show_nick ||= "off"
 | 
			
		||||
    show_nick = show_nick == "on"
 | 
			
		||||
 | 
			
		||||
    view_channel_homepage_by_default = env.params.body["view_channel_homepage_by_default"]?.try &.as(String)
 | 
			
		||||
    view_channel_homepage_by_default ||= "off"
 | 
			
		||||
    view_channel_homepage_by_default = view_channel_homepage_by_default == "on"
 | 
			
		||||
 | 
			
		||||
    comments = [] of String
 | 
			
		||||
    2.times do |i|
 | 
			
		||||
      comments << (env.params.body["comments[#{i}]"]?.try &.as(String) || CONFIG.default_user_preferences.comments[i])
 | 
			
		||||
@@ -130,36 +134,37 @@ class Invidious::Routes::PreferencesRoute < Invidious::Routes::BaseRoute
 | 
			
		||||
 | 
			
		||||
    # Convert to JSON and back again to take advantage of converters used for compatability
 | 
			
		||||
    preferences = Preferences.from_json({
 | 
			
		||||
      annotations:                 annotations,
 | 
			
		||||
      annotations_subscribed:      annotations_subscribed,
 | 
			
		||||
      autoplay:                    autoplay,
 | 
			
		||||
      captions:                    captions,
 | 
			
		||||
      comments:                    comments,
 | 
			
		||||
      continue:                    continue,
 | 
			
		||||
      continue_autoplay:           continue_autoplay,
 | 
			
		||||
      dark_mode:                   dark_mode,
 | 
			
		||||
      latest_only:                 latest_only,
 | 
			
		||||
      listen:                      listen,
 | 
			
		||||
      local:                       local,
 | 
			
		||||
      locale:                      locale,
 | 
			
		||||
      max_results:                 max_results,
 | 
			
		||||
      notifications_only:          notifications_only,
 | 
			
		||||
      player_style:                player_style,
 | 
			
		||||
      quality:                     quality,
 | 
			
		||||
      quality_dash:                quality_dash,
 | 
			
		||||
      default_home:                default_home,
 | 
			
		||||
      feed_menu:                   feed_menu,
 | 
			
		||||
      automatic_instance_redirect: automatic_instance_redirect,
 | 
			
		||||
      related_videos:              related_videos,
 | 
			
		||||
      sort:                        sort,
 | 
			
		||||
      speed:                       speed,
 | 
			
		||||
      thin_mode:                   thin_mode,
 | 
			
		||||
      unseen_only:                 unseen_only,
 | 
			
		||||
      video_loop:                  video_loop,
 | 
			
		||||
      volume:                      volume,
 | 
			
		||||
      extend_desc:                 extend_desc,
 | 
			
		||||
      vr_mode:                     vr_mode,
 | 
			
		||||
      show_nick:                   show_nick,
 | 
			
		||||
      annotations:                      annotations,
 | 
			
		||||
      annotations_subscribed:           annotations_subscribed,
 | 
			
		||||
      autoplay:                         autoplay,
 | 
			
		||||
      captions:                         captions,
 | 
			
		||||
      comments:                         comments,
 | 
			
		||||
      continue:                         continue,
 | 
			
		||||
      continue_autoplay:                continue_autoplay,
 | 
			
		||||
      dark_mode:                        dark_mode,
 | 
			
		||||
      latest_only:                      latest_only,
 | 
			
		||||
      listen:                           listen,
 | 
			
		||||
      local:                            local,
 | 
			
		||||
      locale:                           locale,
 | 
			
		||||
      max_results:                      max_results,
 | 
			
		||||
      notifications_only:               notifications_only,
 | 
			
		||||
      player_style:                     player_style,
 | 
			
		||||
      quality:                          quality,
 | 
			
		||||
      quality_dash:                     quality_dash,
 | 
			
		||||
      default_home:                     default_home,
 | 
			
		||||
      feed_menu:                        feed_menu,
 | 
			
		||||
      automatic_instance_redirect:      automatic_instance_redirect,
 | 
			
		||||
      related_videos:                   related_videos,
 | 
			
		||||
      sort:                             sort,
 | 
			
		||||
      speed:                            speed,
 | 
			
		||||
      thin_mode:                        thin_mode,
 | 
			
		||||
      unseen_only:                      unseen_only,
 | 
			
		||||
      video_loop:                       video_loop,
 | 
			
		||||
      volume:                           volume,
 | 
			
		||||
      extend_desc:                      extend_desc,
 | 
			
		||||
      vr_mode:                          vr_mode,
 | 
			
		||||
      show_nick:                        show_nick,
 | 
			
		||||
      view_channel_homepage_by_default: view_channel_homepage_by_default,
 | 
			
		||||
    }.to_json).to_json
 | 
			
		||||
 | 
			
		||||
    if user = env.get? "user"
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,7 @@ struct Preferences
 | 
			
		||||
  property local : Bool = CONFIG.default_user_preferences.local
 | 
			
		||||
  property vr_mode : Bool = CONFIG.default_user_preferences.vr_mode
 | 
			
		||||
  property show_nick : Bool = CONFIG.default_user_preferences.show_nick
 | 
			
		||||
  property view_channel_homepage_by_default : Bool = CONFIG.default_user_preferences.view_channel_homepage_by_default
 | 
			
		||||
 | 
			
		||||
  @[JSON::Field(converter: Preferences::ProcessString)]
 | 
			
		||||
  property locale : String = CONFIG.default_user_preferences.locale
 | 
			
		||||
 
 | 
			
		||||
@@ -69,13 +69,13 @@
 | 
			
		||||
        <ul class="pure-menu-list">
 | 
			
		||||
            <% if content_type == 0 %>
 | 
			
		||||
                <li class="pure-menu-item pure-menu-selected">
 | 
			
		||||
                    <a class="pure-menu-link" href="/channel/<%= channel.ucid %>">
 | 
			
		||||
                    <a class="pure-menu-link" href="/channel/<%= channel.ucid %>/home">
 | 
			
		||||
                    <b> <%= translate(locale, "Home") %> </b>
 | 
			
		||||
                    </a>
 | 
			
		||||
                </li>
 | 
			
		||||
            <% else %>
 | 
			
		||||
                <li class="pure-menu-item">
 | 
			
		||||
                    <a class="pure-menu-link" href="/channel/<%= channel.ucid %>">
 | 
			
		||||
                    <a class="pure-menu-link" href="/channel/<%= channel.ucid %>/home">
 | 
			
		||||
                    <%= translate(locale, "Home") %>
 | 
			
		||||
                    </a>
 | 
			
		||||
                </li>
 | 
			
		||||
 
 | 
			
		||||
@@ -189,6 +189,13 @@
 | 
			
		||||
                <input name="automatic_instance_redirect" id="automatic_instance_redirect" type="checkbox" <% if preferences.automatic_instance_redirect %>checked<% end %>>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
             <div class="pure-control-group">
 | 
			
		||||
                    <label for="view_channel_homepage_by_default"><%= translate(locale, "View channel homepage by default: ") %></label>
 | 
			
		||||
                    <input name="view_channel_homepage_by_default" id="view_channel_homepage_by_default" type="checkbox" <% if preferences.view_channel_homepage_by_default %>checked<% end %>>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            <% if env.get? "user" %>
 | 
			
		||||
                <legend><%= translate(locale, "Subscription preferences") %></legend>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user