summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2018-05-07 21:57:47 -0500
committerOmar Roth <omarroth@hotmail.com>2018-05-07 21:57:47 -0500
commitfdcfe0bb14dd7f95eb3ebaf9f8da22159940580e (patch)
treed8d11de24a3218e6578351b8c739c93a8e14815c /src
parent0e85a04761756b78392698891db9ed4e29ed57e9 (diff)
downloadinvidious-fdcfe0bb14dd7f95eb3ebaf9f8da22159940580e.tar.gz
invidious-fdcfe0bb14dd7f95eb3ebaf9f8da22159940580e.tar.bz2
invidious-fdcfe0bb14dd7f95eb3ebaf9f8da22159940580e.zip
Seperate new videos in subscription feed
Diffstat (limited to 'src')
-rw-r--r--src/helpers.cr2
-rw-r--r--src/invidious.cr5
-rw-r--r--src/views/subscriptions.ecr24
3 files changed, 30 insertions, 1 deletions
diff --git a/src/helpers.cr b/src/helpers.cr
index 8026f472..0ab2ea46 100644
--- a/src/helpers.cr
+++ b/src/helpers.cr
@@ -605,7 +605,7 @@ def get_user(sid, client, headers, db)
args = arg_array(user_array)
db.exec("INSERT INTO users VALUES (#{args}) \
- ON CONFLICT (email) DO UPDATE SET id = $1, updated = $2, notifications = $3, subscriptions = $4", user_array)
+ ON CONFLICT (email) DO UPDATE SET id = $1, updated = $2, subscriptions = $4", user_array)
end
else
user = fetch_user(sid, client, headers)
diff --git a/src/invidious.cr b/src/invidious.cr
index 7af339ed..afa69dd5 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -729,6 +729,11 @@ get "/feed/subscriptions" do |env|
videos = PG_DB.query_all("SELECT * FROM channel_videos WHERE ucid IN (#{args}) \
ORDER BY published DESC LIMIT $1 OFFSET $2", [limit, offset] + user.subscriptions, as: ChannelVideo)
+ notifications = PG_DB.query_one("SELECT notifications FROM users WHERE email = $1", user.email, as: Array(String))
+
+ notifications = videos.select { |v| notifications.includes? v.id }
+ vidoes = videos - notifications
+
if !limit
videos = videos[0..max_results]
end
diff --git a/src/views/subscriptions.ecr b/src/views/subscriptions.ecr
index 98e6a18c..7c6f722d 100644
--- a/src/views/subscriptions.ecr
+++ b/src/views/subscriptions.ecr
@@ -2,6 +2,30 @@
<title>Subscriptions - Invidious</title>
<% end %>
+<% if !notifications.empty? %>
+<% notifications.each_slice(4) do |slice| %>
+<div class="pure-g">
+ <% slice.each do |video| %>
+ <div class="pure-u-1 pure-u-md-1-4">
+ <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>
+ </a>
+ <p>
+ <b><a style="width:100%;" href="https://youtube.com/channel/<%= video.ucid %>"><%= video.author %></a></b>
+ </p>
+ <p>
+ <h5>Shared <%= video.published.to_s("%B %-d, %Y at %r") %></h5>
+ </p>
+ </div>
+ </div>
+ <% end %>
+</div>
+<% end %>
+<hr style="margin-left:1em; margin-right:1em;">
+<% end %>
+
<% videos.each_slice(4) do |slice| %>
<div class="pure-g">
<% slice.each do |video| %>