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..4b24416 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,22 +119,34 @@ 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) + return await self._api.post_dms(guild_id=self.guild_id, msg_id=self.id, **kwargs) class MessageAudit: @@ -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__)