Am Nachmittag habe ich verschiedene Dinge mit einer bestimmten Discord.py ausprobiert. Auf Discords Server sagte dies eine Person. ** "Ich will reden !!" ** Talking-Kun ist ein TalkBot auf Discord, der nett zu mir ist und für eine Weile keine andere Person zum Reden hat ... Übrigens gab es eine kostenlose API namens A3RT. Okay, lass es uns schaffen.
Die Person, die dies schreibt, ist ein Anfänger in Python, daher kann es einige Punkte geben, die nicht erreicht werden können. Zu diesem Zeitpunkt bitte freundlich sein .... Dies ist auch Qiitas erster Beitrag. Ich freue mich darauf, mit Dir zu arbeiten. ~~ Das ist eine Katze. ~~
In Bezug auf die Umgebung ist es wie der Artikel in Qiita erheblich vom Bot entfernt. Wenn Sie sich also darauf beziehen, passen Sie es bitte an Ihre eigene Umgebung an.
Wenn Sie auf einem bestimmten Kanal sprechen, reagiert dieser bedingungslos → Senden Sie es mit Talk API von A3RT zurück.
Sie können einen API-SCHLÜSSEL einfach ausgeben, indem Sie eine E-Mail von der Seite TalkAPI senden. Ich werde es später verwenden.
run.py so.
run.py
import discord
from discord.ext import commands
import asyncio
import os
import sys
import traceback
loop = asyncio.get_event_loop()
airlinia_token = os.environ['AIRLINIA_DISCORD_TOKEN'] #Umgebungsvariablen ~~.
technetium_token = os.environ['TECHNETIUM_DISCORD_TOKEN']
class DISCORDBOT(commands.Bot):
#Konstrukteur.
def __init__(self, command_prefix, cogs, **options):
#Führen Sie dies aus, indem Sie einen Wert an den Konstruktor der Superklasse übergeben.
super().__init__(command_prefix, **options)
#Im Zahnradordner.Lesen Sie die py-Datei.
for cog in os.listdir(f'./{cogs}'):
if cog.endswith('.py'):
try:
self.load_extension(f'{cogs}.{cog[:-3]}')
except Exception:
traceback.print_exc()
async def on_ready(self): #Rufen Sie an, wenn Sie bereit sind.
print(f"""Sie sind jetzt angemeldet.
------\nBot-Kontoübersicht\n Benutzername:{self.user.name}\n Benutzer-ID:{self.user.id}
------\nDiscord.Version von py\n{discord.__version__}
------\Python-Version\n{sys.version}
――――――――――――――――――――――――――――――""")
await self.change_presence(activity=discord.Game(name=f'{self.command_prefix}¦{self.user.name} - by.amazakura0804'))
if __name__ == '__main__':
airlinia = DISCORDBOT(command_prefix='al!', cogs='airlinia_cogs', loop=loop)
airlinia_task = loop.create_task(airlinia.start(airlinia_token))
technetium = DISCORDBOT(command_prefix='te!', cogs='technetium_cogs', loop=loop)
technetium_task = loop.create_task(technetium.start(technetium_token))
loop.run_until_complete(technetium_task)
loop.run_until_complete(airlinia_task)
loop.close()
Unter Bezugnahme auf Bot-Entwicklung mit dem Bot Commands Framework von discord.py. TOKEN ist eine Umgebungsvariable. Bitte ändern Sie hier je nach Umgebung. Ich werde nicht mehr als einen bewegen. Ich denke, dass diese Art von Gefühl genug ist.
run.py
import discord
from discord.ext import commands
import asyncio
import os
import sys
import traceback
token = os.environ['DISCORD_TOKEN']
class HogeBot(commands.Bot):
#Konstrukteur.
def __init__(self, command_prefix, cogs, **options):
#Führen Sie dies aus, indem Sie einen Wert an den Konstruktor der Superklasse übergeben.
super().__init__(command_prefix, **options)
#Im Zahnradordner.Lesen Sie die py-Datei.
for cog in os.listdir(f'./{cogs}'):
if cog.endswith('.py'):
try:
self.load_extension(f'{cogs}.{cog[:-3]}')
except Exception:
traceback.print_exc()
async def on_ready(self): #Rufen Sie an, wenn Sie bereit sind.
print(f"""Sie sind jetzt angemeldet.
------\nBot-Kontoübersicht\n Benutzername:{self.user.name}\n Benutzer-ID:{self.user.id}
------\nDiscord.Version von py\n{discord.__version__}
------\Python-Version\n{sys.version}
――――――――――――――――――――――――――――――""")
await self.change_presence(activity=discord.Game(name=f'{self.command_prefix}¦{self.user.name} - by.amazakura0804'))
if __name__ == '__main__':
hogebot = HogeBot(command_prefix='!', cogs='hogebot_cogs')
hogebot.run(token) #Bot-Token
Talk.py
Talk.py
import discord
from discord.ext import commands
import asyncio
import os
import pya3rt
class Talk_Bot(commands.Cog):
def __init__(self, airlinia):
self.bot = airlinia #Erhalte den Bot.
@commands.Cog.listener()
async def on_message(self, message):
if message.author.bot: #Hängen Sie die Nachricht des Bots auf
return
if message.channel.id == TALK_CHANNEL_ID: #Ersetzen Sie durch die KANAL-ID, die Sie entsprechend sprechen möchten.
client = pya3rt.TalkClient(os.environ['TALK_API_KEY']) #Da dies auch eine Umgebungsvariable ist, wird sie unten weggelassen.
content = client.talk(message.content)['results'][0]['reply']
await message.channel.send(content) #Senden Sie eine Antwortnachricht
def setup(airlinia):
airlinia.add_cog(Talk_Bot(airlinia))
Ja. A3RT ist ungerade. Versuchen Sie, den A3RT-API-SCHLÜSSEL auf eine Umgebungsvariable anzuwenden oder direkt einzufügen. Mit nur diesem Code ...
Yay. Gott. Vielen Dank für die Rekrutierung.
Durch die Verwendung verschiedener APIs, einschließlich A3RT, wird das Spektrum der möglichen Aktionen erheblich erweitert. Es gibt viele andere Dinge, die interessant erscheinen, deshalb möchte ich sie nutzen.
Recommended Posts