This repository has been archived on 2023-04-13. You can view files and clone it, but cannot push or open issues or pull requests.
CloudBot/plugins/shorten.py

30 lines
935 B
Python
Raw Normal View History

2011-11-20 10:23:31 +01:00
# # Lukeroge
2011-11-21 09:41:53 +01:00
from util import hook, http
2011-11-20 10:23:31 +01:00
try:
from re import match
from urllib2 import urlopen, Request, HTTPError
from urllib import urlencode
2011-11-21 09:41:53 +01:00
2011-11-20 10:23:31 +01:00
except ImportError, e:
raise Exception('Required module missing: %s' % e.args[0])
def tiny(url, user, apikey):
2011-11-20 10:23:31 +01:00
try:
params = urlencode({'longUrl': url, 'login': user, 'apiKey': apikey, 'format': 'json'})
2011-11-21 09:44:40 +01:00
j = http.get_json("http://api.bit.ly/v3/shorten?%s" % params)
2011-11-20 10:23:31 +01:00
if j['status_code'] == 200:
return j['data']['url']
raise Exception('%s'%j['status_txt'])
except HTTPError, e:
2011-11-21 09:41:53 +01:00
return "Invalid URL!"
2011-11-20 10:23:31 +01:00
@hook.command
def shorten(inp, bot = None):
".shorten <url> - Makes an j.mp/bit.ly shortlink to the url provided"
2012-02-15 19:18:56 +01:00
api_user = bot.config.get("api_keys", {}).get("bitly_user", None)
api_key = bot.config.get("api_keys", {}).get("bitly_api", None)
if api_key is None:
return "error: no api key set"
return tiny(inp, api_user, api_key)