Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/bots/aiogram/bot.py
2023-09-03 19:49:14 +08:00

45 lines
1.7 KiB
Python

import os
import sys
from aiogram import types, executor
from aiogram.types import ContentType
from bots.aiogram.client import dp
from bots.aiogram.info import client_name
from bots.aiogram.message import MessageSession, FetchTarget
from core.builtins import PrivateAssets, Url
from core.parser.message import parser
from core.types import MsgInfo, Session
from core.utils.bot import load_prompt, init_async
from core.utils.info import Info
PrivateAssets.set(os.path.abspath(os.path.dirname(__file__) + '/assets'))
Url.disable_mm = True
@dp.message_handler(content_types=[ContentType.TEXT, ContentType.PHOTO, ContentType.AUDIO])
async def msg_handler(message: types.Message):
target_id = f'Telegram|{message.chat.type}|{message.chat.id}'
reply_id = None
if message.reply_to_message is not None:
reply_id = message.reply_to_message.message_id
msg = MessageSession(MsgInfo(target_id=target_id,
sender_id=f'Telegram|User|{message.from_user.id}',
target_from=f'Telegram|{message.chat.type}',
sender_from='Telegram|User', sender_name=message.from_user.username,
client_name=client_name,
message_id=message.message_id,
reply_id=reply_id),
Session(message=message, target=message.chat.id, sender=message.from_user.id))
await parser(msg)
async def on_startup(dispatcher):
await init_async()
await load_prompt(FetchTarget)
if 'subprocess' in sys.argv:
Info.subprocess = True
executor.start_polling(dp, skip_updates=True, on_startup=on_startup)