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/core/bots/graia/bot.py

52 lines
1.9 KiB
Python
Raw Normal View History

2021-07-21 17:58:33 +00:00
import asyncio
from graia.application.event.mirai import NewFriendRequestEvent, BotInvitedJoinGroupRequestEvent
from graia.application.friend import Friend
from graia.application.group import Group, Member
from graia.application.message.chain import MessageChain
2021-07-24 08:59:15 +00:00
from graia.application import GraiaMiraiApplication
2021-07-21 17:58:33 +00:00
from config import Config
from core.bots.graia.template import Template as BotTemplate
from core.bots.graia.broadcast import bcc, app
2021-08-01 14:54:25 +00:00
from core.elements import MsgInfo, Session, Module
2021-07-21 17:58:33 +00:00
from core.loader import Modules
from core.parser.message import parser
@bcc.receiver('GroupMessage')
async def group_message_handler(message: MessageChain, group: Group, member: Member):
2021-08-01 14:54:25 +00:00
msg = BotTemplate(target=MsgInfo(targetId=f"QQ|Group|{group.id}", senderId=f'QQ|{member.id}', senderName=member.name,
2021-07-26 12:43:51 +00:00
targetFrom='QQ|Group', senderFrom="QQ"), session=Session(message=message, target=group, sender=member))
2021-07-24 08:59:15 +00:00
await parser(msg)
2021-07-21 17:58:33 +00:00
@bcc.receiver('FriendMessage')
async def group_message_handler(message: MessageChain, friend: Friend):
2021-08-01 14:54:25 +00:00
msg = BotTemplate(target=MsgInfo(targetId=f"QQ|{friend.id}", senderId=f'QQ|{friend.id}', senderName=friend.nickname,
2021-07-26 12:43:51 +00:00
targetFrom='QQ', senderFrom='QQ'), session=Session(message=message, target=friend, sender=friend))
2021-07-24 08:59:15 +00:00
await parser(msg)
2021-07-21 17:58:33 +00:00
@bcc.receiver("NewFriendRequestEvent")
async def NFriend(event: NewFriendRequestEvent):
await event.accept()
@bcc.receiver("BotInvitedJoinGroupRequestEvent")
async def NGroup(event: BotInvitedJoinGroupRequestEvent):
await event.accept()
@bcc.receiver('ApplicationLaunched')
async def autorun_handler(app: GraiaMiraiApplication):
gather_list = []
for x in Modules:
2021-07-28 18:51:24 +00:00
if isinstance(x, Module) and Modules[x].autorun:
2021-07-21 17:58:33 +00:00
gather_list.append(asyncio.ensure_future(Modules[x].function(app)))
await asyncio.gather(*gather_list)
2021-07-26 12:43:51 +00:00
if Config('qq_host') and Config('qq_account'):
app.launch_blocking()