From c503acb7b1478b7b9c5abd0084f2c73cea5b472a Mon Sep 17 00:00:00 2001 From: CMDR furrycat Date: Thu, 27 Oct 2016 08:32:26 +0100 Subject: [PATCH] Find plugins in plugin//.py. --- {plugins => plugin/announcements}/announcements.py | 1 + {plugins => plugin/feeds}/feeds.py | 0 {plugins => plugin/rng}/rng.py | 0 plugins/__init__.py => plugins.py | 11 ++++++----- 4 files changed, 7 insertions(+), 5 deletions(-) rename {plugins => plugin/announcements}/announcements.py (99%) rename {plugins => plugin/feeds}/feeds.py (100%) rename {plugins => plugin/rng}/rng.py (100%) rename plugins/__init__.py => plugins.py (93%) diff --git a/plugins/announcements.py b/plugin/announcements/announcements.py similarity index 99% rename from plugins/announcements.py rename to plugin/announcements/announcements.py index 224dd53..8a070c3 100644 --- a/plugins/announcements.py +++ b/plugin/announcements/announcements.py @@ -31,6 +31,7 @@ class Announcements(DBConnection): def on_ready(self): waittime = 60 while True: + # XXX may not be necessary - test! # Convert to list because we will be sharing the cursor. for announcement in list(self.get_announcements(client)): yield from self.announce(announcement) diff --git a/plugins/feeds.py b/plugin/feeds/feeds.py similarity index 100% rename from plugins/feeds.py rename to plugin/feeds/feeds.py diff --git a/plugins/rng.py b/plugin/rng/rng.py similarity index 100% rename from plugins/rng.py rename to plugin/rng/rng.py diff --git a/plugins/__init__.py b/plugins.py similarity index 93% rename from plugins/__init__.py rename to plugins.py index 01a3d6d..ca290b1 100644 --- a/plugins/__init__.py +++ b/plugins.py @@ -18,19 +18,20 @@ class Plugins(object): self.refresh() def refresh(self): - for py in glob.glob('plugins/*.py'): + for py in glob.glob('plugin/*/*.py'): path = py.split('.py')[0] plugin = os.path.basename(path) - if plugin == '__init__': + name = os.path.basename(os.path.dirname(py)) + if name != plugin: continue - name = path.replace('/', '.') + lib = path.replace('/', '.') plugin = plugin[0].upper() + plugin[1:] try: - log.debug('from {} import {}'.format(name, plugin)) + log.debug('from {} import {}'.format(lib, plugin)) if name in self.loaded: module = importlib.reload(self.loaded[name]['module']) else: - module = importlib.import_module(name) + module = importlib.import_module(lib) module.log = logging.getLogger(name) self.loaded[name] = { 'module': module, 'plugin': getattr(module, plugin)() } except: -- 2.7.4