mirror of https://github.com/iv-org/invidious.git
Add compilations to feeds menu
This commit is contained in:
parent
ea48239543
commit
7cfa09984e
|
@ -60,12 +60,21 @@
|
||||||
document.querySelectorAll('[data-onclick="add_playlist_video"]').forEach(function (el) {
|
document.querySelectorAll('[data-onclick="add_playlist_video"]').forEach(function (el) {
|
||||||
el.onclick = function () { add_playlist_video(el); };
|
el.onclick = function () { add_playlist_video(el); };
|
||||||
});
|
});
|
||||||
|
document.querySelectorAll('[data-onclick="add_compilation_video"]').forEach(function (el) {
|
||||||
|
el.onclick = function () { add_compilation_video(el); };
|
||||||
|
});
|
||||||
document.querySelectorAll('[data-onclick="add_playlist_item"]').forEach(function (el) {
|
document.querySelectorAll('[data-onclick="add_playlist_item"]').forEach(function (el) {
|
||||||
el.onclick = function () { add_playlist_item(el); };
|
el.onclick = function () { add_playlist_item(el); };
|
||||||
});
|
});
|
||||||
|
document.querySelectorAll('[data-onclick="add_compilation_item"]').forEach(function (el) {
|
||||||
|
el.onclick = function () { add_compilation_item(el); };
|
||||||
|
});
|
||||||
document.querySelectorAll('[data-onclick="remove_playlist_item"]').forEach(function (el) {
|
document.querySelectorAll('[data-onclick="remove_playlist_item"]').forEach(function (el) {
|
||||||
el.onclick = function () { remove_playlist_item(el); };
|
el.onclick = function () { remove_playlist_item(el); };
|
||||||
});
|
});
|
||||||
|
document.querySelectorAll('[data-onclick="remove_compilation_item"]').forEach(function (el) {
|
||||||
|
el.onclick = function () { remove_compilation_item(el); };
|
||||||
|
});
|
||||||
document.querySelectorAll('[data-onclick="revoke_token"]').forEach(function (el) {
|
document.querySelectorAll('[data-onclick="revoke_token"]').forEach(function (el) {
|
||||||
el.onclick = function () { revoke_token(el); };
|
el.onclick = function () { revoke_token(el); };
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
-- Type: public.privacy
|
-- Type: public.compilation_privacy
|
||||||
|
|
||||||
-- DROP TYPE public.privacy;
|
-- DROP TYPE public.compilation_privacy;
|
||||||
|
|
||||||
CREATE TYPE public.privacy AS ENUM
|
CREATE TYPE public.compilation_privacy AS ENUM
|
||||||
(
|
(
|
||||||
'Unlisted',
|
'Unlisted',
|
||||||
'Private'
|
'Private'
|
||||||
|
@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS public.compilations
|
||||||
video_count integer,
|
video_count integer,
|
||||||
created timestamptz,
|
created timestamptz,
|
||||||
updated timestamptz,
|
updated timestamptz,
|
||||||
privacy privacy,
|
privacy compilation_privacy,
|
||||||
index int8[]
|
index int8[]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -319,8 +319,6 @@ def get_compilation(compid : String)
|
||||||
else
|
else
|
||||||
raise NotFoundException.new("Compilation does not exist.")
|
raise NotFoundException.new("Compilation does not exist.")
|
||||||
end
|
end
|
||||||
else
|
|
||||||
return fetch_compilation(compid)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ struct ConfigPreferences
|
||||||
property quality : String = "hd720"
|
property quality : String = "hd720"
|
||||||
property quality_dash : String = "auto"
|
property quality_dash : String = "auto"
|
||||||
property default_home : String? = "Popular"
|
property default_home : String? = "Popular"
|
||||||
property feed_menu : Array(String) = ["Popular", "Trending", "Subscriptions", "Playlists"]
|
property feed_menu : Array(String) = ["Popular", "Trending", "Subscriptions", "Playlists", "Compilations"]
|
||||||
property automatic_instance_redirect : Bool = false
|
property automatic_instance_redirect : Bool = false
|
||||||
property region : String = "US"
|
property region : String = "US"
|
||||||
property related_videos : Bool = true
|
property related_videos : Bool = true
|
||||||
|
@ -138,6 +138,9 @@ class Config
|
||||||
# Playlist length limit
|
# Playlist length limit
|
||||||
property playlist_length_limit : Int32 = 500
|
property playlist_length_limit : Int32 = 500
|
||||||
|
|
||||||
|
# Compilation length limit
|
||||||
|
property compilation_length_limit : Int32 = 500
|
||||||
|
|
||||||
def disabled?(option)
|
def disabled?(option)
|
||||||
case disabled = CONFIG.disable_proxy
|
case disabled = CONFIG.disable_proxy
|
||||||
when Bool
|
when Bool
|
||||||
|
|
|
@ -5,6 +5,10 @@ module Invidious::Routes::Feeds
|
||||||
env.redirect "/feed/playlists"
|
env.redirect "/feed/playlists"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.view_all_compilations_redirect(env)
|
||||||
|
env.redirect "/feed/compilations"
|
||||||
|
end
|
||||||
|
|
||||||
def self.compilations(env)
|
def self.compilations(env)
|
||||||
locale = env.get("preferences").as(Preferences).locale
|
locale = env.get("preferences").as(Preferences).locale
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ module Invidious::Routes::Misc
|
||||||
if user
|
if user
|
||||||
env.redirect "/feed/compilations"
|
env.redirect "/feed/compilations"
|
||||||
else
|
else
|
||||||
env.redirect "/feed/popyular"
|
env.redirect "/feed/popular"
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
templated "search_homepage", navbar_search: false
|
templated "search_homepage", navbar_search: false
|
||||||
|
|
|
@ -186,7 +186,7 @@ module Invidious::Routes::PreferencesRoute
|
||||||
CONFIG.default_user_preferences.default_home = env.params.body["admin_default_home"]?.try &.as(String) || CONFIG.default_user_preferences.default_home
|
CONFIG.default_user_preferences.default_home = env.params.body["admin_default_home"]?.try &.as(String) || CONFIG.default_user_preferences.default_home
|
||||||
|
|
||||||
admin_feed_menu = [] of String
|
admin_feed_menu = [] of String
|
||||||
4.times do |index|
|
5.times do |index|
|
||||||
option = env.params.body["admin_feed_menu[#{index}]"]?.try &.as(String) || ""
|
option = env.params.body["admin_feed_menu[#{index}]"]?.try &.as(String) || ""
|
||||||
if !option.empty?
|
if !option.empty?
|
||||||
admin_feed_menu << option
|
admin_feed_menu << option
|
||||||
|
|
|
@ -26,6 +26,7 @@ module Invidious::Routing
|
||||||
self.register_watch_routes
|
self.register_watch_routes
|
||||||
|
|
||||||
self.register_iv_playlist_routes
|
self.register_iv_playlist_routes
|
||||||
|
self.register_iv_compilation_routes
|
||||||
self.register_yt_playlist_routes
|
self.register_yt_playlist_routes
|
||||||
|
|
||||||
self.register_search_routes
|
self.register_search_routes
|
||||||
|
@ -83,6 +84,7 @@ module Invidious::Routing
|
||||||
def register_iv_compilation_routes
|
def register_iv_compilation_routes
|
||||||
get "/create_compilation", Routes::Compilations, :new
|
get "/create_compilation", Routes::Compilations, :new
|
||||||
post "/create_compilation", Routes::Compilations, :create
|
post "/create_compilation", Routes::Compilations, :create
|
||||||
|
post "/compilation_ajax", Routes::Compilations, :compilation_ajax
|
||||||
end
|
end
|
||||||
|
|
||||||
def register_iv_playlist_routes
|
def register_iv_playlist_routes
|
||||||
|
@ -279,7 +281,7 @@ module Invidious::Routing
|
||||||
post "/api/v1/auth/subscriptions/:ucid", {{namespace}}::Authenticated, :subscribe_channel
|
post "/api/v1/auth/subscriptions/:ucid", {{namespace}}::Authenticated, :subscribe_channel
|
||||||
delete "/api/v1/auth/subscriptions/:ucid", {{namespace}}::Authenticated, :unsubscribe_channel
|
delete "/api/v1/auth/subscriptions/:ucid", {{namespace}}::Authenticated, :unsubscribe_channel
|
||||||
|
|
||||||
get "/api/v1/auth/compilations", {{namespace}}::Authenticated, :create_compilation
|
post "/api/v1/auth/compilations", {{namespace}}::Authenticated, :create_compilation
|
||||||
|
|
||||||
get "/api/v1/auth/playlists", {{namespace}}::Authenticated, :list_playlists
|
get "/api/v1/auth/playlists", {{namespace}}::Authenticated, :list_playlists
|
||||||
post "/api/v1/auth/playlists", {{namespace}}::Authenticated, :create_playlist
|
post "/api/v1/auth/playlists", {{namespace}}::Authenticated, :create_playlist
|
||||||
|
|
|
@ -174,7 +174,7 @@
|
||||||
<label for="default_home"><%= translate(locale, "preferences_default_home_label") %></label>
|
<label for="default_home"><%= translate(locale, "preferences_default_home_label") %></label>
|
||||||
<select name="default_home" id="default_home">
|
<select name="default_home" id="default_home">
|
||||||
<% feed_options.each do |option| %>
|
<% feed_options.each do |option| %>
|
||||||
<option value="<%= option %>" <% if preferences.default_home == option %> selected <% end %>><%= translate(locale, option.blank? ? "Search" : option) %></option>
|
<option value="<%= option %>" <% if preferences.default_home == option %> selected <% end %>><%= translate(locale, option.blank? ? "Compilations" : option) %></option>
|
||||||
<% end %>
|
<% end %>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
@ -184,7 +184,7 @@
|
||||||
<% (feed_options.size - 1).times do |index| %>
|
<% (feed_options.size - 1).times do |index| %>
|
||||||
<select name="feed_menu[<%= index %>]" id="feed_menu[<%= index %>]">
|
<select name="feed_menu[<%= index %>]" id="feed_menu[<%= index %>]">
|
||||||
<% feed_options.each do |option| %>
|
<% feed_options.each do |option| %>
|
||||||
<option value="<%= option %>" <% if preferences.feed_menu[index]? == option %> selected <% end %>><%= translate(locale, option.blank? ? "Search" : option) %></option>
|
<option value="<%= option %>" <% if preferences.feed_menu[index]? == option %> selected <% end %>><%= translate(locale, option.blank? ? "Compilations" : option) %></option>
|
||||||
<% end %>
|
<% end %>
|
||||||
</select>
|
</select>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
Loading…
Reference in New Issue