This commit is contained in:
2024-03-24 04:05:54 +03:00
parent 26f511535a
commit c5e0c91828
24 changed files with 132 additions and 322 deletions
+15 -13
View File
@@ -4,11 +4,11 @@ import traceback
from aiohttp.web import run_app
from sentry_sdk import init as sentry_init, capture_exception, set_user
from kurocore.logger import BotLogger
from kurocore.vk import VK, VKLongPoll, VkBotEventType
from .event import ChatEvent, Event
from kurocore.utils.database.database import Database
from kurocore.utils.vk.longpoll import VKLongPoll, VkBotEventType
from kurocore.utils.vk.vk import VK
from ..logger import BotLogger
from .message import MessageContext, Message
from kurocore.database import Database
class Handler:
@@ -145,7 +145,10 @@ class Handler:
for before_process in p.before_process_methods:
before_process.call()
await p._process_command(command, msg, args)
ctx = MessageContext(self.api, msg, None)
if Database.db:
ctx.db = Database
await p._process_command(command, ctx, args)
return
except Exception as e:
if self.config.debug:
@@ -175,9 +178,9 @@ class Handler:
if not await self.check_payload(msg):
await self.check_command(msg)
# if db:
# db.close()
# BotLogger.log.debug('Connection closed!')
if db:
db.close()
BotLogger.log.debug('Connection closed!')
async def check_event(self, event: (ChatEvent, Event), msg):
event_type = event.type
@@ -220,23 +223,22 @@ class Handler:
# self.shutdown()
async def handle_event(self, event):
from kurocore import Message
if ((event.type == VkBotEventType.MESSAGE_NEW and 'action' not in event.obj)
or event.type == VkBotEventType.MESSAGE_EVENT):
msg = Message(self.session, self.api, event.obj)
msg = Message(self.api, event.obj)
if msg.user_id > 0:
set_user({'id': msg.user_id})
await self.check(msg)
elif event.type == VkBotEventType.MESSAGE_NEW and 'action' in event.obj:
e = ChatEvent(self.session, self.api, event.obj['action'])
msg = Message(self.session, self.api, event.obj)
e = ChatEvent(self.api, event.obj['action'])
msg = Message(self.api, event.obj)
if msg.user_id > 0:
set_user({'id': msg.user_id})
await self.check_event(e, msg)
else:
e = Event(self.session, self.api, event.raw)
e = Event(self.api, event.raw)
await self.check_event(e, None)
async def _run(self):