mirror of
				https://github.com/Mikaela/Limnoria.git
				synced 2025-10-31 15:47:25 +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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Valentin Lorentz
						Valentin Lorentz