runabot/Christmas/Cogs/Event.py

54 lines
2.0 KiB
Python
Raw Normal View History

2023-11-26 04:27:34 +00:00
import random
2023-12-02 06:03:50 +00:00
import wavelink
import onnxruntime as rt
2023-11-26 04:27:34 +00:00
from discord import ApplicationContext, DiscordException, Game, Guild
2023-11-25 17:28:48 +00:00
from discord.ext.commands import Cog
2023-12-02 06:03:50 +00:00
from discord.ext.commands import CommandOnCooldown
2023-11-26 04:27:34 +00:00
from Christmas.UI.Embed import Default_Embed
2023-12-02 06:03:50 +00:00
from Christmas.config import ChristmasConfig
2023-11-26 04:27:34 +00:00
2023-12-02 06:03:50 +00:00
model = rt.InferenceSession("Christmas/Tagging/model.onnx", provider_options="CPUExecutionProvider")
2023-11-25 17:28:48 +00:00
class Event(Cog):
def __init__(self, bot):
self.bot = bot
2023-12-02 06:03:50 +00:00
self.config = ChristmasConfig()
2023-11-25 17:28:48 +00:00
@Cog.listener()
2023-11-26 04:27:34 +00:00
async def on_application_command_error(self, ctx: ApplicationContext, exception: DiscordException) -> None:
2023-12-02 06:03:50 +00:00
if isinstance(exception, CommandOnCooldown):
await ctx.respond(embed=Default_Embed.cooldown(exception.retry_after), ephemeral=True)
2023-11-25 17:28:48 +00:00
@Cog.listener()
2023-11-26 04:27:34 +00:00
async def on_ready(self) -> None:
2023-11-25 17:28:48 +00:00
print("Ready!")
await self.bot.change_presence(activity=Game(name="크리스마스에 함께!"))
2023-12-02 06:03:50 +00:00
global model
model = rt.InferenceSession("Christmas/Tagging/model.onnx", provider_options="CPUExecutionProvider")
print("Model Loaded!")
# connect wavelink
@Cog.listener()
async def on_connect(self) -> None:
await self.bot.wait_until_ready()
nodes = []
for node in self.config.LAVALINK:
nodes.append(wavelink.Node(uri=node["HOST"], password=node["PASSWORD"], identifier=node["IDENTIFIER"]))
await wavelink.Pool.connect(nodes=nodes, client=self.bot)
2023-11-25 17:28:48 +00:00
2023-11-26 04:27:34 +00:00
@Cog.listener()
async def on_guild_join(self, guild: Guild) -> None:
if guild.system_channel is not None:
await guild.system_channel.send(embed=Default_Embed.guild_join())
else:
await random.choice(guild.text_channels).send(embed=Default_Embed.guild_join())
2023-12-02 06:03:50 +00:00
#@Cog.listener()
#async def on_wavelink_node_ready(self, node: wavelink.Node):
# print(f"Node {node.id} is ready!")
2023-11-25 17:28:48 +00:00
def setup(bot):
bot.add_cog(Event(bot))