satori-python-adapter-qq 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/.mina/adapter_qq.toml +1 -1
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/PKG-INFO +1 -1
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/pyproject.toml +1 -1
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/api.py +8 -2
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/events/guild.py +2 -2
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/events/message.py +3 -3
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/main.py +3 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/utils.py +7 -6
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/websocket.py +3 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/LICENSE +0 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/README.md +0 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/__init__.py +0 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/audit_store.py +0 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/events/__init__.py +0 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/events/base.py +0 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/events/group.py +0 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/events/interaction.py +0 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/exception.py +0 -0
- {satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/message.py +0 -0
{satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/api.py
RENAMED
|
@@ -29,7 +29,7 @@ from satori.server.route import (
|
|
|
29
29
|
)
|
|
30
30
|
|
|
31
31
|
from .message import QQGroupMessageEncoder, QQGuildMessageEncoder, decode_segments
|
|
32
|
-
from .utils import QQBotNetwork, decode_channel, decode_guild, decode_member, decode_user
|
|
32
|
+
from .utils import ROLE_MAPPING, QQBotNetwork, decode_channel, decode_guild, decode_member, decode_user
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
def apply(
|
|
@@ -356,7 +356,13 @@ def apply(
|
|
|
356
356
|
"get",
|
|
357
357
|
f"guilds/{guild_id}/roles",
|
|
358
358
|
)
|
|
359
|
-
roles = [Role(role["id"], role.get("name", "")) for role in res]
|
|
359
|
+
# roles = [Role(role["id"], role.get("name", "")) for role in res]
|
|
360
|
+
roles = []
|
|
361
|
+
for role in res:
|
|
362
|
+
if role["id"] in ROLE_MAPPING:
|
|
363
|
+
roles.append(ROLE_MAPPING[role["id"]])
|
|
364
|
+
else:
|
|
365
|
+
roles.append(Role(role["id"], role.get("name", "")))
|
|
360
366
|
return PageResult(roles, next=None)
|
|
361
367
|
raise NotFoundException("qq platform does not support guild.role.list")
|
|
362
368
|
|
|
@@ -5,7 +5,7 @@ from datetime import datetime
|
|
|
5
5
|
from satori import EventType
|
|
6
6
|
from satori.model import Event, Guild, Member, Role, User
|
|
7
7
|
|
|
8
|
-
from ..utils import Payload, decode_channel, decode_guild, decode_user
|
|
8
|
+
from ..utils import ROLE_MAPPING, Payload, decode_channel, decode_guild, decode_user
|
|
9
9
|
from .base import register_event
|
|
10
10
|
|
|
11
11
|
|
|
@@ -57,7 +57,7 @@ async def guild_member_event(login, guild_login, net, payload: Payload):
|
|
|
57
57
|
nick=raw["nick"],
|
|
58
58
|
avatar=user.avatar,
|
|
59
59
|
joined_at=datetime.fromisoformat(raw["joined_at"]),
|
|
60
|
-
roles=[Role(r) for r in raw["roles"]],
|
|
60
|
+
roles=[(ROLE_MAPPING.get(r) or Role(r)) for r in raw["roles"]],
|
|
61
61
|
)
|
|
62
62
|
operator = User(raw["op_user_id"])
|
|
63
63
|
return Event(t, datetime.now(), guild_login, guild=guild, user=user, member=member, operator=operator)
|
|
@@ -6,7 +6,7 @@ from satori import At, EventType, Text
|
|
|
6
6
|
from satori.model import Channel, ChannelType, EmojiObject, Event, Guild, Member, MessageObject, Role, User
|
|
7
7
|
|
|
8
8
|
from ..message import decode_segments
|
|
9
|
-
from ..utils import USER_AVATAR_URL, Payload, decode_user
|
|
9
|
+
from ..utils import ROLE_MAPPING, USER_AVATAR_URL, Payload, decode_user
|
|
10
10
|
from .base import register_event
|
|
11
11
|
|
|
12
12
|
|
|
@@ -21,7 +21,7 @@ async def at_message(login, guild_login, net, payload: Payload):
|
|
|
21
21
|
user,
|
|
22
22
|
avatar=user.avatar,
|
|
23
23
|
joined_at=datetime.fromisoformat(raw["member"]["joined_at"]),
|
|
24
|
-
roles=[Role(r) for r in raw["member"]["roles"]],
|
|
24
|
+
roles=[(ROLE_MAPPING.get(r) or Role(r)) for r in raw["member"]["roles"]],
|
|
25
25
|
)
|
|
26
26
|
msg = decode_segments(raw)
|
|
27
27
|
if len(msg) >= 2 and isinstance(msg[0], At) and isinstance(msg[1], Text):
|
|
@@ -169,7 +169,7 @@ async def message_delete(login, guild_login, new, payload: Payload):
|
|
|
169
169
|
user,
|
|
170
170
|
avatar=user.avatar,
|
|
171
171
|
joined_at=datetime.fromisoformat(raw["message"]["member"]["joined_at"]),
|
|
172
|
-
roles=[Role(r) for r in raw["message"]["member"]["roles"]],
|
|
172
|
+
roles=[(ROLE_MAPPING.get(r) or Role(r)) for r in raw["message"]["member"]["roles"]],
|
|
173
173
|
)
|
|
174
174
|
return Event(
|
|
175
175
|
EventType.MESSAGE_DELETED,
|
{satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/utils.py
RENAMED
|
@@ -122,15 +122,16 @@ def decode_member(profile: dict) -> Member:
|
|
|
122
122
|
decode_user(profile["user"]) if "user" in profile else None,
|
|
123
123
|
profile.get("nick"),
|
|
124
124
|
joined_at=datetime.fromisoformat(profile["joined_at"]) if "joined_at" in profile else None,
|
|
125
|
-
roles=[Role(r) for r in profile["roles"]],
|
|
125
|
+
roles=[(ROLE_MAPPING.get(r) or Role(r)) for r in profile["roles"]],
|
|
126
126
|
)
|
|
127
127
|
|
|
128
128
|
|
|
129
129
|
USER_AVATAR_URL = "https://q.qlogo.cn/qqapp/{app_id}/{user_id}/100"
|
|
130
130
|
|
|
131
131
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
132
|
+
ROLE_MAPPING = {
|
|
133
|
+
"1": Role("member", "成员"),
|
|
134
|
+
"5": Role("channel_admin", "子频道管理员"),
|
|
135
|
+
"2": Role("admin", "管理员"),
|
|
136
|
+
"4": Role("owner", "创建者"),
|
|
137
|
+
}
|
|
File without changes
|
|
File without changes
|
{satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{satori_python_adapter_qq-0.2.0 → satori_python_adapter_qq-0.2.1}/src/satori/adapters/qq/message.py
RENAMED
|
File without changes
|