diff options
| author | 2019-06-29 22:26:28 +0100 | |
|---|---|---|
| committer | 2019-06-29 22:26:28 +0100 | |
| commit | 19f716ab4cc73592d19128d239848002678af736 (patch) | |
| tree | f2adb6ac388eaafa083bf475974499d9a664a9b6 /modules | |
| parent | Automatically format `example` text for OptionsSetting (showing options) (diff) | |
| signature | ||
Implemnt _options_factory for OptionsSetting to have dynamic options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/shorturl.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/modules/shorturl.py b/modules/shorturl.py index 4959b53a..e4890ecf 100644 --- a/modules/shorturl.py +++ b/modules/shorturl.py @@ -6,10 +6,6 @@ from src import ModuleManager, utils URL_BITLYSHORTEN = "https://api-ssl.bitly.com/v3/shorten" -@utils.export("serverset", utils.Setting("url-shortener", - "Set URL shortener service", example="bitly")) -@utils.export("botset", utils.Setting("url-shortener", - "Set URL shortener service", example="bitly")) class Module(ModuleManager.BaseModule): def on_load(self): self.exports.add("shorturl", self._shorturl) @@ -17,6 +13,16 @@ class Module(ModuleManager.BaseModule): self.exports.add("shorturl-s-bitly", self._bitly) + setting = utils.OptionsSetting("url-shortener", + "Set URL shortener service", + options_factory=self._shorturl_options_factory) + self.exports.add("serverset", setting) + self.exports.add("botset", setting) + + def _shorturl_options_factory(self): + shorteners = self.exports.find("shorturl-s-") + return [s.replace("shorturl-s-", "", 1) for s in shorteners] + def _get_shortener(self, name): return self.exports.get_one("shorturl-s-%s" % name, None) def _call_shortener(self, shortener_name, url): |
