From 8f08bfd9a1664d80ae9e37c67be5015a8138d15c Mon Sep 17 00:00:00 2001 From: girst Date: Sat, 19 Sep 2020 20:11:04 +0200 Subject: [PATCH] (re)add subscribe button to channel page --- app/browse/__init__.py | 12 ++++++++++++ app/browse/templates/channel.html.j2 | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/browse/__init__.py b/app/browse/__init__.py index ac3308d..929b775 100644 --- a/app/browse/__init__.py +++ b/app/browse/__init__.py @@ -1,5 +1,6 @@ import requests from flask import Blueprint, render_template, request, flash, g, url_for, redirect +from flask_login import current_user from werkzeug.exceptions import NotFound from ..common.common import * @@ -42,6 +43,7 @@ def search(): @frontend.route('/channel//') @frontend.route('/channel//') def channel(channel_id, subpage="videos"): + token = getattr(current_user, 'token', 'guest') if subpage == "videos": page = int(request.args.get('page', 1)) sort_by = request.args.get('sort') or "newest" @@ -75,6 +77,15 @@ def channel(channel_id, subpage="videos"): flash("unable to fetch results from ajax; displaying fallback results (15 newest)", "error") return fallback_route(channel_id, subpage) + with sqlite3.connect(cf['global']['database']) as conn: + c = conn.cursor() + c.execute(""" + SELECT COUNT(*) + FROM subscriptions + WHERE channel_id = ? AND user = ? + """, (channel_id, token)) + (is_subscribed,) = c.fetchone() + return render_template('channel.html.j2', title=title, subpage=subpage, @@ -82,6 +93,7 @@ def channel(channel_id, subpage="videos"): channel_id=channel_id, channel_img=thumb, channel_desc=descr, + is_subscribed=is_subscribed, page=page, has_more=more) diff --git a/app/browse/templates/channel.html.j2 b/app/browse/templates/channel.html.j2 index 893bb0e..fe724ca 100644 --- a/app/browse/templates/channel.html.j2 +++ b/app/browse/templates/channel.html.j2 @@ -6,7 +6,7 @@ -{{ super() }} +

{{ title | e }} {{ macros.emoji_button("subscribe", channel_id, is_subscribed) if channel_id }}

About

{{ channel_desc }}


-- 2.39.3