maple/main.py

48 lines
1.5 KiB
Python
Raw Normal View History

2024-04-06 18:32:49 +02:00
from interactions import Client, Intents, listen
from interactions.api.events import MessageCreate, ThreadCreate
from interactions.client.utils import get
from interactions.models.discord.channel import GuildForumPost
import re
from os.path import exists
from messageresponder.mangadex import send_manga_response
from messageresponder.thread_renamer import update_manga_thread
from util.config import DB_PATH, DISCORD_TOKEN
from util.db import setup_database
import locale
locale.setlocale(locale.LC_TIME, "")
if not exists(DB_PATH):
# Set up database
r = setup_database()
if not r:
raise "Could not create database, check above for any errors!"
bot = Client(intents=Intents.new(default=True, guilds=True, guild_messages=True, messages=True, message_content=True))
@listen()
async def on_ready():
print("Ready")
print(f"This bot is owned by {bot.owner}")
@listen()
async def on_message_create(event: MessageCreate):
if event.message.author.bot:
return # No bots
if isinstance(event.message.channel, GuildForumPost) and event.message.channel.initial_post.id == event.message.id\
and event.message.channel.parent_channel.id == 1076231074927091784:
# Manga Thread
await update_manga_thread(event)
return
manga_matches = re.findall(r"<([^@]+?)>", event.message.content, re.MULTILINE)
if len(manga_matches) > 0:
await send_manga_response(event, manga_matches[0])
return
bot.load_extension("commands.yuri")
bot.start(DISCORD_TOKEN)