Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment