diff options
Diffstat (limited to 'modules/shorturl.py')
| -rw-r--r-- | modules/shorturl.py | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/modules/shorturl.py b/modules/shorturl.py index afc1b50c..345d2183 100644 --- a/modules/shorturl.py +++ b/modules/shorturl.py @@ -16,36 +16,48 @@ class Module(ModuleManager.BaseModule): 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] + shorteners = set(self.exports.find("shorturl-s-")) + shorteners.update(self.exports.find("shorturl-x-")) + return sorted(s.split("-", 2)[-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): - shortener = self._get_shortener(shortener_name) + extended = self.exports.get("shorturl-x-%s" % name, None) + if not extended == None: + return True, extended + return False, self.exports.get("shorturl-s-%s" % name, None) + def _call_shortener(self, server, context, shortener_name, url): + extended, shortener = self._get_shortener(shortener_name) if shortener == None: return None - short_url = shortener(url) + + if extended: + short_url = shortener(server, context, url) + else: + short_url = shortener(url) + if short_url == None: return None return short_url @utils.export("shorturl-any") def _shorturl_any(self, url): - return self._call_shortener("bitly", url) or url + return self._call_shortener(server, None, "bitly", url) or url @utils.export("shorturl") def _shorturl(self, server, url, context=None): shortener_name = None if context: shortener_name = context.get_setting("url-shortener", - server.get_setting("url-shortener", "bitly")) + server.get_setting("url-shortener", + self.bot.get_setting("url-shortener", "bitly"))) else: - shortener_name = server.get_setting("url-shortener", "bitly") + shortener_name = server.get_setting("url-shortener", + self.bot.get_setting("url-shortener", "bitly")) if shortener_name == None: return url - return self._call_shortener(shortener_name, url) or url + return self._call_shortener( + server, context, shortener_name, url) or url @utils.export("shorturl-s-bitly") def _bitly(self, url): |
