Aiotieba

Latest version: v4.4.9

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 14 of 20

2.4.1

贴吧接口层

新增特性

- `_types.FragLink` 新增属性 `is_external` 用于判断链接是否属于外链

变化特性

- `Browser._id2user_info` 使用 `match-case` 替代 `str.startswith` 以优化性能
- `Browser.url2image` 不再使用 `Pillow` 解码图像
- `Fragments.texts` 现在使用懒加载,因为大部分的碎片类型都是 `FragText` 的子类型
- `_types.Ats` 会检查 `_raw_data['at_list']` 是否为空,`_types.Searches` 会检查 `_raw_data['post_list']` 是否为空,以避免返回结果为空时出现的解析bug
- 使用 [`black`](https://github.com/psf/black) 重格式化所有代码
- 多处细微的代码规范、注释和性能改进

应用层

变化特性

- `admin_listen.Context` 的参数解析不再受到多余空格的干扰
- `admin_listen.Context` 长文本补全操作的触发阈值现在由 `bytes-length` 而不是 `string-length` 决定,以更好地匹配贴吧后端所使用的裁剪方法
- `admin_listen.Context` 中针对楼层回复的长文本补全效果更稳定了
- `admin_listen.Listener` 现在使用 `getattr` 而不是 `self._cmd_map` 来获取用于执行指令的函数,这可以节约内存、精简代码并提高初始化效率
- 云审查现在使用 `CloudReview.Punish` 来生成处罚并自动获取生成处罚时的行数

2.4.0

贴吧接口层

新增特性

- `Browser.get_posts` 新增参数 `is_fold` 以支持获取被折叠的楼层
- `_types.Posts` 新增字段 `has_fold` 来判断当前主题帖是否存在被折叠的楼层

变化特性

- `_api.Browser` 及其子类的初始化过程被移动到异步函数 `_init` 中,以为适应 `Python 3.11` 的新规范做准备
- 贴吧客户端版本号由 `12.23.1.0` 回退至 `12.12.1.0` 以避免楼层折叠
- 对 `Python` 版本的最低需求提高至 `3.10` 以使用最新特性 [`PEP 604 - Allow writing union types as X | Y`](https://peps.python.org/pep-0604/) 和 [`PEP 634 - Structural Pattern Matching: Specification`](https://peps.python.org/pep-0634/)
- 使用 [`protobuf v3.20.0`](https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.0) 优化 `protobuf` 的序列化/反序列化代码

应用接口层

新增特性

- `reviewer.Reviewer` 新增多个偏函数以提升数据库操作的编程效率

变化特性

- `database.Database` 和 `_logger._Logger` 现在采用更优雅的单例模式。并使用 `atexit` 执行析构

应用层

新增特性

- 新增指令 `block1` 用于将指定用户封禁一天
- 指令 `block` `block3` `block1` `unblock` `black` `white` `reset` `set` `get` `tb_black` `tb_reset` 现在支持使用包含 `user_id` 的字符串指定操作目标。详细使用方法请参考 [`wiki`](https://github.com/Starry-OvO/Tieba-Manager/wiki/%E6%8C%87%E4%BB%A4%E7%AE%A1%E7%90%86%E5%99%A8%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E4%B9%A6#block--block3-%E5%B0%81%E7%A6%81)
- 得益于新设计 `Context._init_full()` ,现在字符数量超过30的长指令会被完整解析

变化特性

- 指令类型 `cmd_type` 和指令参数列表 `args` 的解析方法被移动至 `Context` 并使用懒加载模式解析
- 指令 `holyshit` 的发送内容优化
- 指令 `ping` 现在会一并检查数据库的连接状态
- 指令管理器不再会修改 `listen_config.json`

bug修复

- 修复了一个数据库连接超时断开的bug,现在在执行任何指令前都会 `ping` 一次数据库并尝试重连

2.3.4

贴吧接口层

新增特性

- `_api.Browser` 的 `get_ats` `get_homepage` `search_post` `get_recom_list` 四个接口现在会使用新增的 `_types._json_decoder_hook` 来调整 `json` 格式的解析后动作。现在所有 `bool(obj)` 返回 `False` 的对象(如 `''` `[]` `{}` )都会被 `_json_decoder_hook` 置为 `None` 。通过这个调整, `protobuf.json_format.ParseDict` 方法将不再对各种空对象报无法转换的错误,由此可以大幅节约类型自省所需的代码量并提升解析性能
- `PbContent.proto` 新增 `src` `big_src` 字段以兼容上述四个接口返回的 `json` 格式信息

变化特性

- 明确指定 `ClientResponse.json` 使用的编码和 `Content-Type` 以提高解析性能
- `aiohttp.ClientSession` 的读缓存区大小由默认的 `64KiB` 调整为 `128KiB`
- `_types.UserInfo` 的属性 `gender` 现在也会考虑 `proto.sex` 的取值
- `_types.FragImage` 的属性 `src` 现在也会考虑 `proto.src` 的取值,属性 `big_src` 现在也会考虑 `proto.big_src` 的取值
- `Browser._id2user_info` 中 `UserInfo.gender` 字段的解析性能获得改进
- `GetBawuInfoResIdl.proto` 中 `BawuRoleInfoPub` 的字段 `user_id` 和 `user_name` 的命名调整为 `id` 和 `name` 以兼容 `User.proto` 中 `User` 的命名方式
- 注释改进
- 改进 `reviewer.RegularExp` 中的一些审查正则

应用接口层

新增特性

- 表 `tid_water` 新增对 `is_hide` 字段的索引
- 表 `user_id` 现在同时承担了黑名单记录和指令权限记录的功能。字段 `is_white` 调整为 `permission` ,新增字段 `note` 来备注记录。并新增了对 `permission` `record_time` 字段的索引

变化特性

- `database.Database` 的接口 `get_user_ids` 被新接口 `get_user_id_list` 替代,以支持 `holyshit` 指令的新版本实现
- `reviewer.Reviewer` 的接口 `update_user_id` 和 `del_user_id` 被移除

应用层

新增特性

- 新增指令 `get` 用于获取用户信息和标记信息
- 使用 `admin_listen.Context` 精简指令管理器代码

变化特性

- 现在指令 `block` `block3` `drop` `drop3` 可以通过额外的可选参数 `note` 给出封禁理由。
- 指令 `mysql_black` 更名为 `black` , `mysql_white` 更名为 `white` , `mysql_reset` 更名为 `reset` , `set_access` 更名为 `set` , `blacklist_add` 更名为 `tb_black` , `blacklist_cancel` 更名为 `tb_reset`
- 现在指令 `black` `white` `exdrop` `set` 可以通过额外的可选参数 `note` 给出标记理由。这个标记理由会被保存到数据库以便后续查阅
- 指令 `black` `exdrop` 会将对应用户的权限级别设置为 `-5` ,对于云审查工具而言权限级别 `-5` 往往意味着**十循**。而由于黑名单记录和指令权限记录已经被整合到同一数据表,为确保权限安全,现在指令 `black` `white` `reset` `exdrop` 无法修改权限级别大于等于 `2` 的用户的权限级别。例如一个权限级别为 `3` 的 `用户B` 对权限级别为 `5` 的 `用户A` 使用 `exdrop` ,那么只有删帖与封十天这两项操作会被执行,而修改 `用户A` 的权限级别为 `-5` 的操作会被拒绝。如需要修改这部分用户的权限级别,请使用 `set` 指令

2.3.3

贴吧接口层

变化特性

- `_types._Fragment` 现在支持空参构造
- 现在 `_types.Fragments` 的属性 `texts` `emojis` `imgs` `ats` `links` `tiebapluses` 不再采用懒加载
- 使用 `yapf` 和 `flake8` 大面积重规范代码

bug修复

- 修复了由于 `_types._Fragment` 不允许空参构造导致取用 `_types.Fragments` 属性 `voice` 时报错的bug

应用层

新增特性

- 公开[`嘉然吧`](https://tieba.baidu.com/f?kw=%E5%98%89%E7%84%B6&ie=utf-8)使用的云审查脚本 [`cloud_review_diana.py`](https://github.com/Starry-OvO/Tieba-Manager/blob/c6a3d667b4062bdf8d65f36d9a59d38c58bdca4d/cloud_review_diana.py)
- 公开[`宫漫吧`](https://tieba.baidu.com/f?kw=%E5%AE%AB%E6%BC%AB&ie=utf-8)使用的云审查脚本 [`cloud_review_hanime.py`](https://github.com/Starry-OvO/Tieba-Manager/blob/c6a3d667b4062bdf8d65f36d9a59d38c58bdca4d/cloud_review_hanime.py)

2.3.2

贴吧接口层

新增特性

- 新接口 `Browser.search_post` 用于在吧内搜索回复
- 新增 `_types.Search` `_types.Searches` 用于支持新接口 `Browser.search_post`

变化特性

- `Browser._name2user_info` 更名为 `Browser._id2user_info` 并新增了一个它的降级版 `Browser._id2basic_user_info`
- `_types._Container` 的数据成员 `_fid` 被移动到子类型中

bug修复

- `Browser._id2user_info` 现在可以正确获取用户的贴吧vip信息
- 当输入参数 `user_proto` 的对应字段为空时 `UserInfo.priv_like` `UserInfo.priv_reply` 可以被赋予正确的默认值而不是 `0`
- `Thread.is_share` 现在会被正确地执行空参构造
- `proto` 定义中 `ThreadInfo` 与 `OriginThreadInfo` 存在的字段差异导致对某些 `property` 取值时会出现 `AttributeError` ,现在 `Thread.share_origin._raw_data` 不再会被赋值

功能接口层

新增特性

- `Reviewer` 重载了 `__aenter__` 方法,明确属性 `qrdetector` `database` 的返回值以获得更佳的代码补全提示
- 在 `SQL` 插入失败时 `Database._conn` 会执行回滚

应用层

新增特性

- 使用类封装 `Handler` 优化实现
- 新指令 `register` 允许优秀创作者自助获取当前吧的 `1` 级权限,原 `register` 指令更名为 `active`

变化特性

- `listen_config.json` 现在允许为每个吧设置独立的 `speaker_key` 请注意新旧版本的格式变化
- 指令 `set_access` 现在允许只使用一个参数以设置指令所在主题帖楼主的权限级别
- 指令函数 `cmd_default` 加入彩蛋

2.3.1

贴吧接口层

新增特性

- `_types.py` 中的非原生数据类型部分支持 `__repr__` 方法以方便直观调试
- `User.proto` 新增字段 `new_tshow_icon` 以支持从 `user_proto.new_tshow_icon` 初始化 `UserInfo.is_vip`

变化特性

- `Browser.get_homepage` 和 `Browser.get_forums` 接口现在使用自适应参数 `_id` 标识用户
- `PbContent.proto` 删除无用字段 `src` `big_src` `big_size` `imgtype` `width` `height` `packet_name` `e_type` 以提高解析性能
- app版本号由 `12.22.1.0` 升级到 `12.23.0.1`

bug修复

- 现在 `_types.UserInfo` 会优先尝试从 `user_proto.new_tshow_icon` 初始化 `UserInfo.is_vip` ,这意味着在获取回复/楼中楼列表时可以获取正确的用户vip信息

功能接口层

变化特性

- `mysql.py` 更名为 `database.py` , `mysql.MySQL` 更名为 `database.Database`
- `cloud_review.py` 更名为 `reviewer.py` , `cloud_review.CloudReview` 更名为 `reviewer.Reviewer`
- `database.Database` 现在会使用 `pymysql` 提供的格式化方法格式化参数,以提高对SQL注入攻击的抵抗能力
- `reviewer.Reviewer` 的类成员 `cv2.QRCodeDetector` 和 `database.Database` 现在会采用懒加载模式加载。此举可以大幅提高轻量级应用的加载速度

Page 14 of 20

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.