diff options
| author | 2018-09-19 12:35:34 +0100 | |
|---|---|---|
| committer | 2018-09-19 12:37:41 +0100 | |
| commit | b8aca728611d0422683347fdf3fc97b4f8651499 (patch) | |
| tree | 377d61f17b3a35849753314ec60a0f012956fb0c /Utils.py | |
| parent | Send 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.py | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -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 |
