diff options
author | ziro <palembani@gmail.com> | 2020-08-06 07:37:19 +0000 |
---|---|---|
committer | ziro <palembani@gmail.com> | 2020-08-06 07:37:19 +0000 |
commit | 13447ea06137e9a2d856283037692837836e9b42 (patch) | |
tree | eab42aa5e4e3615162a7581c8b44f4c962654ea3 /cogs/trans.py | |
parent | f797397950a1757a978962e912edae1a7263d3cb (diff) | |
download | steve-bot-13447ea06137e9a2d856283037692837836e9b42.tar steve-bot-13447ea06137e9a2d856283037692837836e9b42.tar.gz steve-bot-13447ea06137e9a2d856283037692837836e9b42.tar.bz2 steve-bot-13447ea06137e9a2d856283037692837836e9b42.tar.lz steve-bot-13447ea06137e9a2d856283037692837836e9b42.tar.xz steve-bot-13447ea06137e9a2d856283037692837836e9b42.tar.zst steve-bot-13447ea06137e9a2d856283037692837836e9b42.zip |
+ Steve Branch
Diffstat (limited to '')
-rwxr-xr-x | cogs/trans.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/cogs/trans.py b/cogs/trans.py new file mode 100755 index 0000000..9ca1004 --- /dev/null +++ b/cogs/trans.py @@ -0,0 +1,51 @@ +from discord.ext import commands +import discord +from google.cloud import translate_v2 as translate +import six +translate_client = translate.Client() + +async def translateMsg(text, target="en"): + # Text can also be a sequence of strings, in which case this method + # will return a sequence of results for each text. + if isinstance(text, six.binary_type): + text = text.decode('utf-8') + result = translate_client.translate( + text, target_language=target) + print(u'Text: {}'.format(result['input'])) + print(u'Translation: {}'.format(result['translatedText'])) + print(u'Detected source language: {}'.format( + result['detectedSourceLanguage'])) + result['translatedText'] = result['translatedText'].replace("<", "<") + result['translatedText'] = result['translatedText'].replace(">", ">") + result['translatedText'] = result['translatedText'].replace("'", "'") + result['translatedText'] = result['translatedText'].replace(""", '"') + result['translatedText'] = result['translatedText'].replace("<@! ", "<@!") + result['translatedText'] = result['translatedText'].replace("<@ ", "<@") + result['translatedText'] = result['translatedText'].replace("<# ", "<#") + return result; + +class Trans(commands.Cog): + + def __init__(self, bot): + self.bot = bot + + @commands.command(help="Translate text in english (using google translate)", brief="Translate to english", aliases=["翻译", "脑热", "动漫"]) + async def translate(self, ctx, *, message): + """Translate to english""" + response = await translateMsg(message) + embed=discord.Embed(title="Translation",description=f"{ctx.message.author.mention} says:", timestamp=ctx.message.created_at, color=0x4d9aff) + embed.add_field(name=f"[{response['detectedSourceLanguage']}] Source:" , value=response['input'], inline=False) + embed.add_field(name="Translation", value=response['translatedText'], inline=True) + await ctx.send(embed=embed) + + @commands.command() + async def trans(self, ctx, lan, *, message): + """Translate to a specific language""" + response = await translateMsg(message, lan) + embed=discord.Embed(title="Translation",description=f"{ctx.message.author.mention} says:", timestamp=ctx.message.created_at, color=0x4d9aff) + embed.add_field(name=f"[{response['detectedSourceLanguage']}] Source:" , value=response['input'], inline=False) + embed.add_field(name="Translation", value=response['translatedText'], inline=True) + await ctx.send(embed=embed) + +def setup(bot): + bot.add_cog(Trans(bot)) |