리액션 하면 번역해 주는 Discord 의 bot 를 Python 으로 만들었다

이런 느낌의 bot


Discord에서 bot을 만드는 방법은 할애. 이 근처를 읽으십시오.
파이썬에서 실용 Discord Bot (discordpy 해설)

소스 코드


# インストールした discord.py を読み込む
import discord
from googletrans import Translator

# 自分のBotのアクセストークンに置き換えてください
TOKEN = '[bot-token]'

# 接続に必要なオブジェクトを生成
client = discord.Client()

# 起動時に動作する処理
@client.event
async def on_ready():
    # 起動したらターミナルにログイン通知が表示される
    print('ログインしました')

@client.event
async def on_reaction_add(reaction, user):
    print("emoji-id")
    print(reaction.emoji.id)
    if reaction.count == 1:
        # 日本語訳
        if reaction.emoji.id == 687336060556017758:
            translator = Translator()
            trans_en = translator.translate(reaction.message.content, src='en', dest='ja')
            await reaction.message.channel.send(trans_en.text)


        # 英語訳
        if reaction.emoji.id == 687336087408214062:
            translator = Translator()
            trans_en = translator.translate(reaction.message.content, src='ja', dest='en')
            await reaction.message.channel.send(trans_en.text)



# Botの起動とDiscordサーバーへの接続
client.run(TOKEN)

[bot-token]은 각각의 bot의 토큰을.
[emoji-id]는 반응시키고 싶은 이모티콘의 ID를 설정해주세요 (Integer입니다)

Google 번역 "googletrans"



번역은 Google 번역에 던지고 그 결과를 메시지로 반환합니다.
emoji.id에 대해서는 등록된 이모티콘이라면, 이모티콘의 ID가 흔들리고 있으므로, 서버에 이모티콘을 세트 하면, 리액션을 해, print에 토출된 이모티콘 ID를 베타타로 써 봅시다.
제 경우에는 일본 국기를 일본어로 번역하고 미국 국기를 영어로 번역했습니다.

src가 번역전의 문장, dest가 번역후의 문장이므로, 영역, 일본어역 이외로 할 수도 있습니다.

완성되면 heroku 근처에 배포하고 움직이면 24 시간 체제로 번역 해줍니다 편리!
덧붙여서, 반응의 횟수를 얻는 방법을 모르기 때문에, 2 개의 반응으로 두 번 번역합니다.

방법 누군가를 말해주십시오.

덧붙여 : 리액션 1회로 하는 방법 가르쳐 받았습니다


if reaction.count == 1:이쪽이 됩니다, @ @ 씨 감사합니다!

참고



파이썬에서 실용 Discord Bot (discordpy 해설)
Discord.py에서 반응을 감지하는 방법 및 변동기 목록
【Python】 googletrans을 사용하여 일본어 데이터를 영어로 변환 (번역) 해보십시오

좋은 웹페이지 즐겨찾기