mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-07-29 09:10:22 +00:00
rename session.ctx to session.event for consistency
This commit is contained in:
@ -1,12 +1,12 @@
|
||||
from typing import Optional, Callable, Union
|
||||
|
||||
from aiocqhttp import Event as CQEvent
|
||||
from aiocqhttp.bus import EventBus
|
||||
|
||||
from . import NoneBot
|
||||
from .exceptions import CQHttpError
|
||||
from .log import logger
|
||||
from .session import BaseSession
|
||||
from .typing import Context_T
|
||||
|
||||
_bus = EventBus()
|
||||
|
||||
@ -36,15 +36,15 @@ on_request = _make_event_deco('request')
|
||||
class NoticeSession(BaseSession):
|
||||
__slots__ = ()
|
||||
|
||||
def __init__(self, bot: NoneBot, ctx: Context_T):
|
||||
super().__init__(bot, ctx)
|
||||
def __init__(self, bot: NoneBot, event: CQEvent):
|
||||
super().__init__(bot, event)
|
||||
|
||||
|
||||
class RequestSession(BaseSession):
|
||||
__slots__ = ()
|
||||
|
||||
def __init__(self, bot: NoneBot, ctx: Context_T):
|
||||
super().__init__(bot, ctx)
|
||||
def __init__(self, bot: NoneBot, event: CQEvent):
|
||||
super().__init__(bot, event)
|
||||
|
||||
async def approve(self, remark: str = '') -> None:
|
||||
"""
|
||||
@ -55,8 +55,8 @@ class RequestSession(BaseSession):
|
||||
try:
|
||||
await self.bot.call_action(
|
||||
action='.handle_quick_operation_async',
|
||||
self_id=self.ctx.get('self_id'),
|
||||
context=self.ctx,
|
||||
self_id=self.event.self_id,
|
||||
context=self.event,
|
||||
operation={'approve': True, 'remark': remark}
|
||||
)
|
||||
except CQHttpError:
|
||||
@ -71,39 +71,34 @@ class RequestSession(BaseSession):
|
||||
try:
|
||||
await self.bot.call_action(
|
||||
action='.handle_quick_operation_async',
|
||||
self_id=self.ctx.get('self_id'),
|
||||
context=self.ctx,
|
||||
self_id=self.event.self_id,
|
||||
context=self.event,
|
||||
operation={'approve': False, 'reason': reason}
|
||||
)
|
||||
except CQHttpError:
|
||||
pass
|
||||
|
||||
|
||||
async def handle_notice_or_request(bot: NoneBot, ctx: Context_T) -> None:
|
||||
post_type = ctx['post_type'] # "notice" or "request"
|
||||
detail_type = ctx[f'{post_type}_type']
|
||||
event = f'{post_type}.{detail_type}'
|
||||
if ctx.get('sub_type'):
|
||||
event += f'.{ctx["sub_type"]}'
|
||||
|
||||
if post_type == 'notice':
|
||||
_log_notice(ctx)
|
||||
session = NoticeSession(bot, ctx)
|
||||
async def handle_notice_or_request(bot: NoneBot, event: CQEvent) -> None:
|
||||
if event.type == 'notice':
|
||||
_log_notice(event)
|
||||
session = NoticeSession(bot, event)
|
||||
else: # must be 'request'
|
||||
_log_request(ctx)
|
||||
session = RequestSession(bot, ctx)
|
||||
_log_request(event)
|
||||
session = RequestSession(bot, event)
|
||||
|
||||
logger.debug(f'Emitting event: {event}')
|
||||
ev_name = event.name
|
||||
logger.debug(f'Emitting event: {ev_name}')
|
||||
try:
|
||||
await _bus.emit(event, session)
|
||||
await _bus.emit(ev_name, session)
|
||||
except Exception as e:
|
||||
logger.error(f'An exception occurred while handling event {event}:')
|
||||
logger.error(f'An exception occurred while handling event {ev_name}:')
|
||||
logger.exception(e)
|
||||
|
||||
|
||||
def _log_notice(ctx: Context_T) -> None:
|
||||
logger.info(f'Notice: {ctx}')
|
||||
def _log_notice(event: CQEvent) -> None:
|
||||
logger.info(f'Notice: {event}')
|
||||
|
||||
|
||||
def _log_request(ctx: Context_T) -> None:
|
||||
logger.info(f'Request: {ctx}')
|
||||
def _log_request(event: CQEvent) -> None:
|
||||
logger.info(f'Request: {event}')
|
||||
|
Reference in New Issue
Block a user