From 3ed0aff8470563633bd4650928c9bb00664c0cc5 Mon Sep 17 00:00:00 2001 From: trigg Date: Mon, 28 Sep 2020 22:08:33 +0100 Subject: [PATCH] - Corrected string sanitization - Check for source of messages --- discover_overlay/discover_overlay.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/discover_overlay/discover_overlay.py b/discover_overlay/discover_overlay.py index 319dece..8d4f360 100755 --- a/discover_overlay/discover_overlay.py +++ b/discover_overlay/discover_overlay.py @@ -224,12 +224,15 @@ def on_message(ws, message): elif j["evt"] == "VOICE_CONNECTION_STATUS": # VOICE_CONNECTED > CONNECTING > AWAITING_ENDPOINT > DISCONNECTED last_connection = j["data"]["state"] - elif j["evt"] == "MESSAGE_CREATE": - add_text(j["data"]["message"]) + elif j["evt"] == "MESSAGE_CREATE": + if current_text == j["data"]["channel_id"]: + add_text(j["data"]["message"]) elif j["evt"] == "MESSAGE_UPDATE": - update_text(j["data"]["message"]) + if current_text == j["data"]["channel_id"]: + update_text(j["data"]["message"]) elif j["evt"] == "MESSAGE_DELETE": - delete_text(j["data"]["message"]) + if current_text == j["data"]["channel_id"]: + delete_text(j["data"]["message"]) else: print(j) return @@ -1416,11 +1419,11 @@ class TextOverlayWindow(OverlayWindow): col = "#fff" if 'nick_col' in line and line['nick_col']: col = line['nick_col'] - alt_cont = line["content"] - alt_cont=alt_cont.replace("<","[") - alt_cont=alt_cont.replace(">","]") - alt_cont=alt_cont.replace("&", "&") - long_string = "%s\n%s: %s" %( long_string, col,line["nick"], alt_cont) + long_string = "%s\n%s: %s" %( + long_string, + self.santize_string(col), + self.santize_string(line["nick"]), + self.santize_string(line["content"])) layout = self.create_pango_layout(long_string) layout.set_markup(long_string, -1) attr = Pango.AttrList() @@ -1433,6 +1436,10 @@ class TextOverlayWindow(OverlayWindow): tw,th =layout.get_pixel_size() context.move_to(0,-th+h) PangoCairo.show_layout(context, layout) + + def santize_string(self, string): + # I hate that Pango has nothing for this. + return string.replace("&", "&").replace("<","<").replace(">",">").replace("'", "'").replace("\"", """) class VoiceOverlayWindow(OverlayWindow): def __init__(self):