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
Comments
0 B
|👍
/👎