Ability to only show videos from channels with specific tag
This commit is contained in:
parent
d1ae8dc290
commit
b469536ce6
@ -120,12 +120,21 @@ def _unsubscribe(cursor, channel_ids):
|
|||||||
gevent.spawn(delete_thumbnails, to_delete)
|
gevent.spawn(delete_thumbnails, to_delete)
|
||||||
cursor.executemany("DELETE FROM subscribed_channels WHERE yt_channel_id=?", ((channel_id, ) for channel_id in channel_ids))
|
cursor.executemany("DELETE FROM subscribed_channels WHERE yt_channel_id=?", ((channel_id, ) for channel_id in channel_ids))
|
||||||
|
|
||||||
def _get_videos(cursor, number, offset):
|
def _get_videos(cursor, number, offset, tag = None):
|
||||||
db_videos = cursor.execute('''SELECT video_id, title, duration, channel_name
|
if tag is not None:
|
||||||
FROM videos
|
db_videos = cursor.execute('''SELECT video_id, title, duration, channel_name
|
||||||
INNER JOIN subscribed_channels on videos.sql_channel_id = subscribed_channels.id
|
FROM videos
|
||||||
ORDER BY time_published DESC
|
INNER JOIN subscribed_channels on videos.sql_channel_id = subscribed_channels.id
|
||||||
LIMIT ? OFFSET ?''', (number, offset))
|
INNER JOIN tag_associations on videos.sql_channel_id = tag_associations.sql_channel_id
|
||||||
|
WHERE tag = ?
|
||||||
|
ORDER BY time_published DESC
|
||||||
|
LIMIT ? OFFSET ?''', (tag, number, offset))
|
||||||
|
else:
|
||||||
|
db_videos = cursor.execute('''SELECT video_id, title, duration, channel_name
|
||||||
|
FROM videos
|
||||||
|
INNER JOIN subscribed_channels on videos.sql_channel_id = subscribed_channels.id
|
||||||
|
ORDER BY time_published DESC
|
||||||
|
LIMIT ? OFFSET ?''', (number, offset))
|
||||||
|
|
||||||
for db_video in db_videos:
|
for db_video in db_videos:
|
||||||
yield {
|
yield {
|
||||||
@ -481,8 +490,9 @@ def post_subscription_manager_page():
|
|||||||
def get_subscriptions_page():
|
def get_subscriptions_page():
|
||||||
with open_database() as connection:
|
with open_database() as connection:
|
||||||
with connection as cursor:
|
with connection as cursor:
|
||||||
|
tag = request.args.get('tag', None)
|
||||||
videos = []
|
videos = []
|
||||||
for video in _get_videos(cursor, 60, 0):
|
for video in _get_videos(cursor, 60, 0, tag):
|
||||||
video['thumbnail'] = util.URL_ORIGIN + '/data/subscription_thumbnails/' + video['id'] + '.jpg'
|
video['thumbnail'] = util.URL_ORIGIN + '/data/subscription_thumbnails/' + video['id'] + '.jpg'
|
||||||
video['type'] = 'video'
|
video['type'] = 'video'
|
||||||
video['item_size'] = 'small'
|
video['item_size'] = 'small'
|
||||||
|
@ -64,7 +64,7 @@
|
|||||||
<ol class="sidebar-list tags">
|
<ol class="sidebar-list tags">
|
||||||
{% for tag in tags %}
|
{% for tag in tags %}
|
||||||
<li class="sidebar-list-item">
|
<li class="sidebar-list-item">
|
||||||
<span class="sidebar-item-name">{{ tag }}</span>
|
<a href="?tag={{ tag|urlencode }}" class="sidebar-item-name">{{ tag }}</a>
|
||||||
<form method="POST" class="sidebar-item-refresh">
|
<form method="POST" class="sidebar-item-refresh">
|
||||||
<input type="submit" value="Check">
|
<input type="submit" value="Check">
|
||||||
<input type="hidden" name="action" value="refresh">
|
<input type="hidden" name="action" value="refresh">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user