import re import signal from json import JSONDecodeError import discord import langdetect from googletrans import Translator from langdetect.lang_detect_exception import LangDetectException translator = Translator() client = discord.Client() emoji_pattern = re.compile("[" u"\U0001F600-\U0001F64F" # emoticons u"\U0001F300-\U0001F5FF" # symbols & pictographs u"\U0001F680-\U0001F6FF" # transport & map symbols u"\U0001F1E0-\U0001F1FF" # flags (iOS) u"\U00002702-\U000027B0" u"\U000024C2-\U0001F251" "]+", flags=re.UNICODE) def delete_emoji(s): return emoji_pattern.sub(r'', s) exited = False def on_sigkill(signum, frame): exited = True client.logout() @client.event async def on_ready(): print('Logged in as') print(client.user.name) print(client.user.id) print('------') class LDO: def __init__(self, msg): self.lang = langdetect.detect(msg) self.confidence = .9 def detect_lang(msg): try: d = translator.detect(msg) except JSONDecodeError: try: msg = delete_emoji(msg) if not msg: return None, None d = translator.detect(msg) except JSONDecodeError: try: msg = delete_emoji(msg) if not msg: return None, None d = LDO(msg) except LangDetectException: return None, None return d, msg @client.event async def on_message(message): if (exited): return if (message.author == client.user): return msg = message.clean_content if not msg: return d, msg = detect_lang(msg) if d is None or msg is None: return print(d) if d.lang != "en" and d.confidence > .8: try: translation = translator.translate(msg, dest="en") except JSONDecodeError: await client.send_message(message.channel, "I did an oopsie :frowning:") return trans_text = translation.text if trans_text.lower() != msg.lower(): new_message = "Translated from " + d.lang + ":\n" + trans_text await client.send_message(message.channel, new_message) signal.signal(signal.SIGINT, on_sigkill) signal.signal(signal.SIGTERM, on_sigkill) client.run('YOUR_DISCORD_TOKEN') # Dependencies: # python3 -m pip install -U https://github.com/Rapptz/discord.py/archive/master.zip#egg=discord.py[voice] # python3 -m pip install -U https://github.com/ssut/py-googletrans/archive/master.zip#egg=googletrans # pip install langdetect