-
Notifications
You must be signed in to change notification settings - Fork 6
/
example_11(使用异步api).py
100 lines (90 loc) · 4 KB
/
example_11(使用异步api).py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 发送本地图片、使用emoji的一个实例(本地图片要求SDK版本>=2.1.3,当前仅普通消息可直接上传图片,embed和ark暂无相关能力)
from qg_botsdk import BOT, Model
async def on_start():
# example_3 的异步版本
gbg = await bot.api.get_bot_guilds()
all_guilds = gbg.data
bot.logger.info(
"全部频道:" + str([items.name + "(" + items.id + ")" for items in all_guilds])
)
bot.logger.info("全部频道数量:" + str(len(all_guilds)))
for items in all_guilds:
gi = await bot.api.get_guild_info(items.id)
if not gi.result and gi.data.code == 11292:
bot.logger.warning(
items.name + "(" + items.id + ")[权限不足,无法查询此频道信息]"
)
else:
bot.logger.info(
f"频道 {items.name}({items.id}) 的拥有者:" + str(items.owner_id)
)
gm = await bot.api.get_guild_members(items.id)
if not all(gm.result):
bot.logger.warning(
items.name + "(" + items.id + ")[权限不足,无法查询此频道信息]"
)
await bot.api.create_permission_demand(
items.id, "xxx", "get_guild_members", "查看成员权限"
)
else:
bot.logger.info(
f"频道 {items.name}({items.id}) 的成员:"
+ "、".join([gm_data.nick for gm_data in gm.data])
)
gr = await bot.api.get_guild_roles(items.id)
if not gr.result:
bot.logger.warning(
items.name + "(" + items.id + ")[权限不足,无法查询此频道信息]"
)
await bot.api.create_permission_demand(
items.id, "xxx", "get_guild_roles", "查看成员权限"
)
else:
bot.logger.info(
f"频道 {items.name}({items.id}) 身份组:"
+ "、".join(
[
f"{gr_data.name}(id:{gr_data.id})"
for gr_data in gr.data.roles
]
)
)
async def deliver(data: Model.MESSAGE):
# SDK版本 >= v2.4.0 可直接使用reply()
# example_10 的异步版本
if "你好" in data.treated_msg:
await data.reply("你好,世界 <emoji:106>") # 发送QQ系统表情emoji
await data.reply("你好,世界 \U0001F600") # 发送unicode格式的emoji
elif "图片" in data.treated_msg:
with open("example_10_image.jpg", "rb") as img:
img_bytes = img.read()
await data.reply(file_image=img_bytes)
with open("example_10_image.jpg", "rb") as img:
await data.reply(file_image=img)
await data.reply(file_image="example_10_image.jpg")
# example_8 创建身份组模块的异步版本
elif "创建我的身份组" in data.treated_msg:
cr = await bot.api.create_role(
data.guild_id,
name=f"{data.author.username}的身份组",
color="#019F86",
hoist=True,
)
await bot.api.create_role_member(data.author.id, data.guild_id, cr.data.role_id)
if cr.result:
await data.reply(
f"【{data.author.username}的身份组】(id:{cr.data.role_id})已经被创建好啦!"
)
async def deliver_dm(data: Model.DIRECT_MESSAGE): # example_8 私信模块的异步版本
if "给爷笑一个" in data.treated_msg:
with open("example_10_image.jpg", "rb") as img:
img_bytes = img.read()
await data.reply("嘿嘿~", file_image=img_bytes)
if __name__ == "__main__":
bot = BOT(bot_id="", bot_token="", is_private=True, is_sandbox=False, is_async=True)
bot.bind_msg(deliver)
bot.bind_dm(deliver_dm)
bot.register_start_event(on_start)
bot.start()