summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2018-07-05 19:48:55 -0500
committerOmar Roth <omarroth@hotmail.com>2018-07-05 19:48:55 -0500
commit431fa642bf40cbd1d58fa16a71125e3ed2917425 (patch)
tree478c7ddecb308d68a18d4fd03fe2eda2cbf46477 /src
parent1ada71e5ba01c797f4a8aa2993e5e9fbd9ab5b00 (diff)
downloadinvidious-431fa642bf40cbd1d58fa16a71125e3ed2917425.tar.gz
invidious-431fa642bf40cbd1d58fa16a71125e3ed2917425.tar.bz2
invidious-431fa642bf40cbd1d58fa16a71125e3ed2917425.zip
Add /subscription_manager
Diffstat (limited to 'src')
-rw-r--r--src/invidious.cr18
-rw-r--r--src/views/components/subscription_video.ecr2
-rw-r--r--src/views/subscription_manager.ecr19
-rw-r--r--src/views/subscriptions.ecr2
4 files changed, 40 insertions, 1 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 71051b33..44c0c2d2 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -806,6 +806,24 @@ get "/modify_notifications" do |env|
env.redirect referer
end
+get "/subscription_manager" do |env|
+ authorized = env.get? "authorized"
+ if !authorized
+ next env.redirect "/"
+ end
+
+ subscriptions = env.get?("subscriptions").as(Array(String))
+ subscriptions ||= [] of String
+
+ client = make_client(YT_URL)
+ subscriptions = subscriptions.map do |ucid|
+ get_channel(ucid, client, PG_DB, false)
+ end
+ subscriptions.sort_by! { |channel| channel.author.downcase }
+
+ templated "subscription_manager"
+end
+
get "/subscription_ajax" do |env|
authorized = env.get? "authorized"
referer = env.request.headers["referer"]?
diff --git a/src/views/components/subscription_video.ecr b/src/views/components/subscription_video.ecr
index 9abbb09f..377f51cb 100644
--- a/src/views/components/subscription_video.ecr
+++ b/src/views/components/subscription_video.ecr
@@ -2,7 +2,7 @@
<div class="h-box">
<a style="width:100%;" href="/watch?v=<%= video.id %>">
<img style="width:100%;" src="https://i.ytimg.com/vi/<%= video.id %>/mqdefault.jpg"/>
- <p style="height:100%"><%= video.title %></p>
+ <p><%= video.title %></p>
</a>
<p>
<b><a style="width:100%;" href="/channel/<%= video.ucid %>"><%= video.author %></a></b>
diff --git a/src/views/subscription_manager.ecr b/src/views/subscription_manager.ecr
new file mode 100644
index 00000000..23afa609
--- /dev/null
+++ b/src/views/subscription_manager.ecr
@@ -0,0 +1,19 @@
+<% content_for "header" do %>
+<title>Subscription manager - Invidious</title>
+<% end %>
+
+<h1><%= subscriptions.size %> subscriptions</h1>
+
+<% subscriptions.each do |channel| %>
+<h3 class="h-box">
+ <div class="pure-g">
+ <div class="pure-u-2-5">
+ <a href="/channel/<%= channel.id %>"><%= channel.author %></a>
+ </div>
+ <div class="pure-u-2-5"></div>
+ <div class="pure-u-1-5">
+ <a style="vertical-align: right;" href="/subscription_ajax?action_remove_subscriptions=1&c=<%= channel.id %>">unsubscribe</a>
+ </div>
+ </div>
+</h3>
+<% end %> \ No newline at end of file
diff --git a/src/views/subscriptions.ecr b/src/views/subscriptions.ecr
index c0e15b47..f2411b24 100644
--- a/src/views/subscriptions.ecr
+++ b/src/views/subscriptions.ecr
@@ -2,6 +2,8 @@
<title>Subscriptions - Invidious</title>
<% end %>
+<h3><a href="/subscription_manager">View all subscriptions</a></h3>
+
<% if !notifications.empty? %>
<% notifications.each_slice(4) do |slice| %>
<div class="pure-g">