Skip to content

Releases: lumina37/aiotieba

v2.9.0

20 Aug 12:53
b09d47a
Compare
Choose a tag to compare

贴吧接口层

变化特性

  • client.Client 中,针对 BDUSS_key BDUSS STOKEN 等用户身份相关的属性的重复初始化会被拒绝并抛出警告

应用接口层

新增特性

  • _reviewer.py 新增审查脚手架设计,原有业务流程可被大幅精简

变化特性

  • database.Database 新增参数 fname 用于表示目标操作贴吧,且成员函数不再包含 fname 参数

应用层

新增特性

  • 使用 pyproject.toml 管理项目依赖和包构建流程

v2.8.3

16 Aug 10:32
26c5b86
Compare
Choose a tag to compare

贴吧接口层

新增特性

  • client.Client 新增接口 del_threads 用于批量删除主题帖, del_posts 用于批量删除回复, agree disagree unagree undisagree 分别用来点赞、点踩、取消点赞、取消点踩
  • typedefs.UserInfo 新增字段 sign 用于存放用户的个性签名
  • typedefs._Container 以及它的派生类现在都是 Hashable 对象

变化特性

  • client.Client 的各个 ClientSession 以及 TCPConnector 成员现在会采用惰性生成
  • typedefs.FragLinktext 属性现在会返回链接本身而不是链接标题

bug修复

  • python/cpython#92841 修复了 asyncio_ProactorBasePipeTransport.__del__ 中当SSL链接关闭时会出现的 RuntimeError: Event loop is closed

应用层

变化特性

  • 优先使用 Client.del_post 删除主题帖,这使得视频帖可以被删除
  • 优化水经验脚本

v2.8.2

30 Jul 13:10
80943c0
Compare
Choose a tag to compare

贴吧接口层

新增特性

  • 在内存缓存中新增 fidfname 的映射

变化特性

  • 所有不应被用户直接调用的私有函数现在都会在失败时直接抛出错误而不是返回 False
  • 优化 typedefs 中各个类型的魔术方法的速度

bug修复

  • 修复了 Client._id2user_info 中用户吧龄为 - 时会无法被转换为浮点数的bug

应用接口层

变化特性

  • reviewer.Reviewer 不再继承自 client.Client 。而仅仅会实例化一个 Client 作为成员变量,并提供一些 Client 中的热点函数的shortcut
  • Reviewer.database 更名为 Reviewer.db
  • 默认数据库名由 tieba_cloud_review 更改为 aiotieba

应用层

变化特性

  • 优化指令管理器的代码结构
  • 优化文档
  • 移除 vote_stat 指令

v2.8.1

19 Jul 00:12
9e610a6
Compare
Choose a tag to compare

贴吧接口层

新增特性

  • client.Client 现在会检查 BDUSSSTOKEN 的长度是否合法
  • client.Client 现在会使用异步上下文管理器正确执行 aiohttp.ClientResponse 的清理操作

变化特性

  • 现在 aiotieba 仅会在工作目录下查找配置文件 aiotieba.toml 而不是在脚本同级目录下查找 config/config.toml
  • aiotiebalogger 更名为 logtypes 更名为 typedefs 。同时将 JSON_DECODER 拆分到 helpers
  • 优化请求所需的 protobuf 的字段装填方式
  • 删除不需要的 protobuf 字段定义
  • 使用 typing 泛型支持优化类型定义
  • 优化 Client.get_image 。现在对headers的分析会在读取body前进行
  • WebsocketResponse 使用 asyncio.Future 替代 asyncio.Event
  • WebsocketResponse.req_id 的生成方式得到简化
  • 优化日志记录格式

bug修复

  • 修复了 Client._id2user_info 中当用户粉丝数超过 10,000 时字符串 x.x万 无法被转换为浮点数所导致的bug
  • 修复了转发来源帖的声音信息获取失败的bug

应用层

变化特性

  • 使用 pyproject.toml 管理第三方库 pytestblack 的行为
  • 指令管理器更名为 cmd_handler.py 并使用工作目录下的 cmd_handler.toml 作为配置文件,而不是在脚本同级目录下查找 config/listen_config.toml
  • 改用 vtuber吧 的云审查作为范例
  • 使用 pytest-asyncio 重写测试

v2.8.0

07 Jul 03:29
8127b0d
Compare
Choose a tag to compare

贴吧接口层

新增特性

  • types 中原来的 Forum 被重命名为 BasicForum 并新增一系列容器定义,如 RankUser RankUsers MemberUser MemberUsers 等,以支持对 client.Client 中各个类方法的返回值优化工作
  • typesBasicUserInfonick_name 属性被移动至 UserInfo 。现在 BasicUserInfo 仅包含不变量。 UserInfo 的类属性被大幅扩充
  • client.Client 中,方法 get_bawu_dict 更名为 get_bawu_info
  • client.Client 中,一系列方法的返回值得到优化,同时附带名称变更,如 get_rank_list 更名为 get_rank_users 并返回 RankUsers 而不是原来的 Tuple[List[Tuple[str, int, int, bool]], bool]
  • 由于官方对贴吧吧务后台进行了优化,仅传递 portrait 参数的封禁请求以及仅传递 user_id 参数的解封请求都不再会导致被封用户的头像和主页链接丢失,因此方法 Client.blockClient.unblock 的参数 user (BasicUserInfo) 变更为 _id (str | int) 以允许更快捷的方法调用
  • 由于官方对解封申诉相关的技术栈进行了优化,并在官方层面支持批量申诉处理。现在 Client.get_unblock_appeals 方法使用 /mo/q/getBawuAppealList 来获取 json 格式数据,而相对地,原有的 Client.get_unblock_appeal_list 方法使用 /mo/q/bawuappeal 来获取 ajax-html 格式数据。现在 Client.handle_unblock_appeals 使用 /mo/q/multiAppealhandle 来实现批量申诉处理
  • 新增 Client.get_portrait 来获取用户头像,支持小、中、原图三种尺寸
  • reviewer.Reviewer 使用类属性 img_hasher 来保留图像哈希缓存区,避免重复申请内存。该优化需要 opencv-contrib-python>=4.6.0.66 支持
  • 进一步推广使用限定位置形参和限定关键字形参来规范函数调用时的语义表达

变化特性

  • 代码即文档的思想出发,广泛使用 property 来为类属性添加注释,同时设置一批只读属性
  • 由于批量申诉处理得到了官方层面的支持,因此 reviewer.Reviewer 中的方法 refuse_unblock_appeals 被弃用

应用层

新增特性

  • 新指令 recover 用于恢复删帖
  • 由于 client.Client 中的方法变动,调整了教程文档的内容

v2.7.5

25 Jun 05:42
1bba468
Compare
Choose a tag to compare

贴吧接口层

新增特性

  • client.Client 新增 get_forum_square 用于获取吧广场的贴吧列表, get_self_public_threads 用于获取本人发布的公开状态的主题帖列表, dislike_forum 用于屏蔽贴吧使其不再出现在首页推荐列表, undislike_forum 用于取消对贴吧的屏蔽, get_self_dislike_forum_list 用于获取屏蔽吧列表。同时新增多个 proto 文件以支持上述功能
  • Client.get_self_info 现在会优先使用缓存
  • 使用 yarl.URL 优化url可读性和解析速度

变化特性

  • 由于使用了 weakref.WeakValueDictionary[] 语法以及 str.removeperfix 方法,最低支持的 Python 版本提高至 3.9
  • Reviewer.compute_imghash 现在使用 averageHash 替代 pHash 以提高针对图像压缩算法的鲁棒性
  • 配置文件格式由 yaml 更换为 toml 以提高纯文本编辑器下的编辑体验

应用接口层

变化特性

  • Databasetid 记录表的功能更抽象化,不再是仅能记录临时屏蔽状态的表

应用层

新增特性

v2.7.4

19 Jun 16:12
0c19c54
Compare
Choose a tag to compare

贴吧接口层

变化特性

  • client.Sessions 的对应功能并入 client.Client
  • 使用 weakref 优化 client.WebsocketResponse 的等待方法
  • 大量细节优化

bug修复

  • types.ShareThread 现在可以正确组装 text 属性

应用层

变化特性

  • 现在指令 img_set img_resetindex 参数缺省时会默认将封锁级别应用到指令所在位置的父级的所有图片上,即允许批量设置

v2.7.3

08 Jun 15:44
4866653
Compare
Choose a tag to compare

贴吧接口层

新增特性

  • 新增属性 is_ws_aviliable 来判断 websocket 是否可用,避免长连接 keep-alive 超时的问题
  • Clinet 新增函数 get_user_threads 来获取用户发表的处于公开状态的主题帖
  • types.FragLink 新增属性 url 用于解析外链。原 link 属性更名为 raw_url
  • ThreadInfo.proto 新增字段 fnametypes._BasicContainer 新增属性 fname 用于记录贴吧名

bug修复

  • 由于长连接 keep-alive 超时的问题被解决,现在基于 websocket 的私信功能已经完全稳定
  • 此前 Client.get_image 会在 cv2.imdecodelibpngCRC 校验失败时返回 None ,现在该函数会始终返回 numpy.ndarray 实例
  • types.Reply 现在会正确执行空构造

v2.7.2

30 May 14:28
5188650
Compare
Choose a tag to compare

贴吧接口层

新增特性

  • 当无法在指定位置找到配置文件时, aiotieba 将尝试创建配置文件样例

bug修复

  • Client 现在可以正确地分发 websocket 的返回数据。发送 websocket 请求时,一个 client.WebsocketResponse 实例将被构造并被添加至等待队列。 _ws_dispatch 会将返回数据根据唯一的 request_id 填充到对应的 WebsocketResponse 中。最后用户通过异步函数 WebsocketResponse.read 提取数据
  • 修复了 CommitPersonalMsgReqIdl.proto 中一个字段编号错误的bug

应用层

新增特性

  • 新增了一些教学案例
  • vote_stat 指令现在需要至少3个参数

bug修复

  • 修复了 refuse_appeals 指令的一个bug,现在不再由 Reviewer.refuse_unblock_appeals 的返回值判断指令是否执行成功

v2.7.1

29 May 13:09
016990a
Compare
Choose a tag to compare

贴吧接口层

新增特性

  • types.UserInfo 新增字段 is_bawu ip 用于判断用户是否吧务以及获取ip归属地
  • api.Client 新增接口 unlike_forum 用于取关贴吧
  • 优化 Clientclose 流程
  • 注释与命名细节的优化

已知bug

  • websocketreceivereconnect 流程仍存在bug