B站收藏备份工具设计和实现 Bilibili Memory 哔哩哔哩记忆

背景

每当我在b站看到好的投稿都会收藏下来,但我时不时发现收藏的投稿又失效了一些。单纯收藏并不够安全,有可能被UP主删除(比如对早期投稿不满意),也可能被系统审核删除(有些可能是尺度问题,比如“危害未成年”或得罪网友,特别是无职转生风波之后。另外也可能是版权问题,比如某些混剪)。

我认为看过却不能再看是很糟糕的,因为不论“阅后即焚”实现的多么高明,最不济可以架个摄像机全录下来。所以我希望想办法留存下来以供再看。

需求

通过定期执行程序,尽可能地将收藏的投稿数据备份到本地,对于未及时备份的投稿尝试自动另行获取,避免线上投稿被删除导致无法再看。

使陌生用户放心用于下载始终保持私密的收藏夹中的收藏。

设计

平时不定期的保存线上收藏到本地,通过每次获取线上收藏的状态,在本地维护有效投稿的完整数据,和已被删投稿尽可能多的数据。相当于在本地维护了一个“影子收藏夹”,收藏的内容不会因被删除而消失。对于主动取消收藏的投稿,删除本地备份以节省磁盘空间。

指定收藏夹中的收藏可能受许多种操作影响:用户收藏投稿,用户取消收藏投稿,投稿被发布者或系统删除,用户删除失效投稿的收藏记录。

每次运行时,可以从线上获取指定收藏夹中当前投稿的可用状态,同时可以从本地读取上次运行保存的同一收藏夹中投稿的状态,可以尝试反推发生的操作。

本地数据线上记录投稿状态用户操作系统或UP主操作用户对失效记录操作结论
不存在不存在不可用新收藏/从未收藏删除清理/-(不适用)无法挽回/无需处理
不存在不存在可用被删复活/从未收藏删除后恢复/未删除清理/-无法处理/无需处理
不存在存在不可用新收藏删除未清理下载残留记录,尝试另行获取
不存在存在可用新收藏未删除-备份数据
存在不存在不可用保持收藏/取消收藏删除清理/-询问用户:以下两种处理之一
存在不存在可用取消收藏未删除-删除本机备份
存在存在不可用保持收藏删除未清理本地备份标记为已被删除
存在存在可用保持收藏未删除-无需操作

(待完善)

实现

(待完善)
https://github.com/YuSitong1999/BilibiliMemory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值