浏览器插件劫持 B 站追番进度功能

2024-04-17

晚上在写一个通过浏览器插件注入脚本到页面截取 B 站 API 数据,实现追番进度获取和转存到小窝后端的功能。目前已经完成了在插件获取进度的功能,后端更新进度的接口还没开干呢。

主要逻辑就是创建一个用于注入页面的 JS 文件,使用 Object.defineProperty 改写 XHR 的方法以劫持数据,通过 setInterval 待多个 API 均被请求则计算进度,待后续提交到服务器。注意需要指定启动模式为 document_start,否则人家全加载完了你才注入就拿不到接口数据了。

export const config: PlasmoCSConfig = {
  run_at: "document_start",
  matches: ["https://www.bilibili.com/bangumi/media/*"],
  world: "MAIN",
};

期间还参考了下面的内容,主要的业务实现在这里就不多概述了。

本来要继续日常原神崩铁的,但原神有相当一部分要刷体力的任务都给我同事了(他在帮我刷本换圣遗物,就顺带换掉体力了)

多云 一般
概览页 时间轴
奇趣音乐盒 技术源于 Kico Player
Emmm,这里是歌词君