1
- # botpy
1
+ < div align = " center " >
2
2
3
- ** botpy ** 是基于 [ 机器人开放平台API ] ( https://bot.q.qq.com/wiki/develop/api/ ) 实现的机器人框架,目的提供一个易使用、开发效率高的开发框架。
3
+ ![ botpy ] ( https://socialify.git.ci/tencent-connect/botpy/image?description=1&font=Source%20Code%20Pro&forks=1&issues=1&language=1&logo=https%3A%2F%2Fgithub.com%2Ftencent-connect%2Fbot-docs%2Fblob%2Fmain%2Fdocs%2F.vuepress%2Fpublic%2Ffavicon-64px.png%3Fraw%3Dtrue&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Light )
4
4
5
+ [ ![ Language] ( https://img.shields.io/badge/language-python-green.svg?style=plastic )] ( https://www.python.org/ )
6
+ [ ![ License] ( https://img.shields.io/badge/license-MIT-orange.svg?style=plastic )] ( https://github.com/tencent-connect/botpy/blob/master/LICENSE )
7
+ ![ Python] ( https://img.shields.io/badge/python-3.8+-blue )
5
8
![ PyPI] ( https://img.shields.io/pypi/v/qq-botpy )
6
9
[ ![ BK Pipelines Status] ( https://api.bkdevops.qq.com/process/api/external/pipelines/projects/qq-guild-open/p-713959939bdc4adca0eea2d4420eef4b/badge?X-DEVOPS-PROJECT-ID=qq-guild-open )] ( https://devops.woa.com/process/api-html/user/builds/projects/qq-guild-open/pipelines/p-713959939bdc4adca0eea2d4420eef4b/latestFinished?X-DEVOPS-PROJECT-ID=qq-guild-open )
7
10
11
+ _ ✨ 基于 [ 机器人开放平台API] ( https://bot.q.qq.com/wiki/develop/api/ ) 实现的机器人框架 ✨_
12
+
13
+ _ ✨ 为开发者提供一个易使用、开发效率高的开发框架 ✨_
14
+
15
+ [ 文档] ( https://bot.q.qq.com/wiki/develop/pythonsdk/ )
16
+ ·
17
+ [ 下载] ( https://github.com/tencent-connect/botpy/tags )
18
+ ·
19
+ [ 安装] ( https://bot.q.qq.com/wiki/develop/pythonsdk/#sdk-安装 )
20
+
21
+ </div >
22
+
8
23
## 准备工作
9
24
10
25
### 安装
@@ -43,12 +58,9 @@ import botpy
43
58
44
59
``` python
45
60
import botpy
46
- from botpy.types. message import Message
61
+ from botpy.message import Message
47
62
48
63
class MyClient (botpy .Client ):
49
- async def on_ready (self ):
50
- print (f " robot 「 { self .robot.name} 」 on_ready! " )
51
-
52
64
async def on_at_message_create (self , message : Message):
53
65
await message.reply(content = f " 机器人 { self .robot.name} 收到你的@消息了: { message.content} " )
54
66
```
@@ -61,7 +73,7 @@ class MyClient(botpy.Client):
61
73
62
74
``` python
63
75
import botpy
64
- from botpy.types. message import Message
76
+ from botpy.message import Message
65
77
66
78
class MyClient (botpy .Client ):
67
79
async def on_at_message_create (self , message : Message):
@@ -89,7 +101,7 @@ intents.public_guild_messages=True
89
101
90
102
``` python
91
103
import botpy
92
- from botpy.types. message import Message
104
+ from botpy.message import Message
93
105
94
106
class MyClient (botpy .Client ):
95
107
async def on_at_message_create (self , message : Message):
@@ -122,125 +134,6 @@ class MyClient(botpy.Client):
122
134
├── demo_recall.py # 机器人消息撤回示例
123
135
├── demo_schedule.py # 机器人日程相关示例
124
136
125
- ## 日志打印
126
-
127
- 基于自带的 logging 模块封装的日志模块,提供了日志写入以及美化了打印格式,并支持调整打印级别(默认打印级别为 ` INFO ` )。
128
-
129
- ### 使用方法
130
-
131
- 引用模块,并获取 ` logger ` 实例:
132
-
133
- ``` python
134
- from botpy import logging
135
-
136
- logger = logging.get_logger()
137
- ```
138
-
139
- 或者通过` botpy.logger ` 也可以获取logger对象
140
-
141
- 然后就可以愉快地使用 logger 进行打印。例如:
142
-
143
- ``` python
144
- logger.info(" hello world!" )
145
- ```
146
-
147
- ### 日志设置
148
-
149
- SDK的日志设置集成在` bot.Client ` 的实例化阶段,也可通过[ ` logging.configure_logging ` ] ( botpy/logging.py ) 修改(均为可选)
150
-
151
- ``` python
152
- import botpy
153
-
154
- # 示例,非默认值
155
- botpy.Client(
156
- log_level = 10 ,
157
- log_format = " new format" ,
158
- bot_log = None ,
159
- ext_handlers = False ,
160
- log_config = " log_config.json"
161
- )
162
-
163
- ```
164
-
165
- ### log_level
166
-
167
- 日志级别,默认为` INFO `
168
-
169
- 命令行启动py可增加参数` -d ` 或 ` --debug ` 快捷打开debug日志
170
-
171
- ``` bash
172
- python3 demo_at_reply.py -d
173
- ```
174
-
175
- 几个可选取值(参考了[ logging模块的取值] ( https://docs.python.org/3/library/logging.html#levels ) ):
176
-
177
- | Level | 取值 |
178
- | -------- | --- |
179
- | CRITICAL | 50 |
180
- | ERROR | 40 |
181
- | WARNING | 30 |
182
- | INFO | 20 |
183
- | DEBUG | 10 |
184
- | NOTSET | 0 |
185
-
186
- ### log_format
187
-
188
- 日志控制台输出格式,默认为 ` "\033[1;33m[%(levelname)s]\t(%(filename)s:%(lineno)s)%(funcName)s\t\033[0m%(message)s" `
189
-
190
- ### bot_log
191
-
192
- 是否启用` botpy ` 日志,默认为` True `
193
-
194
- ` True ` 启用
195
- ` None ` 禁用 拓展
196
- ` False ` 禁用 拓展+控制台输出
197
-
198
- ### ext_handlers
199
-
200
- 日志Handler拓展,为` True ` 使用默认拓展,` False ` 不添加拓展,可用list添加多个拓展。默认为` True `
201
-
202
- [ 默认拓展] ( ./botpy/logging.py )
203
-
204
- ``` python
205
- import os
206
- import logging
207
- from logging.handlers import TimedRotatingFileHandler
208
-
209
- DEFAULT_FILE_HANDLER = {
210
- # 要实例化的Handler
211
- " handler" : TimedRotatingFileHandler,
212
- # 可选 Default to DEFAULT_FILE_FORMAT
213
- " format" : " %(asctime)s \t [%(levelname)s ]\t (%(filename)s :%(lineno)s )%(funcName)s \t %(message)s " ,
214
- # 可选 Default to DEBUG
215
- " level" : logging.DEBUG ,
216
- # 以下是Handler相关参数
217
- " when" : " D" ,
218
- " backupCount" : 7 ,
219
- " encoding" : " utf-8" ,
220
- # *特殊* 对于filename参数,其中如有 %(name)s 会在实例化阶段填入相应的日志name
221
- " filename" : os.path.join(os.getcwd(), " %(name)s .log" ),
222
- }
223
- ```
224
-
225
- #### 修改默认拓展
226
-
227
- ``` python
228
- import os
229
- import botpy
230
- from botpy.logging import DEFAULT_FILE_HANDLER
231
-
232
- # 修改日志路径
233
- DEFAULT_FILE_HANDLER [" filename" ] = os.path.join(os.getcwd(), " log" , " %(name)s .log" )
234
- # 修改日志格式
235
- DEFAULT_FILE_HANDLER [" format" ] = " new format"
236
-
237
- botpy.Client(ext_handlers = DEFAULT_FILE_HANDLER )
238
- ```
239
-
240
- ### log_config
241
-
242
- 该参数将传入` logging.config.dictConfig ` (内置logging而非botpy.logging),如果为.json/.yaml文件路径将从文件中读取配置,无默认值
243
-
244
137
# 参与开发
245
138
246
139
## 环境配置
@@ -271,9 +164,11 @@ pytest
271
164
272
165
## 致谢
273
166
274
- 感谢参与内测、开发和提出宝贵意见的开发者们(排名不分先后) :
167
+ 感谢感谢以下开发者对 ` botpy ` 作出的贡献 :
275
168
276
- [ 小念] ( https://github.com/ReadSmall ) , [ Neutron] ( https://github.com/Huang1220 ) , [ 晚柒载] ( https://github.com/wqzai )
169
+ <a href =" https://github.com/tencent-connect/botpy/graphs/contributors " >
170
+ <img src =" https://contrib.rocks/image?repo=tencent-connect/botpy " />
171
+ </a >
277
172
278
173
# 加入官方社区
279
174
0 commit comments