fetch-douban.ts 是一个用于从豆瓣同步用户数据(电影、书籍、音乐)到本地项目的脚本。它支持通过 RSS Feed 或自定义 API 获取数据,并会自动下载封面图到本地。
功能特性
- 多源支持:
- RSS Feed:默认方式,无需额外配置,通过解析豆瓣公开的 RSS 获取最近动态。
- 自定义 API:支持对接如
douban-worker.js或其他开源豆瓣 API 方案。
- 自动下载封面:将远程图片下载到
public/douban目录,避免因防盗链导致的图片无法显示。 - 本地存储:将处理后的数据保存为 JSON 文件,方便在 Astro 页面中直接引用。
- 配置集成:自动从
src/config.ts中读取userId。
使用方法
在终端中运行以下命令:
# 使用 RSS Feed 获取数据(默认)
pnpm fetch-douban
# 使用自定义 API 获取数据
pnpm fetch-douban --api工作原理
- 读取配置:从
src/config.ts获取豆瓣用户 ID。 - 获取数据:
- 如果使用 RSS,则请求
https://www.douban.com/feed/people/{userId}/interests。 - 如果使用 API,则请求配置的
API_BASE_URL。
- 如果使用 RSS,则请求
- 处理条目:
- 解析每个条目的标题、链接、评分和评论。
- 识别条目类型(电影、书籍或音乐)。
- 下载图片:将封面图下载至
public/douban/,并重命名为基于条目 ID 的文件名。 - 保存文件:
- 电影数据保存至
src/data/douban-movies.json。 - 书籍数据保存至
src/data/douban-books.json。
- 电影数据保存至
相关配置
- API 地址:在脚本内的
API_BASE_URL变量中配置。 - 存储路径:
- 图片:
public/douban/ - 数据:
src/data/
- 图片: