From 662b5656f3a23fcf19561f54f8b332af24c0c0fa Mon Sep 17 00:00:00 2001 From: Chris Fulljames Date: Sun, 15 Feb 2026 08:51:18 -0500 Subject: [PATCH] Add love button to player --- src/littlesongplace/comments.py | 53 ++++++++++++++++++ .../static/lsp_btn_heart_fill02.gif | Bin 0 -> 173 bytes .../static/lsp_btn_heart_line02.gif | Bin 0 -> 173 bytes src/littlesongplace/static/player.js | 28 +++++++++ src/littlesongplace/templates/base.html | 9 ++- 5 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 src/littlesongplace/static/lsp_btn_heart_fill02.gif create mode 100644 src/littlesongplace/static/lsp_btn_heart_line02.gif diff --git a/src/littlesongplace/comments.py b/src/littlesongplace/comments.py index 7de0a98..044f386 100644 --- a/src/littlesongplace/comments.py +++ b/src/littlesongplace/comments.py @@ -203,6 +203,59 @@ def comment(): return redirect_to_previous_page() +@bp.post("/send-love") +@auth.requires_login +def send_love(): + thread = db.query( + """ + SELECT * FROM comment_threads + WHERE threadid = ? + """, + [request.args["threadid"]], + expect_one=True) + + # Add love comment + content = "[l0vv3]" + timestamp = datetime.now(timezone.utc).isoformat() + userid = session["userid"] + + threadid = request.args["threadid"] + comment = db.query( + """ + INSERT INTO comments + (threadid, userid, replytoid, created, content) + VALUES (?, ?, ?, ?, ?) + RETURNING (commentid) + """, + args=[threadid, userid, None, timestamp, content], + one=True) + commentid = comment["commentid"] + + # Notify content owner + notification_targets = {thread["userid"]} + + # Create notifications in database + for target in notification_targets: + db.query( + """ + INSERT INTO notifications + (objectid, objecttype, targetuserid, created) + VALUES (?, ?, ?, ?) + """, + [commentid, ObjectType.COMMENT, target, timestamp]) + + # Send push notifications + push_notifications.notify( + notification_targets, + title=f"{g.username} sent love!", + body=None, + url="/activity", + setting=push_notifications.SubscriptionSetting.LOVE) + + db.commit() + + return { "status": "success", "messages": ["Love sent!"] } + def redirect_to_previous_page(): previous_page = "/" if "previous_page" in session: diff --git a/src/littlesongplace/static/lsp_btn_heart_fill02.gif b/src/littlesongplace/static/lsp_btn_heart_fill02.gif new file mode 100644 index 0000000000000000000000000000000000000000..29e9eb2a000d6962797a5c980e708289b23f83a8 GIT binary patch literal 173 zcmZ?wbh9u|6krfwSi}GVFP?3kT)c8m!}{LShrj|LLh(PhpKD04vtxj(k)8oFBS`2c z3#Sf{p#zc!X=h+omDqLXpTCEi>uTeK)!Ww3Rjs>YQm5FdtL3p$kgHPQ^)t?RU8_K`Mh&6SaIjM!L)AH!z`+3MDYWwC@?;V-I jIz@n*@aSX { diff --git a/src/littlesongplace/templates/base.html b/src/littlesongplace/templates/base.html index 4ab6b56..eb7b987 100644 --- a/src/littlesongplace/templates/base.html +++ b/src/littlesongplace/templates/base.html @@ -99,6 +99,9 @@