From f3d98d0e95bbd43202c00f836aef663d249a47a6 Mon Sep 17 00:00:00 2001 From: jesopo Date: Thu, 27 Sep 2018 11:45:23 +0100 Subject: Implement @Utils.export, to denote an export on a module --- src/Utils.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/Utils.py') diff --git a/src/Utils.py b/src/Utils.py index e78c08fc..d5ab69d2 100644 --- a/src/Utils.py +++ b/src/Utils.py @@ -277,14 +277,22 @@ def get_closest_setting(event, setting, default=None): def prevent_highlight(nickname): return nickname[0]+"\u200d"+nickname[1:] +def _set_get_append(obj, setting, item): + if not hasattr(obj, setting): + setattr(obj, setting, []) + getattr(obj, setting).append(item) 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( + _set_get_append(func, ModuleManager.BITBOT_HOOKS_MAGIC, {"event": event, "kwargs": kwargs}) return func return _hook_func +def export(setting, value): + def _export_func(module): + _set_get_append(module, ModuleManager.BITBOT_EXPORTS_MAGIC, + {"setting": setting, "value": value}) + return module + return _export_func def strip_html(s): return bs4.BeautifulSoup(s, "lxml").get_text() -- cgit v1.3.1-10-gc9f91