aboutsummaryrefslogtreecommitdiff
path: root/Utils.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-19 12:35:34 +0100
committerGravatar jesopo2018-09-19 12:37:41 +0100
commitb8aca728611d0422683347fdf3fc97b4f8651499 (patch)
tree377d61f17b3a35849753314ec60a0f012956fb0c /Utils.py
parentSend a FONT_RESET (\x0F) after stderr module names because a bug in weechat (diff)
Support hooking functions in modules with @Utils.hook
Diffstat (limited to 'Utils.py')
-rw-r--r--Utils.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/Utils.py b/Utils.py
index b9a442dc..e2da0c43 100644
--- a/Utils.py
+++ b/Utils.py
@@ -1,6 +1,7 @@
import json, re, traceback, urllib.request, urllib.parse, urllib.error, ssl
import string
import bs4
+import ModuleManager
USER_AGENT = ("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36")
@@ -275,3 +276,12 @@ def get_closest_setting(event, setting, default=None):
def prevent_highlight(nickname):
return nickname[0]+"\u200d"+nickname[1:]
+
+def hook(event, **kwargs):
+ def _hook_func(func):
+ if not hasattr(func, ModuleManager.BITBOT_HOOKS_MAGIC):
+ setattr(func, ModuleManager.BITBOT_HOOKS_MAGIC, [])
+ getattr(func, ModuleManager.BITBOT_HOOKS_MAGIC).append(
+ {"event": event, "kwargs": kwargs})
+ return func
+ return _hook_func