Skip to content

Releases: sjshb57/TwitterArchiverApp

v1.3.0

Choose a tag to compare

@sjshb57 sjshb57 released this 24 Aug 08:47

[1.3.0] 更新日志:

  • 新增管理端「仓库健康」页:组织下全部仓库的最近更新时间、体积、轮转超期判定,可按多种维度排序,支持查看私有仓库

  • 新增全站搜索的紧凑结果条,直接显示账号、时间与命中上下文

  • 新增繁体中文,并支持 Android 13+ 系统设置里的「按应用设定语言」

  • 新增 CI 工作流:每次提交自动跑构建、单元测试、detekt 与 lint

优化改进

  • 全站搜索性能大幅提升:查询串不含 ASCII 字母时跳过大小写折叠,60 万条推文上的实测耗时从 700 ms 降到 56 ms

  • 日期字符串改用去重池,62 万条推文的显示日期只有约 3600 个不同取值,省下约 20 MB 内存

  • 图片加载库 Coil 升级到 3.x,网络层与应用共用同一个 OkHttp 实例

  • 网络栈整合:所有请求共享连接池与超时策略,视频下载改为可随页面退出取消

  • GitHub 接口错误改为可读的说明(令牌过期、配额耗尽、权限不足、工作流版本过旧等),替代原始状态码

  • 全站索引分片与 meta 落盘改为原子写入,中途退出不会留下半截文件

  • 分片下载完成后先校验内容哈希再落盘,断流的残件不会先报一次错再自愈

  • 本地分片改为一次读取同时用于校验与解析,冷启动的磁盘读取量减半

  • 单账号索引的离线读取改为流式解析,不再把整份 JSON 拼成字符串后再反序列化

  • 离线索引的按月落盘改为整目录原子替换,中途退出不会留下新旧混杂的分片

  • 仓库层改为全应用单例并加入请求去重,同一账号的并发请求只下载一次;内存缓存加上限,「清理缓存」现在同时清理磁盘与内存

  • 账号时间线的日期树与跳转索引改到后台线程计算,大账号切换标签不再卡顿

  • 主题改为启动前镜像写入,消除冷启动时的主题闪烁

  • 全站时间线的月份下载与删除统一串行化,避免并发导致的内存与磁盘状态不一致

  • 后台轮询统一收拢为跟随生命周期的组件,切到后台不再继续消耗接口配额

  • 最低系统版本提升到 Android 11,仅保留 arm64 架构

  • 接入 detekt 静态检查,并新增 32 个单元测试覆盖排序、搜索、刷新等易回归的逻辑

问题修复

  • 修复推文按时间戳字符串排序,导致老格式(Wed Sep 09 ... 2020)的推文整片排到错误位置。全站时间线、账号时间线、图片页与回复链均已修正

  • 修复升序排列时,时间解析失败的推文会全部排到最前面

  • 修复管理端上传大于 1 MB 的 Banner 必定失败

  • 修复触发工作流时分支写死为 main,默认分支为 master 的仓库无法触发

  • 修复全站时间线下拉刷新实际不生效

  • 修复全站时间线下拉刷新后,日期面板、已下载月份标记与全站总数被清空且不再恢复

  • 修复 GitHub Pages 返回 404 页面时,其 HTML 内容会被当作索引数据处理

  • 修复设置页「清理缓存」只清磁盘不清内存,清理后仍在使用旧数据直到重启

  • 修复繁体中文设备上应用名仍显示简体

  • 修复阅读器页的刷新按钮实际仍在读取缓存

  • 修复二级页面的图片预览浮层重复渲染

  • 修复列表中出现重复 ID 导致的崩溃

  • 修复管理端批准申请后的建档流程与手动建档不一致

  • 修复 Banner 上传失败仍被标记为已完成

  • 修复页面退出后仍继续执行的网络与磁盘操作

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@sjshb57 sjshb57 released this 06 Aug 22:17
4809583

[1.2.0] 更新日志:

  • 新增全站索引月度分片:服务端按月切分,客户端只在需要时下载对应月份,不再一次性拉取整个索引

  • 新增全站时间线日期面板:副标题「按日期」进入,年 → 月 → 日三级浏览,可筛选某一天或整月

  • 新增按月 / 按年下载历史推文,下载中显示实时百分比,已下载的长按可删除

  • 新增全站时间线显示全站推文总数,与本地已下载的月份无关

  • 新增双击顶部标题回到列表顶部(账号列表页与全站时间线页),与双击底栏 Tab 一致

  • 新增索引加载失败时在页面上显示具体原因,点击可消除

  • 管理端新增建档中断自动续做:仓库创建成功即写入记录,setup 未触发成功时下次进入本页自动补触发

  • 管理端新增移除新建记录的二次确认与撤销条,连续移除时 3 秒内不重复打扰

  • 管理端「所有存档」页新增状态自动刷新与刷新按钮

优化改进

  • 全站时间线冷启动只加载分片清单与近期推文,历史内容改为按需下载

  • 全站索引分片本地留存,冷启动直接读盘,断网也能翻阅已下载的月份

  • 索引分片缓存独立于「清理缓存」,清缓存不再误删用户主动下载的历史月份

  • 跨账号回复索引改为流式解析,不再把整份文件与 JSON 树同时留在内存

  • 移除网络请求的总时长限制,改由 socket 超时兜底,大文件在慢速网络下不再被误判超时

  • 管理端建档改为轮询工作流就绪状态,替代固定等待 6 秒

  • 管理端触发工作流失败时给出可操作的说明,替代原始接口报错

  • 管理端「所有存档」列表按状态分组排序:未知 → 出错 → 运行中 → 已完成 → 无状态

  • 管理端完整性检测结果调整顺序为 头像 → Banner → 置顶推文

  • 账号筛选统一显示为「已筛选 N 人」

  • 进入存档详情页时的自动加载失败不再弹出提示

  • 移除未使用的 navigation-compose 依赖

问题修复

  • 修复推文日期解析只认 ISO 格式,导致周二、周四的老格式推文日期显示为空、排序错乱

  • 修复删除已下载月份后,推文仍留在时间线上

  • 修复「删除指定推文」功能完全不可用(工作流未声明目标仓库参数,且检出的不是目标仓库)

  • 修复「仅重建索引」在旧版工作流的仓库上失败时只显示原始接口报错

  • 修复建档过程中切换到后台,仓库已创建但应用内不留任何记录

  • 修复「所有存档」页的运行状态永不刷新,一旦标记为运行中就不再变化

  • 修复索引加载失败的提示浮在页面最上方

  • 修复合并索引分片时在主线程排序

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@sjshb57 sjshb57 released this 28 Jul 06:03

[1.1.0] 更新日志:

  • 新增离线阅读:本地按月缓存推文索引,配合清单哈希比对与 HTTP Range 增量更新,断网可继续翻阅已浏览过的账号
  • 新增全站时间线离线兜底,断网时回读本地副本
  • 新增推文正文链接识别,可点击跳转(显示简短形式,点击打开完整地址)
  • 新增视频封面(取第 1 秒画面),点击进入全屏播放
  • 新增个人推文页下拉刷新
  • 新增 Reader 页顶栏刷新按钮
  • 新增设置页「清理缓存」,显示离线索引与图片缓存占用
  • 管理端新增「修复账号头像」,用主头像补齐缺失的头像文件
  • 管理端完整性检测新增「头像缺失」一项,可就地一键修复
  • 管理端补齐 home 工作流入口:生成索引清单、推送清晰头像(试运行 / 实际执行)
  • 管理端置顶推文 ID 支持直接粘贴推文链接,自动提取数字 ID
  • 管理端新建存档增加实时重名检测,输入已存在的账号名时高亮提示并禁用建档

优化改进

  • 受限申请 token 改从 local.properties 读取,不再写入版本库
  • 审批存档申请不再自动发送评论,直接关闭 Issue
  • 推文正文统一优先采用 body_text,保留原推换行
  • 编辑资料 / 编辑 yml 页改用 Scaffold,修复键盘弹起时顶栏被推入状态栏
  • 搜索框清除按钮改用矢量图标,移除圆形底色并修正居中
  • 离线时图片加载失败自动收起占位,不再留下大片空白
  • 移除未使用的 POST_NOTIFICATIONS 权限
  • 清理死代码与冗余注释

问题修复

  • 修复推文日期按 UTC 显示,与卡片内的本地时间对不上(约四分之一的推文受影响)
  • 修复一个仓库对应多个账号时,资料缓存、离线索引与头像检测互相串数据
  • 修复个人页视频完全不显示、全站时间线视频显示为空白块
  • 修复完整性检测在并发遍历时可能崩溃
  • 修复导入书签文件格式不正确时崩溃
  • 修复保存 GIF 图片时崩溃
  • 修复视频退到后台后仍继续播放
  • 修复下载视频无超时设置,服务器无响应时卡死
  • 修复挂载 VPN 时网络恢复后图片不会重新加载
  • 修复大账号每次加载重复构建未被使用的日期树

Full Changelog: 1.0.0...1.1.0

v1.0.0

Choose a tag to compare

@sjshb57 sjshb57 released this 23 Jul 11:10
06639ba

推文存档 v1.0.0

翻阅存档

  • 列表 — 所有收录的账号,一屏看完
  • 全站 — 把所有人的推文汇成一条时间线,想只看某几个人就筛一下
  • 关注 — 把某个账号设成主页,打开应用直接进他的时间线
  • 日期 — 按年、月、日折叠展开,想看哪天点哪天
  • 图片 — 单独看一个账号的所有图片,可以存到相册

推文本身

推文是原生画出来的,不是塞了个网页进来。所以图片、视频、引用的原推、下面的回复,都按它本来的样子排布,滑动也跟手。

时间显示精确到秒,按你手机所在的时区。

分享的时候可以选四种链接:推特原链接、推文编号、存档定位链接、短码。

找东西

搜正文、搜账号名都可以。也支持直接粘贴网页版分享出来的定位短码,一贴就跳到那条推文。

收藏

看到想留下的推文点个收藏。回到书签页点一下,会弹出一张卡片,就是那条推文完整的样子——不用跳页,不打断你正在看的东西。

收藏可以导出成文件备份,换手机导进来就行。

其他

  • 浅色 / 深色 / 跟随系统
  • 可以设置打开应用先进哪一页
  • 想留档某个账号,应用里直接就能提交申请

说明

应用只读取存档内容,不会上传或修改任何东西。

所有内容都来自互联网档案馆的历史快照,版权归原作者所有。如果你是某个存档账号的本人,希望移除相应内容,可以在仓库提 Issue。


愿世间再无痛苦,唯爱永不独行