From 077f8461a882d69913598ba6ebe40c176c26fb9f Mon Sep 17 00:00:00 2001 From: GLGDLY Date: Sun, 3 Jul 2022 15:42:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E4=B8=8A?= =?UTF-8?q?=E6=AC=A1=E6=9B=B4=E6=96=B0=E4=B8=AD=EF=BC=8Chttp=E7=9A=84?= =?UTF-8?q?=E5=8F=8C=E9=87=8Dnot=E9=97=AE=E9=A2=98=20feat:=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=94=A8=E6=88=B7=E5=8F=AF=E7=9B=B4=E6=8E=A5=E9=80=9A?= =?UTF-8?q?=E8=BF=87print=E6=88=96log=E8=8E=B7=E5=8F=96dict=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=9A=84=E4=BA=8B=E4=BB=B6=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- botpy/audio.py | 3 +++ botpy/channel.py | 3 +++ botpy/forum.py | 46 +++++++++++++++++++++++++++++++++++++++++++- botpy/guild.py | 3 +++ botpy/http.py | 2 +- botpy/interaction.py | 3 +++ botpy/message.py | 30 +++++++++++++++++++++++++++++ botpy/reaction.py | 9 +++++++++ botpy/user.py | 6 ++++++ 9 files changed, 103 insertions(+), 2 deletions(-) diff --git a/botpy/audio.py b/botpy/audio.py index 7b682ae..6c7ce08 100644 --- a/botpy/audio.py +++ b/botpy/audio.py @@ -20,3 +20,6 @@ def __init__(self, api: BotAPI, event_id, data: audio.AudioAction): self.audio_url = data.get("audio_url", None) self.text = data.get("text", None) self.event_id = event_id + + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) diff --git a/botpy/channel.py b/botpy/channel.py index 38cb496..90aadba 100644 --- a/botpy/channel.py +++ b/botpy/channel.py @@ -33,3 +33,6 @@ def __init__(self, api: BotAPI, event_id, data: channel.ChannelPayload): self.application_id = data.get("application_id", None) self.permissions = data.get("permissions", None) self.event_id = event_id + + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) diff --git a/botpy/forum.py b/botpy/forum.py index 0e1ef66..c16f8b9 100644 --- a/botpy/forum.py +++ b/botpy/forum.py @@ -8,11 +8,17 @@ class _Text: def __init__(self, data): self.text = data.get("text", None) + def __repr__(self): + return str(self.__dict__) + class _Image: def __init__(self, data): self.plat_image = self._PlatImage(data.get("plat_image", {})) + def __repr__(self): + return str(self.__dict__) + class _PlatImage: def __init__(self, data): self.url = data.get("url", None) @@ -20,11 +26,17 @@ def __init__(self, data): self.height = data.get("height", None) self.image_id = data.get("image_id", None) + def __repr__(self): + return str(self.__dict__) + class _Video: def __init__(self, data): self.plat_video = self._PlatVideo(data.get("plat_video", {})) + def __repr__(self): + return str(self.__dict__) + class _PlatVideo: def __init__(self, data): self.url = data.get("url", None) @@ -33,23 +45,31 @@ def __init__(self, data): self.video_id = data.get("video_id", None) self.cover = data.get("cover", {}) + def __repr__(self): + return str(self.__dict__) + class _Cover: def __init__(self, data): self.url = data.get("url", None) self.width = data.get("width", None) self.height = data.get("height", None) + def __repr__(self): + return str(self.__dict__) + class _Url: def __init__(self, data): self.url = data.get("url", None) self.desc = data.get("desc", None) + def __repr__(self): + return str(self.__dict__) + class Thread: __slots__ = ( "_api", - "_ctx", "thread_info", "channel_id", "guild_id", @@ -65,6 +85,9 @@ def __init__(self, api: BotAPI, event_id, data: forum.Thread): self.thread_info = self._ThreadInfo(data.get("thread_info", {})) self.event_id = event_id + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) + class _ThreadInfo: def __init__(self, data): self.title = self._Title(loads(data.get("title", {}))) @@ -72,29 +95,47 @@ def __init__(self, data): self.thread_id = data.get("thread_id", None) self.date_time = data.get("date_time", None) + def __repr__(self): + return str(self.__dict__) + class _Title: def __init__(self, data): self.paragraphs = [self._Paragraphs(items) for items in data.get("paragraphs", {})] + def __repr__(self): + return str(self.__dict__) + class _Paragraphs: def __init__(self, data): self.elems = [self._Elems(items) for items in data.get("elems", {})] self.props = data.get("props", None) + def __repr__(self): + return str(self.__dict__) + class _Elems: def __init__(self, data): self.type = data.get("type", None) self.text = _Text(data.get("text", {})) + def __repr__(self): + return str(self.__dict__) + class _Content: def __init__(self, data): self.paragraphs = [self._Paragraphs(items) for items in data.get("paragraphs", {})] + def __repr__(self): + return str(self.__dict__) + class _Paragraphs: def __init__(self, data): self.elems = [self._Elems(items) for items in data.get("elems", {})] self.props = data.get("props", None) + def __repr__(self): + return str(self.__dict__) + class _Elems: def __init__(self, data): self.type = data.get("type", None) @@ -106,3 +147,6 @@ def __init__(self, data): self.video = _Video(data.get("video", {})) elif self.type == 4: self.url = _Url(data.get("url", {})) + + def __repr__(self): + return str(self.__dict__) diff --git a/botpy/guild.py b/botpy/guild.py index 1e7ed90..fa84f35 100644 --- a/botpy/guild.py +++ b/botpy/guild.py @@ -31,3 +31,6 @@ def __init__(self, api: BotAPI, event_id, data: guild.GuildPayload): self.description = data.get("description", None) self.joined_at = data.get("joined_at", None) self.event_id = event_id + + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) diff --git a/botpy/http.py b/botpy/http.py index cbec481..0071dad 100644 --- a/botpy/http.py +++ b/botpy/http.py @@ -112,7 +112,7 @@ async def request(self, route: Route, **kwargs: Any): kwargs["data"] = FormData() for k, v in kwargs.pop("json").items(): if v: - if not not isinstance(v, dict): + if isinstance(v, dict): if k == 'message_reference': _log.error( f"[botpy] 接口参数传入异常, 请求连接: {route.url}, " diff --git a/botpy/interaction.py b/botpy/interaction.py index 1202161..3cdb83f 100644 --- a/botpy/interaction.py +++ b/botpy/interaction.py @@ -12,3 +12,6 @@ def __init__(self, api: BotAPI, event_id, data: interaction.InteractionPayload): self.type = data.get("type", None) self.application_id = data.get("application_id", None) self.event_id = event_id + + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) diff --git a/botpy/message.py b/botpy/message.py index db75c20..0c51ccb 100644 --- a/botpy/message.py +++ b/botpy/message.py @@ -38,6 +38,9 @@ def __init__(self, api: BotAPI, event_id, data: gateway.MessagePayload): self.timestamp = data.get("timestamp", None) self.event_id = event_id + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) + class _User: def __init__(self, data): self.id = data.get("id", None) @@ -45,16 +48,25 @@ def __init__(self, data): self.bot = data.get("bot", None) self.avatar = data.get("avatar", None) + def __repr__(self): + return str(self.__dict__) + class _Member: def __init__(self, data): self.nick = data.get("nick", None) self.roles = data.get("roles", None) self.joined_at = data.get("joined_at", None) + def __repr__(self): + return str(self.__dict__) + class _MessageRef: def __init__(self, data): self.message_id = data.get("message_id", None) + def __repr__(self): + return str(self.__dict__) + class _Attachments: def __init__(self, data): self.content_type = data.get("content_type", None) @@ -65,6 +77,9 @@ def __init__(self, data): self.size = data.get("size", None) self.url = data.get("url", None) + def __repr__(self): + return str(self.__dict__) + async def reply(self, **kwargs): return await self._api.post_message(channel_id=self.channel_id, msg_id=self.id, **kwargs) @@ -104,20 +119,32 @@ def __init__(self, api: BotAPI, event_id, data: gateway.DirectMessagePayload): self.timestamp = data.get("timestamp", None) self.event_id = event_id + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) + class _User: def __init__(self, data): self.id = data.get("id", None) self.username = data.get("username", None) self.avatar = data.get("avatar", None) + def __repr__(self): + return str(self.__dict__) + class _Member: def __init__(self, data): self.joined_at = data.get("joined_at", None) + def __repr__(self): + return str(self.__dict__) + class _MessageRef: def __init__(self, data): self.message_id = data.get("message_id", None) + def __repr__(self): + return str(self.__dict__) + async def reply(self, **kwargs): return await self._api.post_message(channel_id=self.channel_id, msg_id=self.id, **kwargs) @@ -139,3 +166,6 @@ def __init__(self, api: BotAPI, event_id, data: gateway.MessageAuditPayload): self.message_id = data.get("message_id", None) self.guild_id = data.get("guild_id", None) self.event_id = event_id + + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) diff --git a/botpy/reaction.py b/botpy/reaction.py index 7f8b926..acfa063 100644 --- a/botpy/reaction.py +++ b/botpy/reaction.py @@ -23,12 +23,21 @@ def __init__(self, api: BotAPI, event_id, data: reaction.Reaction): self.target = self._Target(data.get("target", {})) self.event_id = event_id + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) + class _Emoji: def __init__(self, data): self.id = data.get("id", None) self.type = data.get("type", None) + def __repr__(self): + return str(self.__dict__) + class _Target: def __init__(self, data): self.id = data.get("id", None) self.type = data.get("type", None) # 0: 消息 1: 帖子 2: 评论 3: 回复 + + def __repr__(self): + return str(self.__dict__) diff --git a/botpy/user.py b/botpy/user.py index e4c8389..e276a3f 100644 --- a/botpy/user.py +++ b/botpy/user.py @@ -15,6 +15,9 @@ def __init__(self, api: BotAPI, event_id, data: user.GuildMemberPayload): self.event_id = event_id self.guild_id = data.get("guild_id", None) + def __repr__(self): + return str({items: str(getattr(self, items)) for items in self.__slots__ if not items.startswith('_')}) + class _User: def __init__(self, data): self.id = data.get("id", None) @@ -23,3 +26,6 @@ def __init__(self, data): self.bot = data.get("bot", None) self.union_openid = data.get("union_openid", None) self.union_user_account = data.get("union_user_account", None) + + def __repr__(self): + return str(self.__dict__) From ec48f6ceaba0349b5745783bb02f721e85d47477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=BF=B5=E5=90=8C=E5=AD=A6?= <2660422452@qq.com> Date: Mon, 4 Jul 2022 01:14:34 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DDirectMessage?= =?UTF-8?q?=E4=B8=ADreply=E5=8F=82=E6=95=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- botpy/message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/botpy/message.py b/botpy/message.py index 0c51ccb..4b24416 100644 --- a/botpy/message.py +++ b/botpy/message.py @@ -146,7 +146,7 @@ def __repr__(self): return str(self.__dict__) async def reply(self, **kwargs): - return await self._api.post_message(channel_id=self.channel_id, msg_id=self.id, **kwargs) + return await self._api.post_dms(guild_id=self.guild_id, msg_id=self.id, **kwargs) class MessageAudit: