diff --git a/plugins/Google/plugin.py b/plugins/Google/plugin.py index fb020039e..1bdb68536 100644 --- a/plugins/Google/plugin.py +++ b/plugins/Google/plugin.py @@ -240,6 +240,44 @@ class Google(callbacks.PluginRegexp): s = ', '.join([format('%s: %i', bold(s), i) for (i, s) in results]) irc.reply(s) + @internationalizeDocstring + def translate(self, irc, msg, args, sourceLang, targetLang, text): + """ [to] + + Returns translated from into . + """ + + channel = msg.args[0] + + headers = dict(utils.web.defaultHeaders) + headers['User-Agent'] = ('Mozilla/5.0 (X11; U; Linux i686) ' + 'Gecko/20071127 Firefox/2.0.0.11') + + sourceLang = urllib.quote(sourceLang) + targetLang = urllib.quote(targetLang) + + text = urllib.quote(text) + + result = utils.web.getUrlFd('http://translate.googleapis.com/translate_a/single' + '?client=gtx&dt=t&sl=%s&tl=%s&q=' + '%s' % (sourceLang, targetLang, text), + headers).read().decode('utf8') + + while ',,' in result: + result = result.replace(',,', ',null,') + while '[,' in result: + result = result.replace('[,', '[') + data = json.loads(result) + + try: + language = data[2] + except: + language = 'unknown' + + irc.reply(''.join(x[0] for x in data[0]), language) + translate = wrap(translate, ['something', 'to', 'something', 'text']) + def googleSnarfer(self, irc, msg, match): r"^google\s+(.*)$" if not self.registryValue('searchSnarfer', msg.args[0]):