satori-python-adapter-onebot11 0.3.2__tar.gz → 0.4.0__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_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/.mina/adapter_onebot11.toml +2 -2
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/PKG-INFO +9 -9
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/README.md +7 -7
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/pyproject.toml +2 -2
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/api.py +55 -21
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/events/message.py +9 -4
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/events/notice.py +25 -12
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/LICENSE +0 -0
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/__init__.py +0 -0
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/events/__init__.py +0 -0
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/events/base.py +0 -0
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/events/request.py +0 -0
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/forward.py +0 -0
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/message.py +0 -0
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/reverse.py +0 -0
- {satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/src/satori/adapters/onebot11/utils.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
includes = ["src/satori/adapters/onebot11"]
|
|
2
|
-
raw-dependencies = ["satori-python-server
|
|
2
|
+
raw-dependencies = ["satori-python-server<1.4.0,>= 1.3.0"]
|
|
3
3
|
|
|
4
4
|
[project]
|
|
5
5
|
name = "satori-python-adapter-onebot11"
|
|
6
|
-
version = "0.
|
|
6
|
+
version = "0.4.0"
|
|
7
7
|
authors = [
|
|
8
8
|
{name = "RF-Tar-Railt", email = "rf_tar_railt@qq.com"}
|
|
9
9
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: satori-python-adapter-onebot11
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Satori Protocol SDK for python, adapter for OneBot 11
|
|
5
5
|
Home-page: https://github.com/RF-Tar-Railt/satori-python
|
|
6
6
|
Author-Email: RF-Tar-Railt <rf_tar_railt@qq.com>
|
|
@@ -17,7 +17,7 @@ Classifier: Operating System :: OS Independent
|
|
|
17
17
|
Project-URL: Homepage, https://github.com/RF-Tar-Railt/satori-python
|
|
18
18
|
Project-URL: Repository, https://github.com/RF-Tar-Railt/satori-python
|
|
19
19
|
Requires-Python: <4.0,>=3.10
|
|
20
|
-
Requires-Dist: satori-python-server
|
|
20
|
+
Requires-Dist: satori-python-server<1.4.0,>=1.3.0
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
|
|
23
23
|
# satori-python
|
|
@@ -70,13 +70,13 @@ pip install satori-python-server
|
|
|
70
70
|
|
|
71
71
|
### 官方适配器
|
|
72
72
|
|
|
73
|
-
| 适配器 | 安装 | 路径
|
|
74
|
-
|
|
75
|
-
| Satori | `pip install satori-python-adapter-satori` | satori.adapters.satori
|
|
76
|
-
| OneBot V11 | `pip install satori-python-adapter-onebot11` | satori.adapters.onebot11.forward, satori.adapters.onebot11.reverse
|
|
77
|
-
| Console | `pip install satori-python-adapter-console` | satori.adapters.console
|
|
78
|
-
| Milky | `pip install satori-python-adapter-milky` | satori.adapters.milky.main, satori.adapters.milky.webhook
|
|
79
|
-
| QQ | `pip install satori-python-adapter-qq` | satori.adapters.qq.main, satori.adapters.qq.websocket
|
|
73
|
+
| 适配器 | 安装 | 路径 |
|
|
74
|
+
|------------|----------------------------------------------|--------------------------------------------------------------------------------------|
|
|
75
|
+
| Satori | `pip install satori-python-adapter-satori` | satori.adapters.satori |
|
|
76
|
+
| OneBot V11 | `pip install satori-python-adapter-onebot11` | satori.adapters.onebot11.forward, satori.adapters.onebot11.reverse |
|
|
77
|
+
| Console | `pip install satori-python-adapter-console` | satori.adapters.console |
|
|
78
|
+
| Milky | `pip install satori-python-adapter-milky` | satori.adapters.milky.main, satori.adapters.milky.webhook, satori.adapters.milky.sse |
|
|
79
|
+
| QQ | `pip install satori-python-adapter-qq` | satori.adapters.qq.main, satori.adapters.qq.websocket |
|
|
80
80
|
|
|
81
81
|
### 社区适配器
|
|
82
82
|
|
|
@@ -48,13 +48,13 @@ pip install satori-python-server
|
|
|
48
48
|
|
|
49
49
|
### 官方适配器
|
|
50
50
|
|
|
51
|
-
| 适配器 | 安装 | 路径
|
|
52
|
-
|
|
53
|
-
| Satori | `pip install satori-python-adapter-satori` | satori.adapters.satori
|
|
54
|
-
| OneBot V11 | `pip install satori-python-adapter-onebot11` | satori.adapters.onebot11.forward, satori.adapters.onebot11.reverse
|
|
55
|
-
| Console | `pip install satori-python-adapter-console` | satori.adapters.console
|
|
56
|
-
| Milky | `pip install satori-python-adapter-milky` | satori.adapters.milky.main, satori.adapters.milky.webhook
|
|
57
|
-
| QQ | `pip install satori-python-adapter-qq` | satori.adapters.qq.main, satori.adapters.qq.websocket
|
|
51
|
+
| 适配器 | 安装 | 路径 |
|
|
52
|
+
|------------|----------------------------------------------|--------------------------------------------------------------------------------------|
|
|
53
|
+
| Satori | `pip install satori-python-adapter-satori` | satori.adapters.satori |
|
|
54
|
+
| OneBot V11 | `pip install satori-python-adapter-onebot11` | satori.adapters.onebot11.forward, satori.adapters.onebot11.reverse |
|
|
55
|
+
| Console | `pip install satori-python-adapter-console` | satori.adapters.console |
|
|
56
|
+
| Milky | `pip install satori-python-adapter-milky` | satori.adapters.milky.main, satori.adapters.milky.webhook, satori.adapters.milky.sse |
|
|
57
|
+
| QQ | `pip install satori-python-adapter-qq` | satori.adapters.qq.main, satori.adapters.qq.websocket |
|
|
58
58
|
|
|
59
59
|
### 社区适配器
|
|
60
60
|
|
{satori_python_adapter_onebot11-0.3.2 → satori_python_adapter_onebot11-0.4.0}/pyproject.toml
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "satori-python-adapter-onebot11"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.4.0"
|
|
4
4
|
authors = [
|
|
5
5
|
{ name = "RF-Tar-Railt", email = "rf_tar_railt@qq.com" },
|
|
6
6
|
]
|
|
7
7
|
dependencies = [
|
|
8
|
-
"satori-python-server
|
|
8
|
+
"satori-python-server<1.4.0,>= 1.3.0",
|
|
9
9
|
]
|
|
10
10
|
description = "Satori Protocol SDK for python, adapter for OneBot 11"
|
|
11
11
|
readme = "README.md"
|
|
@@ -5,13 +5,13 @@ from satori import Api
|
|
|
5
5
|
from satori.model import (
|
|
6
6
|
Channel,
|
|
7
7
|
ChannelType,
|
|
8
|
+
Friend,
|
|
8
9
|
Guild,
|
|
9
10
|
Login,
|
|
10
11
|
Member,
|
|
11
12
|
MessageObject,
|
|
12
13
|
PageDequeResult,
|
|
13
14
|
PageResult,
|
|
14
|
-
Role,
|
|
15
15
|
User,
|
|
16
16
|
)
|
|
17
17
|
from satori.server import Adapter, Request
|
|
@@ -35,11 +35,11 @@ from satori.server.route import (
|
|
|
35
35
|
ReactionCreateParam,
|
|
36
36
|
ReactionDeleteParam,
|
|
37
37
|
UserChannelCreateParam,
|
|
38
|
-
|
|
38
|
+
UserOpParam,
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
from .message import OneBot11MessageEncoder, decode
|
|
42
|
-
from .utils import GROUP_AVATAR_URL, USER_AVATAR_URL, OneBotNetwork
|
|
42
|
+
from .utils import GROUP_AVATAR_URL, ROLE_MAPPING, USER_AVATAR_URL, OneBotNetwork
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_getter: Callable[[str], Login]):
|
|
@@ -197,6 +197,18 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
197
197
|
@adapter.route(Api.CHANNEL_GET)
|
|
198
198
|
async def channel_get(request: Request[ChannelParam]):
|
|
199
199
|
net = net_getter(request.self_id)
|
|
200
|
+
channel_id = request.params["channel_id"]
|
|
201
|
+
if channel_id.startswith("private:"):
|
|
202
|
+
user_id = channel_id.removeprefix("private:")
|
|
203
|
+
result = await net.call_api("get_stranger_info", {"user_id": int(user_id)})
|
|
204
|
+
if not result:
|
|
205
|
+
raise RuntimeError(f"Failed to get user {user_id}")
|
|
206
|
+
return Channel(
|
|
207
|
+
f"private:{user_id}",
|
|
208
|
+
ChannelType.DIRECT,
|
|
209
|
+
result["nickname"],
|
|
210
|
+
USER_AVATAR_URL.format(uin=user_id),
|
|
211
|
+
)
|
|
200
212
|
result = await net.call_api("get_group_info", {"group_id": int(request.params["channel_id"])})
|
|
201
213
|
if not result:
|
|
202
214
|
raise RuntimeError(f"Failed to get group {request.params['channel_id']}")
|
|
@@ -250,6 +262,8 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
250
262
|
@adapter.route(Api.CHANNEL_UPDATE)
|
|
251
263
|
async def channel_update(request: Request[ChannelUpdateParam]):
|
|
252
264
|
net = net_getter(request.self_id)
|
|
265
|
+
if request.params["channel_id"].startswith("private:"):
|
|
266
|
+
raise RuntimeError("Cannot update private channel")
|
|
253
267
|
await net.call_api(
|
|
254
268
|
"set_group_name",
|
|
255
269
|
{"group_id": int(request.params["channel_id"]), "group_name": request.params["data"]["name"]},
|
|
@@ -259,6 +273,8 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
259
273
|
@adapter.route(Api.CHANNEL_MUTE)
|
|
260
274
|
async def channel_mute(request: Request[ChannelMuteParam]):
|
|
261
275
|
net = net_getter(request.self_id)
|
|
276
|
+
if request.params["channel_id"].startswith("private:"):
|
|
277
|
+
raise RuntimeError("Cannot mute private channel")
|
|
262
278
|
await net.call_api(
|
|
263
279
|
"set_group_whole_ban",
|
|
264
280
|
{
|
|
@@ -339,7 +355,7 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
339
355
|
{
|
|
340
356
|
"group_id": int(request.params["guild_id"]),
|
|
341
357
|
"user_id": int(request.params["user_id"]),
|
|
342
|
-
"enable": request.params["role_id"] == "
|
|
358
|
+
"enable": request.params["role_id"] == "admin",
|
|
343
359
|
},
|
|
344
360
|
)
|
|
345
361
|
return
|
|
@@ -352,17 +368,17 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
352
368
|
{
|
|
353
369
|
"group_id": int(request.params["guild_id"]),
|
|
354
370
|
"user_id": int(request.params["user_id"]),
|
|
355
|
-
"enable": request.params["role_id"] != "
|
|
371
|
+
"enable": request.params["role_id"] != "admin",
|
|
356
372
|
},
|
|
357
373
|
)
|
|
358
374
|
return
|
|
359
375
|
|
|
360
376
|
@adapter.route(Api.GUILD_ROLE_LIST)
|
|
361
377
|
async def guild_role_list(request: Request[GuildXXXListParam]):
|
|
362
|
-
return PageResult(
|
|
378
|
+
return PageResult(list(ROLE_MAPPING.values()))
|
|
363
379
|
|
|
364
380
|
@adapter.route(Api.USER_GET)
|
|
365
|
-
async def user_get(request: Request[
|
|
381
|
+
async def user_get(request: Request[UserOpParam]):
|
|
366
382
|
net = net_getter(request.self_id)
|
|
367
383
|
result = await net.call_api("get_stranger_info", {"user_id": int(request.params["user_id"])})
|
|
368
384
|
if not result:
|
|
@@ -380,11 +396,13 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
380
396
|
result: list[dict] = await net.call_api("get_friend_list", {}) # type: ignore
|
|
381
397
|
return PageResult(
|
|
382
398
|
[
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
399
|
+
Friend(
|
|
400
|
+
User(
|
|
401
|
+
str(item["user_id"]),
|
|
402
|
+
item["nickname"],
|
|
403
|
+
USER_AVATAR_URL.format(uin=item["user_id"]),
|
|
404
|
+
),
|
|
386
405
|
item.get("remark"),
|
|
387
|
-
USER_AVATAR_URL.format(uin=item["user_id"]),
|
|
388
406
|
)
|
|
389
407
|
for item in result
|
|
390
408
|
]
|
|
@@ -441,7 +459,7 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
441
459
|
"set_msg_emoji_like",
|
|
442
460
|
{
|
|
443
461
|
"message_id": int(request.params["message_id"]),
|
|
444
|
-
"emoji": request.params["
|
|
462
|
+
"emoji": request.params["emoji_id"],
|
|
445
463
|
},
|
|
446
464
|
)
|
|
447
465
|
elif app_name == "Lagrange.OneBot" and not channel_id.startswith("private:"):
|
|
@@ -450,7 +468,7 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
450
468
|
{
|
|
451
469
|
"group_id": int(channel_id),
|
|
452
470
|
"message_id": int(request.params["message_id"]),
|
|
453
|
-
"code": request.params["
|
|
471
|
+
"code": request.params["emoji_id"],
|
|
454
472
|
"is_add": True,
|
|
455
473
|
},
|
|
456
474
|
)
|
|
@@ -459,18 +477,26 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
459
477
|
"set_msg_emoji_like",
|
|
460
478
|
{
|
|
461
479
|
"message_id": int(request.params["message_id"]),
|
|
462
|
-
"emoji_id": request.params["
|
|
480
|
+
"emoji_id": request.params["emoji_id"],
|
|
463
481
|
"set": True,
|
|
464
482
|
},
|
|
465
483
|
)
|
|
466
484
|
elif app_name == "ws-plugin" and not channel_id.startswith("private:"):
|
|
467
|
-
|
|
485
|
+
emoji_id = request.params["emoji_id"]
|
|
486
|
+
if ":" in emoji_id:
|
|
487
|
+
# custom emoji, format: {type}:{id}
|
|
488
|
+
emj_type_str, emj_id_str = emoji_id.split(":", 1)
|
|
489
|
+
emj_type = int(emj_type_str)
|
|
490
|
+
emj_id = int(emj_id_str)
|
|
491
|
+
else:
|
|
492
|
+
emj_id = int(emoji_id)
|
|
493
|
+
emj_type = 1 if emj_id < 5000 else 2
|
|
468
494
|
await net.call_api(
|
|
469
495
|
"set_reaction",
|
|
470
496
|
{
|
|
471
497
|
"group_id": int(channel_id),
|
|
472
498
|
"message_seq": int(request.params["message_id"]),
|
|
473
|
-
"code":
|
|
499
|
+
"code": emj_id,
|
|
474
500
|
"is_add": True,
|
|
475
501
|
"type": emj_type,
|
|
476
502
|
},
|
|
@@ -488,7 +514,7 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
488
514
|
"unset_msg_emoji_like",
|
|
489
515
|
{
|
|
490
516
|
"message_id": int(request.params["message_id"]),
|
|
491
|
-
"emoji": request.params["
|
|
517
|
+
"emoji": request.params["emoji_id"],
|
|
492
518
|
},
|
|
493
519
|
)
|
|
494
520
|
elif app_name == "Lagrange.OneBot" and not channel_id.startswith("private:"):
|
|
@@ -497,7 +523,7 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
497
523
|
{
|
|
498
524
|
"group_id": int(channel_id),
|
|
499
525
|
"message_id": int(request.params["message_id"]),
|
|
500
|
-
"code": request.params["
|
|
526
|
+
"code": request.params["emoji_id"],
|
|
501
527
|
"is_add": False,
|
|
502
528
|
},
|
|
503
529
|
)
|
|
@@ -506,18 +532,26 @@ def apply(adapter: Adapter, net_getter: Callable[[str], OneBotNetwork], login_ge
|
|
|
506
532
|
"set_msg_emoji_like",
|
|
507
533
|
{
|
|
508
534
|
"message_id": int(request.params["message_id"]),
|
|
509
|
-
"emoji": request.params["
|
|
535
|
+
"emoji": request.params["emoji_id"],
|
|
510
536
|
"set": False,
|
|
511
537
|
},
|
|
512
538
|
)
|
|
513
539
|
elif app_name == "ws-plugin" and not channel_id.startswith("private:"):
|
|
514
|
-
|
|
540
|
+
emoji_id = request.params["emoji_id"]
|
|
541
|
+
if ":" in emoji_id:
|
|
542
|
+
# custom emoji, format: {type}:{id}
|
|
543
|
+
emj_type_str, emj_id_str = emoji_id.split(":", 1)
|
|
544
|
+
emj_type = int(emj_type_str)
|
|
545
|
+
emj_id = int(emj_id_str)
|
|
546
|
+
else:
|
|
547
|
+
emj_id = int(emoji_id)
|
|
548
|
+
emj_type = 1 if emj_id < 5000 else 2
|
|
515
549
|
await net.call_api(
|
|
516
550
|
"set_reaction",
|
|
517
551
|
{
|
|
518
552
|
"group_id": int(channel_id),
|
|
519
553
|
"message_seq": int(request.params["message_id"]),
|
|
520
|
-
"code":
|
|
554
|
+
"code": emj_id,
|
|
521
555
|
"is_add": False,
|
|
522
556
|
"type": emj_type,
|
|
523
557
|
},
|
|
@@ -80,7 +80,9 @@ async def group(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
80
80
|
member_info = await net.call_api(
|
|
81
81
|
"get_group_member_info", {"group_id": raw["group_id"], "user_id": sender["user_id"]}
|
|
82
82
|
)
|
|
83
|
-
member = Member(
|
|
83
|
+
member = Member(
|
|
84
|
+
user, member_info["card"], USER_AVATAR_URL.format(uin=sender["user_id"]), roles=[ROLE_MAPPING[sender["role"]]]
|
|
85
|
+
)
|
|
84
86
|
guild = Guild(
|
|
85
87
|
str(raw["group_id"]), group_info.get("group_name"), avatar=GROUP_AVATAR_URL.format(group=raw["group_id"])
|
|
86
88
|
)
|
|
@@ -93,7 +95,6 @@ async def group(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
93
95
|
guild=guild,
|
|
94
96
|
channel=channel,
|
|
95
97
|
member=member,
|
|
96
|
-
role=ROLE_MAPPING[sender["role"]],
|
|
97
98
|
message=MessageObject(str(raw["message_id"]), await decode(raw["message"], net)),
|
|
98
99
|
)
|
|
99
100
|
|
|
@@ -111,7 +112,12 @@ async def group_message_recall(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
111
112
|
member_info.get("card"),
|
|
112
113
|
USER_AVATAR_URL.format(uin=raw["user_id"]),
|
|
113
114
|
)
|
|
114
|
-
member = Member(
|
|
115
|
+
member = Member(
|
|
116
|
+
user,
|
|
117
|
+
member_info.get("card"),
|
|
118
|
+
USER_AVATAR_URL.format(uin=raw["user_id"]),
|
|
119
|
+
roles=[ROLE_MAPPING[member_info["role"]]],
|
|
120
|
+
)
|
|
115
121
|
guild = Guild(
|
|
116
122
|
str(raw["group_id"]), group_info.get("group_name"), avatar=GROUP_AVATAR_URL.format(group=raw["group_id"])
|
|
117
123
|
)
|
|
@@ -131,6 +137,5 @@ async def group_message_recall(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
131
137
|
channel=channel,
|
|
132
138
|
member=member,
|
|
133
139
|
operator=operator,
|
|
134
|
-
role=ROLE_MAPPING[member_info["role"]],
|
|
135
140
|
message=MessageObject(str(raw["message_id"]), ""),
|
|
136
141
|
)
|
|
@@ -179,8 +179,12 @@ async def group_admin_set(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
179
179
|
)
|
|
180
180
|
channel = Channel(str(raw["group_id"]), ChannelType.TEXT, group_info.get("group_name"))
|
|
181
181
|
user = User(str(raw["user_id"]), member_info["nickname"], avatar=USER_AVATAR_URL.format(uin=raw["user_id"]))
|
|
182
|
-
member = Member(
|
|
183
|
-
|
|
182
|
+
member = Member(
|
|
183
|
+
user,
|
|
184
|
+
member_info.get("card"),
|
|
185
|
+
avatar=USER_AVATAR_URL.format(uin=raw["user_id"]),
|
|
186
|
+
roles=[Role("ADMINISTRATOR", "管理员")],
|
|
187
|
+
)
|
|
184
188
|
return Event(
|
|
185
189
|
EventType.GUILD_MEMBER_UPDATED,
|
|
186
190
|
datetime.now(),
|
|
@@ -189,7 +193,6 @@ async def group_admin_set(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
189
193
|
member=member,
|
|
190
194
|
guild=guild,
|
|
191
195
|
channel=channel,
|
|
192
|
-
role=role,
|
|
193
196
|
)
|
|
194
197
|
|
|
195
198
|
|
|
@@ -202,8 +205,12 @@ async def group_admin_unset(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
202
205
|
)
|
|
203
206
|
channel = Channel(str(raw["group_id"]), ChannelType.TEXT, group_info.get("group_name"))
|
|
204
207
|
user = User(str(raw["user_id"]), member_info["nickname"], avatar=USER_AVATAR_URL.format(uin=raw["user_id"]))
|
|
205
|
-
member = Member(
|
|
206
|
-
|
|
208
|
+
member = Member(
|
|
209
|
+
user,
|
|
210
|
+
member_info.get("card"),
|
|
211
|
+
avatar=USER_AVATAR_URL.format(uin=raw["user_id"]),
|
|
212
|
+
roles=[Role("MEMBER", "群成员")],
|
|
213
|
+
)
|
|
207
214
|
return Event(
|
|
208
215
|
EventType.GUILD_MEMBER_UPDATED,
|
|
209
216
|
datetime.now(),
|
|
@@ -212,7 +219,6 @@ async def group_admin_unset(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
212
219
|
member=member,
|
|
213
220
|
guild=guild,
|
|
214
221
|
channel=channel,
|
|
215
|
-
role=role,
|
|
216
222
|
)
|
|
217
223
|
|
|
218
224
|
|
|
@@ -267,7 +273,10 @@ async def member_kick_me(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
267
273
|
"get_group_member_info", {"group_id": raw["group_id"], "user_id": raw["operator_id"]}
|
|
268
274
|
)
|
|
269
275
|
member = Member(
|
|
270
|
-
login.user,
|
|
276
|
+
login.user,
|
|
277
|
+
member_info.get("card", member_info["nickname"]),
|
|
278
|
+
USER_AVATAR_URL.format(uin=raw["user_id"]),
|
|
279
|
+
roles=[ROLE_MAPPING[member_info["role"]]],
|
|
271
280
|
)
|
|
272
281
|
guild = Guild(
|
|
273
282
|
str(raw["group_id"]), group_info.get("group_name"), avatar=GROUP_AVATAR_URL.format(group=raw["group_id"])
|
|
@@ -288,7 +297,6 @@ async def member_kick_me(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
288
297
|
guild=guild,
|
|
289
298
|
channel=channel,
|
|
290
299
|
operator=operator,
|
|
291
|
-
role=ROLE_MAPPING[member_info["role"]],
|
|
292
300
|
)
|
|
293
301
|
|
|
294
302
|
|
|
@@ -303,10 +311,11 @@ async def group_increase(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
303
311
|
datetime.now(),
|
|
304
312
|
login=login,
|
|
305
313
|
user=login.user,
|
|
306
|
-
member=Member(
|
|
314
|
+
member=Member(
|
|
315
|
+
login.user, avatar=USER_AVATAR_URL.format(uin=login.user.id), roles=[Role("MEMBER", "群成员")]
|
|
316
|
+
),
|
|
307
317
|
guild=guild,
|
|
308
318
|
channel=channel,
|
|
309
|
-
role=Role("MEMBER", "群成员"),
|
|
310
319
|
)
|
|
311
320
|
group_info = await net.call_api("get_group_info", {"group_id": raw["group_id"]})
|
|
312
321
|
member_info = await net.call_api("get_group_member_info", {"group_id": raw["group_id"], "user_id": raw["user_id"]})
|
|
@@ -319,7 +328,12 @@ async def group_increase(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
319
328
|
member_info.get("card"),
|
|
320
329
|
USER_AVATAR_URL.format(uin=raw["user_id"]),
|
|
321
330
|
)
|
|
322
|
-
member = Member(
|
|
331
|
+
member = Member(
|
|
332
|
+
user,
|
|
333
|
+
member_info.get("card"),
|
|
334
|
+
USER_AVATAR_URL.format(uin=raw["user_id"]),
|
|
335
|
+
roles=[ROLE_MAPPING[member_info["role"]]],
|
|
336
|
+
)
|
|
323
337
|
guild = Guild(
|
|
324
338
|
str(raw["group_id"]), group_info.get("group_name"), avatar=GROUP_AVATAR_URL.format(group=raw["group_id"])
|
|
325
339
|
)
|
|
@@ -339,7 +353,6 @@ async def group_increase(login: Login, net: OneBotNetwork, raw: dict):
|
|
|
339
353
|
guild=guild,
|
|
340
354
|
channel=channel,
|
|
341
355
|
operator=operator,
|
|
342
|
-
role=Role("MEMBER", "群成员"),
|
|
343
356
|
)
|
|
344
357
|
|
|
345
358
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|