Archived
1
0
Fork 0
This commit is contained in:
yzhh 2023-05-30 21:14:00 +08:00
parent a5ed805081
commit 7b384f806d
2 changed files with 53 additions and 3 deletions

View file

@ -1,3 +1,52 @@
from aiocqhttp import CQHttp
import traceback
from typing import Dict, Any, Optional
bot = CQHttp()
from aiocqhttp import CQHttp, Error
from aiocqhttp.event import Event
class EventModded(Event):
@staticmethod
def from_payload(payload: Dict[str, Any]) -> 'Optional[Event]':
"""
OneBot 事件数据构造 `Event` 对象
"""
try:
e = EventModded(payload)
_ = e.type, e.detail_type
return e
except KeyError:
traceback.print_exc()
return None
@property
def detail_type(self) -> str:
"""
事件具体类型 `type` 的不同而不同 ``message`` 类型为例
``private````group````discuss``
"""
if self.type == 'message_sent':
return self['message_type']
return self[f'{self.type}_type']
class CQHttpModded(CQHttp):
async def _handle_event(self, payload: Dict[str, Any]) -> Any:
ev = EventModded.from_payload(payload)
if not ev:
return
event_name = ev.name
self.logger.info(f'received event: {event_name}')
if self._message_class and 'message' in ev:
ev['message'] = self._message_class(ev['message'])
results = list(
filter(lambda r: r is not None, await
self._bus.emit(event_name, ev)))
# return the first non-none result
return results[0] if results else None
bot = CQHttpModded()

View file

@ -39,3 +39,4 @@ enable_eval = True
coin_limit = 10000
coin_faceup_rate = 4994
coin_facedown_rate = 4994
qq_enable_listen_self_message = False