From 5d8ad6a37a9b3845d772892e28809c0cab4f5c23 Mon Sep 17 00:00:00 2001 From: dngfx Date: Sun, 9 Sep 2018 21:47:28 +0100 Subject: Replace bit.ly with is.gd. No API key, no beeping Bit. It's a win win! --- modules/isgd.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 modules/isgd.py (limited to 'modules/isgd.py') diff --git a/modules/isgd.py b/modules/isgd.py new file mode 100644 index 00000000..86af7447 --- /dev/null +++ b/modules/isgd.py @@ -0,0 +1,33 @@ +import re +import Utils + +ISGD_API_URL = "https://is.gd/create.php" +REGEX_URL = re.compile("https?://", re.I) + +class Module(object): + def __init__(self, bot, events, exports): + self.bot = bot + self.events = events + events.on("get.shortlink").hook(self.shortlink) + events.on("received.command.shorten").hook(self.shorten, min_args=1, + help="Shorten a URL using the is.gd service.", usage="") + + def shortlink(self, event): + url = event["url"] + if not re.match(REGEX_URL, url): + url = "http://%s" % url + data = Utils.get_url(ISGD_API_URL, get_params={ + "format": "json", + "url": url + }, json=True) + + if data and data["shorturl"]: + return data["shorturl"] + + def shorten(self, event): + link = self.events.on("get.shortlink").call_for_result( + url=event["args"]) + if link: + event["stdout"].write("Shortened URL: %s" % link) + else: + event["stderr"].write("Unable to shorten that URL.") -- cgit v1.3.1-10-gc9f91