Aiotieba

Latest version: v4.4.5

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

Scan your dependencies

Page 14 of 19

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` 现在会采用懒加载模式加载。此举可以大幅提高轻量级应用的加载速度

2.3.0

贴吧接口层

新增特性

- 新接口 `Browser.tieba_uid2user_info` 用于从 `tieba_uid` 反查完整用户信息
- 新增 `GetUserByTiebaUidReqIdl.proto` `GetUserByTiebaUidResIdl.proto` 用于支持新接口 `tieba_uid2user_info`
- `Post.proto`中 `Post` 新增字段 `author` 以支持从 `post_proto.author` 初始化 `Post.user` 的方法
- `_types.Thread` 新增字段 `is_good` 表示帖子是否精品帖 `is_top` 表示帖子是否置顶 `is_hide` 表示帖子是否已被屏蔽 `is_livepost` 表示帖子是否置顶话题
- `cloud_review.CloudReview` 重载了父类 `Browser` 中的 `get_basic_user_info` 和 `get_fid` 函数,现在它会使用 `mysql` 缓存大幅缩短重复的请求耗时
- 新增两个公用数据库表 `forum` 和 `user` 以支持 `CloudReview` 的 `mysql` 缓存功能

变化特性

- `_types.py` 中的非原生数据类型成员现在会全部使用 `Lazy Load` 懒加载,这能显著提升解析效率和内存分配效率,并在大多数不需要完整加载的场景下节约内存和CPU资源
- `fid_dict` 现在是 `Browser` 的类静态成员
- 现在 `mysql.py` 中的函数都会提供更详细的错误信息
- `ThreadInfo.proto` 中两个无用字段 `is_global_top` 和 `is_god` 被移除
- 日志系统性能优化,现在日志会在本地时间的凌晨零点滚动文件

bug修复

- `_types.Posts.thread.share_origin` 现在可以被正确初始化,这意味着在获取回复列表时可以同时获取主楼的投票内容
- 现在 `_types.Post` 会优先尝试从 `post_proto.author` 初始化 `Post.user` ,这意味着在获取楼中楼列表时可以同时获取层主的用户信息
- `_types.Comments.post`的 `fid` `tid` 字段现在会被赋予正确的非空值

应用层

变化特性

- 现在指令 `delete` `drop` `drop3` `exdrop` 可以作为楼中楼对所在回复或者作为转发了另一主题帖的主题帖对被转发的主题帖产生作用,详情请见[`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#delete-%E5%88%A0%E5%B8%96)
- 现在指令 `block` `block3` `unblock` `blacklist_add` `blacklist_cancel` `mysql_black` `mysql_white` `mysql_reset` 可以使用包含 `tieba_uid` 的字符串作为参数,详情请见[`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)
- `ping` 指令的最低权限要求调整为 `1 非吧务的优秀创作者`

2.2.0

贴吧接口层

新增特性

- 接口 `Browser.get_posts()` 允许以“热门序”或“只看楼主”模式获取主题帖下的回复
- `PbPageReqIdl.proto` 中 `DataReq` 新增字段 `lz` 以支持接口 `Browser.get_posts()` 的“只看楼主”模式
- 字段 `is_thread_owner` 更名为 `is_thread_author` 以匹配 `author_id` 的命名方式
- `_types.Thread` 新增字段 `share_num` 用于表示主题帖的分享数
- `_types.Reply` 新增字段 `is_floor` 用于判断回复是否是楼中楼
- `_types.At` 新增字段 `is_floor` 用于判断是否位于楼中楼,字段 `is_thread` 用于判断是否位于主题帖的首楼

变化特性

- 现在 `_types.Thread` 会优先从 `thread_proto.author.id` 推断 `Thread.author_id` 的值
- `Thread.vote_info` 的默认值调整为 `None` 以减少频繁进行的空参构造的资源消耗

Bug修复

- 现在 `_types.Post` 会为未知字段正确指定默认值
- `_types.Page` 会优先从 `current_page` 和 `total_page` 推断 `Page.has_more` 和 `Page.has_prev` 。此举解决了从 `protobuf` 构造的 `_types.Comments` 中 `has_more` 和 `has_prev` 始终为 `False` 的bug,并间接解决了指令管理器中 `vote_stat` 指令无法正确翻页计票的bug

功能接口层

变化特性

- 数据库表名 `pid_whitelist_{tieba_name_eng}` 更改为 `id_{tieba_name_eng}` 并新增 `id_last_edit INT NOT NULL` 字段用于判断某个`id` ( `tid` `pid` )指向的对象( `thread` `post` `comment`)的子结点是否发生更改。对于 `thread` , `id_last_edit` 的建议赋值是 `last_time` ;对 `post` , `id_last_edit` 的建议赋值是 `reply_num` ;对 `comment` , `id_last_edit` 的建议赋值是 `0` 。这一改动允许云审查工具在判断到子结点无变化时跳过所有针对子结点的审查步骤。在优化得当的情况下,云审查性能可以有极大提升。与原数据库表名 `pid_whitelist_{tieba_name_eng}` 相关的所有函数名称都已发生更改,请注意比较新旧版区别

应用层

新增特性

- 云审查范例[`cloud_review_asoul.py`](https://github.com/Starry-OvO/Tieba-Manager/blob/54dba2ed3d928ee52ed2b8c974bf63749b979a28/cloud_review_asoul.py)已经基于asyncio实现更深入的异步优化
- 云审查范例[`cloud_review_asoul.py`](https://github.com/Starry-OvO/Tieba-Manager/blob/54dba2ed3d928ee52ed2b8c974bf63749b979a28/cloud_review_asoul.py)已经基于数据库表 `id_{tieba_name_eng}` 的新字段 `id_last_edit` 的相关设计完成缓存优化。最新的性能测试请看[`wiki`](https://github.com/Starry-OvO/Tieba-Manager/wiki/%E4%BA%91%E5%AE%A1%E6%9F%A5%E5%B7%A5%E5%85%B7%E7%AE%80%E4%BB%8B)
- 新增指令 `drop3` 用于删除主题帖并封禁楼主3天

2.1.2

贴吧接口层

新增特性

- 新接口 `Browser.get_statistics` 获取吧务后台的统计数据
- 新接口 `Browser.get_replys` 获取回复列表
- 新增 `_types.Reply` `_types.Replys` `ReplyMeReqIdl_pb2.py` `ReplyMeResIdl_pb2.py` 用于支持新接口 `Browser.get_replys`

变化特性

- `_types.At` 现在是 `_types._Container` 的子类
- `_types._Container.contents` 的定义被移动到子类型中

Bug修复

- 修复了 `_types.Posts` 初始化过程中 `thread_owner_id` 被错误指向 `posts.thread.user` 而不是 `posts.thread.user.user_id` 导致的 `post.is_thread_owner` 字段值异常
- 修复了 `_types.Posts.__init__` 中的一些命名错误
- `Browser.blacklist_add` 和 `Browser.blacklist_cancel` 现在能正确解析返回的json

应用层

新增特性

- 指令管理器允许定义多参数指令
- 若在指令管理器运行过程中修改了 `listen_config.json` ,指令管理器在退出时会放弃将更改写入 `listen_config.json`
- 指令管理器新增鉴权功能,现在可以为用户指定指令权限级别。[`listen_config-example.json`](https://github.com/Starry-OvO/Tieba-Manager/blob/main/config/listen_config-example.json)中 `access_user` 字段的值类型由 `list` 变为 `dict` 以便预设权限级别,请注意比较新旧版的区别。各指令的权限级别请参考[指令管理器说明书](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#%E6%9D%83%E9%99%90%E7%BA%A7%E5%88%AB%E8%AF%B4%E6%98%8E)
- 新增指令 `vote_stat` 用于统计投票结果 `set_access` 用于设定用户的权限级别
- 新装饰器 `_check` 用于实现鉴权和参数数目检查的功能

变化特性

- 优化指令解析函数 `Listener._parse_cmd` ,使用函数 `str.find` 替代函数 `re.match` 以提高解析性能
- 优化异步方法,现在指令管理器允许在不阻塞主循环的情况下并发IO时间超长的功能如 `Listener.cmd_vote_stat`

2.1.1

贴吧接口层

新增特性
- 新接口 `Browser.get_recover_list` 获取待恢复的帖子列表
- 新增 `_types.Page` 用于表示页码位置

变化特性
- 用 `_types.Page` 替代原来 `current_page` `total_page` 的功能
- 弃用函数 `Browser.blacklist_cancels`
- `Browser.refuse_appeals` 的内部函数 `appeal_handle` 现在会被异步执行
- `Browser.get_rank` 更名为 `Browser.get_rank_list` / `Browser.get_member` 更名为 `Browser.get_member_list`
- `Browser.get_recom_list` `Browser.get_rank_list` `Browser.get_member_list` 的返回方式由 `AsyncIterator` 变更为 `Coroutine` 以更好地支持并发。其中 `Browser.get_rank_list` 的并发案例见 [`data_spider.py`](https://github.com/Starry-OvO/Tieba-Manager/blob/95419d98d8aa3d153be48ca1b696079276d311a5/data_spider.py)
- 优化了 `_types._Fragment` 的泛型类 `_TFrag` 的定义
- 优化了 `_types.py` 中的注释
- 使用海象运算符 `:=` 精简代码

Bug修复

- 协程返回类型现在是正确的了
- 现在 `_types._Container` 的子类型在空参构造时,其类成员也会被正确地执行空参构造
- 修复了 `Browser.set_privacy` 中 `Browser.get_posts` 未被 `await` 的bug

应用层

新增特性
- 指令管理器新增指令 `refuse_appeals` 用于一键拒绝所有解封申诉

Page 14 of 19

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.