aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-29 22:26:28 +0100
committerGravatar jesopo2019-06-29 22:26:28 +0100
commit19f716ab4cc73592d19128d239848002678af736 (patch)
treef2adb6ac388eaafa083bf475974499d9a664a9b6 /modules
parentAutomatically 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.py14
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):