change Event

This commit is contained in:
yanyongyu
2020-08-10 14:50:12 +08:00
parent 9e33a605a6
commit 2d90c35df6
3 changed files with 81 additions and 52 deletions

View File

@ -5,12 +5,12 @@ import re
import httpx
from nonebot.event import Event
# from nonebot.event import Event
from nonebot.config import Config
from nonebot.message import handle_event
from nonebot.exception import ApiNotAvailable
from nonebot.adapters import BaseBot, BaseMessage, BaseMessageSegment
from nonebot.typing import Tuple, Iterable, Optional, overrides, WebSocket
from nonebot.adapters import BaseBot, BaseEvent, BaseMessage, BaseMessageSegment
def escape(s: str, *, escape_comma: bool = True) -> str:
@ -60,13 +60,13 @@ class Bot(BaseBot):
@overrides(BaseBot)
async def handle_message(self, message: dict):
# TODO: convert message into event
event = Event.from_payload(message)
event = Event(message)
if not event:
return
if "message" in event.keys():
event["message"] = Message(event["message"])
# if "message" in event.keys():
# event["message"] = Message(event["message"])
await handle_event(self, event)
@ -96,6 +96,39 @@ class Bot(BaseBot):
"<HttpFailed {0.status_code} for url: {0.url}>", response)
class Event(BaseEvent):
@property
@overrides(BaseEvent)
def type(self):
return self._raw_event["post_type"]
@type.setter
@overrides(BaseEvent)
def type(self, value):
self._raw_event["post_type"] = value
@property
@overrides(BaseEvent)
def detail_type(self):
return self._raw_event[f"{self.type}_type"]
@detail_type.setter
@overrides(BaseEvent)
def detail_type(self, value):
self._raw_event[f"{self.type}_type"] = value
@property
@overrides(BaseEvent)
def sub_type(self):
return self._raw_event["sub_type"]
@type.setter
@overrides(BaseEvent)
def sub_type(self, value):
self._raw_event["sub_type"] = value
class MessageSegment(BaseMessageSegment):
@overrides(BaseMessageSegment)