change webhook to use rawBody instead of body when reading msg

remove_emoji function is now unused, as shortcodes get scrubbed in rawBody now
This commit is contained in:
Lili (Tlapka) 2024-02-04 18:09:36 +01:00
parent e5e88bf520
commit 7ffb1a15b0
3 changed files with 9 additions and 7 deletions

View File

@ -121,6 +121,7 @@ def remove_duplicate_usernames(db, user_id, username):
# # # misc. stuff # # # # # # misc. stuff # # #
# This is now unused since rawBody attribute of the webhook now returns cleaned-up emotes.
def remove_emoji(message): def remove_emoji(message):
return sub( return sub(
r'<img class="emoji" alt="(:.*?:)" title=":.*?:" src="/img/emoji/.*?">', r'<img class="emoji" alt="(:.*?:)" title=":.*?:" src="/img/emoji/.*?">',

View File

@ -36,22 +36,23 @@ def owncast_webhook():
user_id = data["eventData"]["user"]["id"] user_id = data["eventData"]["user"]["id"]
display_name = data["eventData"]["user"]["displayName"] display_name = data["eventData"]["user"]["displayName"]
current_app.logger.debug(f'New chat message from {display_name}:') current_app.logger.debug(f'New chat message from {display_name}:')
current_app.logger.debug(f'{data["eventData"]["rawBody"]}')
current_app.logger.debug(f'{data["eventData"]["body"]}') current_app.logger.debug(f'{data["eventData"]["body"]}')
if data["eventData"]["body"].startswith(f"{prefix}help"): if data["eventData"]["rawBody"].startswith(f"{prefix}help"):
send_help() send_help()
elif data["eventData"]["body"].startswith(f"{prefix}points"): elif data["eventData"]["rawBody"].startswith(f"{prefix}points"):
points = read_users_points(db, user_id) points = read_users_points(db, user_id)
if points is None: if points is None:
send_chat("Error reading points.") send_chat("Error reading points.")
else: else:
send_chat(f"{display_name}'s points: {points}") send_chat(f"{display_name}'s points: {points}")
elif data["eventData"]["body"].startswith(f"{prefix}name_update"): elif data["eventData"]["rawBody"].startswith(f"{prefix}name_update"):
# Forces name update in case bot didn't catch the NAME_CHANGE # Forces name update in case bot didn't catch the NAME_CHANGE
# event. Also removes saved usernames from users with same name # event. Also removes saved usernames from users with same name
# if user is authenticated. # if user is authenticated.
change_display_name(db, user_id, display_name) change_display_name(db, user_id, display_name)
if data["eventData"]["user"]["authenticated"]: if data["eventData"]["user"]["authenticated"]:
remove_duplicate_usernames(db, user_id, display_name) remove_duplicate_usernames(db, user_id, display_name)
elif data["eventData"]["body"].startswith(prefix): elif data["eventData"]["rawBody"].startswith(prefix):
handle_redeem(data["eventData"]["body"], user_id) handle_redeem(data["eventData"]["rawBody"], user_id)
return data return data

View File

@ -3,7 +3,7 @@ from tlapbot.db import get_db
from tlapbot.owncast_requests import send_chat from tlapbot.owncast_requests import send_chat
from tlapbot.redeems import (add_to_redeem_queue, add_to_counter, add_to_milestone, from tlapbot.redeems import (add_to_redeem_queue, add_to_counter, add_to_milestone,
check_apply_milestone_completion, milestone_complete, is_redeem_active) check_apply_milestone_completion, milestone_complete, is_redeem_active)
from tlapbot.owncast_helpers import use_points, read_users_points, remove_emoji from tlapbot.owncast_helpers import use_points, read_users_points
def handle_redeem(message, user_id): def handle_redeem(message, user_id):
@ -64,7 +64,7 @@ def handle_redeem(message, user_id):
if not note: if not note:
send_chat(f"Cannot redeem {redeem}, no note included.") send_chat(f"Cannot redeem {redeem}, no note included.")
return return
if (add_to_redeem_queue(db, user_id, redeem, remove_emoji(note)) and if (add_to_redeem_queue(db, user_id, redeem, note) and
use_points(db, user_id, price)): use_points(db, user_id, price)):
send_chat(f"{redeem} redeemed for {price} points.") send_chat(f"{redeem} redeemed for {price} points.")
else: else: