mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-23 11:09:23 +01:00
ShrinkUrl: Implement @expand. Closes GH-392.
This commit is contained in:
parent
de61bb6b93
commit
e5e2db15b2
@ -46,9 +46,12 @@ class CdbShrunkenUrlDB(object):
|
||||
def __init__(self, filename):
|
||||
self.dbs = {}
|
||||
cdb = conf.supybot.databases.types.cdb
|
||||
for service in conf.supybot.plugins.ShrinkUrl.default.validStrings:
|
||||
def register_service(service):
|
||||
dbname = filename.replace('.db', service.capitalize() + '.db')
|
||||
self.dbs[service] = cdb.connect(dbname)
|
||||
for service in conf.supybot.plugins.ShrinkUrl.default.validStrings:
|
||||
register_service(service)
|
||||
register_service('Expand')
|
||||
|
||||
def get(self, service, url):
|
||||
return self.dbs[service][url]
|
||||
@ -320,6 +323,32 @@ class ShrinkUrl(callbacks.PluginRegexp):
|
||||
irc.error(str(e))
|
||||
x0 = thread(wrap(x0, ['url']))
|
||||
|
||||
def _getExpandUrl(self, url):
|
||||
url = utils.web.urlquote(url)
|
||||
try:
|
||||
return self.db.get('Expand', url)
|
||||
except KeyError:
|
||||
text = utils.web.getUrl('http://api.longurl.org/v2/expand?url=' + url)
|
||||
text = text.decode()
|
||||
text = text.split('<![CDATA[', 1)[1].split(']]>', 1)[0]
|
||||
self.db.set('Expand', url, text)
|
||||
return text
|
||||
|
||||
@internationalizeDocstring
|
||||
def expand(self, irc, msg, args, url):
|
||||
"""<url>
|
||||
|
||||
Returns an expanded version of <url>.
|
||||
"""
|
||||
try:
|
||||
expandurl = self._getExpandUrl(url)
|
||||
m = irc.reply(expandurl)
|
||||
if m is not None:
|
||||
m.tag('shrunken')
|
||||
except ShrinkError, e:
|
||||
irc.error(str(e))
|
||||
expand = thread(wrap(expand, ['url']))
|
||||
|
||||
Class = ShrinkUrl
|
||||
|
||||
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
|
||||
|
@ -130,4 +130,11 @@ class ShrinkUrlTestCase(ChannelPluginTestCase):
|
||||
shrink.minimumLength.setValue(origLen)
|
||||
shrink.nonSnarfingRegexp.setValue(origRegexp)
|
||||
|
||||
def testExpand(self):
|
||||
self.assertResponse('expand http://x0.no/0l2k', self.udUrl)
|
||||
self.assertResponse('expand http://x0.no/0l2k', self.udUrl)
|
||||
self.assertResponse('expand http://x0.no/0l2j', self.sfUrl)
|
||||
self.assertResponse('expand http://x0.no/0l2j', self.sfUrl)
|
||||
self.assertResponse('expand http://x0.no/0l2k', self.udUrl)
|
||||
|
||||
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
|
||||
|
Loading…
Reference in New Issue
Block a user