背景
每当我在b站看到好的投稿都会收藏下来,但我时不时发现收藏的投稿又失效了一些。单纯收藏并不够安全,有可能被UP主删除(比如对早期投稿不满意),也可能被系统审核删除(有些可能是尺度问题,比如“危害未成年”或得罪网友,特别是无职转生风波之后。另外也可能是版权问题,比如某些混剪)。
我认为看过却不能再看是很糟糕的,因为不论“阅后即焚”实现的多么高明,最不济可以架个摄像机全录下来。所以我希望想办法留存下来以供再看。
需求
通过定期执行程序,尽可能地将收藏的投稿数据备份到本地,对于未及时备份的投稿尝试自动另行获取,避免线上投稿被删除导致无法再看。
使陌生用户放心用于下载始终保持私密的收藏夹中的收藏。
设计
平时不定期的保存线上收藏到本地,通过每次获取线上收藏的状态,在本地维护有效投稿的完整数据,和已被删投稿尽可能多的数据。相当于在本地维护了一个“影子收藏夹”,收藏的内容不会因被删除而消失。对于主动取消收藏的投稿,删除本地备份以节省磁盘空间。
指定收藏夹中的收藏可能受许多种操作影响:用户收藏投稿,用户取消收藏投稿,投稿被发布者或系统删除,用户删除失效投稿的收藏记录。
每次运行时,可以从线上获取指定收藏夹中当前投稿的可用状态,同时可以从本地读取上次运行保存的同一收藏夹中投稿的状态,可以尝试反推发生的操作。
本地数据 | 线上记录 | 投稿状态 | 用户操作 | 系统或UP主操作 | 用户对失效记录操作 | 结论 |
---|---|---|---|---|---|---|
不存在 | 不存在 | 不可用 | 新收藏/从未收藏 | 删除 | 清理/-(不适用) | 无法挽回/无需处理 |
不存在 | 不存在 | 可用 | 被删复活/从未收藏 | 删除后恢复/未删除 | 清理/- | 无法处理/无需处理 |
不存在 | 存在 | 不可用 | 新收藏 | 删除 | 未清理 | 下载残留记录,尝试另行获取 |
不存在 | 存在 | 可用 | 新收藏 | 未删除 | - | 备份数据 |
存在 | 不存在 | 不可用 | 保持收藏/取消收藏 | 删除 | 清理/- | 询问用户:以下两种处理之一 |
存在 | 不存在 | 可用 | 取消收藏 | 未删除 | - | 删除本机备份 |
存在 | 存在 | 不可用 | 保持收藏 | 删除 | 未清理 | 本地备份标记为已被删除 |
存在 | 存在 | 可用 | 保持收藏 | 未删除 | - | 无需操作 |
(待完善)