Bot 配置¶
- pydantic settings qzone3tg.settings.BotConf¶
对应配置文件中的
bot
项。- Fields:
- Validators:
webhook_first
»all fields
- field auto_start: bool = False¶
是否在程序启动后自动运行一次更新(
/start
)。默认为False
.Added in version 0.2.7.dev2.
- Validated by:
webhook_first
- field init_args: WebhookConf | PollingConf [Optional]¶
Bot 的启动配置. 根据启动配置的类型不同, bot 会以不同的模式启动.
按照
PollingConf
填写,对应 polling 模式(默认);按照
WebhookConf
填写,对应 webhook 模式。
- Validated by:
webhook_first
- field network: NetworkConf [Optional]¶
网络配置。包括代理和等待时间自定义优化。
- Validated by:
webhook_first
- field storage: StorageConfig [Optional]¶
存储配置。Bot 将保留说说的一部分必要参数,用于点赞/取消赞/转发/评论等. 存储的信息不包括说说内容. 默认只在内存中建立 sqlite3 数据库。
- Validated by:
webhook_first
- pydantic settings qzone3tg.settings.NetworkConf¶
网络配置,对应配置文件中的
bot.network
. 包括代理和自定义等待时间等。- field connect_timeout: float | None = 20¶
服务器向 telegram 和 Qzone 发起连接的最长耗时。单位为秒,默认为20
Added in version 0.5.0a8.
在 0.5.1a1 版本发生变更: 此参数也控制与 Qzone 连接的超时。
- field proxy: Annotated[Url, UrlConstraints(max_length=None, allowed_schemes=['http', 'socks4', 'socks5'], host_required=None, default_host=None, default_port=None, default_path=None)] | None = None¶
代理设置,支持 http 和 socks 代理. 代理将用于向
telegram api
和github
发送请求. 也支持读取系统全局代理HTTPS_PROXY
, 但优先级 低于 配置文件提供的值。Example:
http://127.0.0.1:1234
https://username:password@your.proxy.com:1234
socks5://user:pass@host:port
在 0.9.0 版本发生变更: socks 代理自动开启 rdns。
- pydantic settings qzone3tg.settings.WebhookConf¶
对应
bot.init_args
. Webhook 的原理是在本机启动一个小型服务器以接收 telegram api 的更新消息. 因为不必时时从 telegram 查询更新, webhook 的效率更高,资源消耗更少. 用户需要保证telegram api
能够通过destination
访问到这个服务器.此外,由于
telegram api
的限制,对webhook destination
的请求必须开启 SSL. 因此您可能需要域名(和证书)才能使用 webhook.- Fields:
- Validators:
port_choice
»destination
- field cert: Annotated[Path, PathType(path_type=file)] | None = None¶
证书. 用于开启 SSL 认证. 若您使用反向代理,则应该在反向代理服务器设置证书,此处留空即可.
- field destination: Annotated[Url, UrlConstraints(max_length=None, allowed_schemes=['https'], host_required=None, default_host=None, default_port=None, default_path=None)] [Required]¶
webhook url.
telegram api
将向此地址发送数据. 如果您配置了反向代理,可填写反向代理的转发地址.Example:
https://this.server.xyz:443
如果没有额外配置,替换本机域名即可.https://this.server.xyz:443/any/prefix/you/like
若您配置的反向代理会将 url 转发到port
指明的端口,则填写这个 url.
- Constraints:
allowed_schemes = ['https']
- Validated by:
port_choice
- field key: Annotated[Path, PathType(path_type=file)] | None = None¶
证书私钥. 用于开启 SSL 认证. 若您使用反向代理,则应该在反向代理服务器设置证书,此处留空即可.
- pydantic settings qzone3tg.settings.PollingConf¶
对应
bot.init_args
. 顾名思义,polling 模式通过频繁地向 telegram 查询消息来确保能够响应用户的命令. 比 webhook 简单、要求低,适合测试使用.- Fields:
- pydantic settings qzone3tg.settings.StorageConfig¶
Bot 存储配置,对应
bot.storage
。Bot 将保留说说的一部分必要参数,用于验证说说是否已爬取、已发送,以及用于点赞、取消赞等. 存储的信息不包括说说内容, 但通常能够通过存储的参数复原说说内容.