Skip to content

v2.12

Latest

Choose a tag to compare

@magic-cucumber magic-cucumber released this 15 Aug 03:02

Bug 修复

  • 修复 TokenAutoRefreshPluginV2 解析刷新令牌响应失败的问题。现在同时支持令牌字段直接位于响应根节点,或嵌套在 response 对象中的响应格式;刷新成功后会使用新令牌重试原请求。

破坏性变更

  • TokenStorage 改为挂起接口。原有的
    fun getToken(TokenType) 和 fun setToken(TokenType, String)
    必须改为 suspend 实现,并新增以下方法:

    suspend fun getExpireTime(): Long?
    suspend fun setExpireTime(expire: Long?)
    suspend fun getProfile(): SimpleMeProfile?
    suspend fun setProfile(profile: SimpleMeProfile)

    自定义存储器仍通过 PixivAccountFactory.newAccountFromConfig { storage = ... } 传入,但所有存储操作必须在协程中执行。expire 使用 Unix epoch 毫秒;登录验证 PixivVerification.verify(...) 和自动刷新成功后会写入新的 access token、refresh token、过期时间及 SimpleMeProfile。searchIllust(...) 与 searchNovel(...) 会优先读取缓存的 profile,缓存为空时调用 getCurrentUserSimpleProfile() 并写回缓存。

  • 刷新令牌异常类型由拼写错误的 InvaidRefreshTokenException 重命名为 InvalidRefreshTokenException。调用方需要同步更新 import、catch 类型及测试;新类型支持可选的 message 和 cause 参数。

  • Illust.LimitLevel 新增 LIMIT_UNKNOWN。illust.limitLevel 现在按图片链接前缀识别限制类型:r18g_、r18_、mypixiv_、sanity_level_、unviewable_ 和 unknown_,其中未知或不可查看的限制映射到 LIMIT_UNKNOWN。此前仅识别固定的 4 个图片 URL;使用穷举 when 处理 LimitLevel 的调用方必须增加 LIMIT_UNKNOWN 分支,illust.isLimited 也会覆盖这些新增限制。