diff options
Diffstat (limited to 'module/plugins/internal/misc.py')
-rw-r--r-- | module/plugins/internal/misc.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/module/plugins/internal/misc.py b/module/plugins/internal/misc.py index e62a7d6cd..6f3dd546e 100644 --- a/module/plugins/internal/misc.py +++ b/module/plugins/internal/misc.py @@ -38,7 +38,7 @@ except ImportError: class misc(object): __name__ = "misc" __type__ = "plugin" - __version__ = "0.25" + __version__ = "0.26" __status__ = "stable" __pattern__ = r'^unmatchable$' @@ -123,6 +123,15 @@ class DB(object): self.plugin.pyload.db.delStorage(self.plugin.classname, key) +class Expose(object): + """ + Used for decoration to declare rpc services + """ + def __new__(cls, fn, *args, **kwargs): + hookManager.addRPC(fn.__module__, fn.func_name, fn.func_doc) + return fn + + class Periodical(object): def __init__(self, plugin, task=lambda x: x, interval=None): @@ -231,6 +240,13 @@ def lock(fn): return new +def threaded(fn): + def run(*args, **kwargs): + hookManager.startThread(fn, *args, **kwargs) + + return run + + def format_time(value): dt = datetime.datetime(1, 1, 1) + datetime.timedelta(seconds=abs(int(value))) days = ("%d days and " % (dt.day - 1)) if dt.day > 1 else "" |