]> jfr.im git - irc/weechat/scripts.git/commitdiff
fish.py 0.13: handle message tags from ircv3
authorDavid Flatz <redacted>
Thu, 6 Oct 2022 10:16:26 +0000 (12:16 +0200)
committerSébastien Helleu <redacted>
Fri, 21 Oct 2022 15:38:18 +0000 (17:38 +0200)
python/fish.py

index f0b0bef70c2c2ccfd9b39426ff3e7fc649cc6ce2..8787e82e2c8974d6d678777ea66160db8c47c745 100644 (file)
@@ -61,7 +61,7 @@ from os import urandom
 
 SCRIPT_NAME = "fish"
 SCRIPT_AUTHOR = "David Flatz <david@upcs.at>"
-SCRIPT_VERSION = "0.12"
+SCRIPT_VERSION = "0.13"
 SCRIPT_LICENSE = "GPL3"
 SCRIPT_DESC = "FiSH for weechat"
 CONFIG_FILE_NAME = SCRIPT_NAME
@@ -579,7 +579,7 @@ def fish_modifier_in_notice_cb(data, modifier, server_name, string):
         return string
 
     match = re.match(
-        r"^(:(.*?)!.*? NOTICE (.*?) :)"
+        r"^((?:@[^ ]* )?:(.*?)!.*? NOTICE (.*?) :)"
         r"((DH1080_INIT |DH1080_FINISH |\+OK |mcps )?.*)$",
         string)
     # match.group(0): message
@@ -673,7 +673,7 @@ def fish_modifier_in_privmsg_cb(data, modifier, server_name, string):
         return string
 
     match = re.match(
-        r"^(:(.*?)!.*? PRIVMSG (.*?) :)(\x01ACTION )?"
+        r"^((?:@[^ ]* )?:(.*?)!.*? PRIVMSG (.*?) :)(\x01ACTION )?"
         r"((\+OK |mcps )?.*?)(\x01)?$",
         string)
     # match.group(0): message
@@ -737,7 +737,7 @@ def fish_modifier_in_topic_cb(data, modifier, server_name, string):
     if type(string) is bytes:
         return string
 
-    match = re.match(r"^(:.*?!.*? TOPIC (.*?) :)((\+OK |mcps )?.*)$", string)
+    match = re.match(r"^((?:@[^ ]* )?:.*?!.*? TOPIC (.*?) :)((\+OK |mcps )?.*)$", string)
     # match.group(0): message
     # match.group(1): msg without payload
     # match.group(2): channel
@@ -782,7 +782,7 @@ def fish_modifier_in_332_cb(data, modifier, server_name, string):
     if type(string) is bytes:
         return string
 
-    match = re.match(r"^(:.*? 332 .*? (.*?) :)((\+OK |mcps )?.*)$", string)
+    match = re.match(r"^((?:@[^ ]* )?:.*? 332 .*? (.*?) :)((\+OK |mcps )?.*)$", string)
     if not match:
         return string