简体中文 | English
这个仓库用于解决某些网站 cookie 过期时间过短而 rsshub 更新 cookie 不太方便的问题。
注意:此仓库暂未包含所有 cookie 同步方法,您可以提交 issue 请求适配。若您愿意贡献新的同步方法,请参照 贡献 添加新的 JS 文件并创建 PR。
当 cookie 过期时,用户使用浏览器重新登录,然后利用 easychen/CookieCloud 将 cookie 同步到 RSSHub 并更新配置。
尽管这种方法仍需要用户手动重新登陆,但相比原版仅能通过修改环境变量并重启的麻烦操作,这种方法已经有所进步。
-
自行部署 easychen/CookieCloud
-
将本仓库根目录映射为 RSSHub 镜像中的
/app/cookiecloud。 -
添加环境变量:
变量名称 含义 示例 默认(留空则为必填) COOKIE_CLOUD_HOST CookieCloud 服务器地址 127.0.0.1:8088 COOKIE_CLOUD_UUID 用户KEY · UUID uuid COOKIE_CLOUD_PASSWORD 端对端加密密码 password COOKIE_CLOUD_INTERVAL 更新间隔时间(单位:秒) 3600 3600 COOKIE_CLOUD_DEBUG 设置为 true 时将允许路由 /cookiecloud/:keys?返回配置值true false -
修改启动命令为
node /app/cookiecloud/index.js。 -
日志中出现了
CookieCloud loaded.即为加载成功。
示例(docker-compose.yaml):
services:
rsshub:
image: diygod/rsshub:chromium-bundled
restart: always
ports:
- 1200:1200
- 4651:4651
env_file: stack.env
volumes:
- ./cookiecloud:/app/cookiecloud
environment:
COOKIE_CLOUD_HOST: 'http://cookiecloud:8088'
COOKIE_CLOUD_UUID: 'rsshub'
COOKIE_CLOUD_PASSWORD: 'rsshub-pwd'
COOKIE_CLOUD_INTERVAL: 3600
command: ["node", "/app/cookiecloud/index.js"]
cookiecloud:
image: easychen/cookiecloud:2023.01.20.16.39
user: 1000:1001
volumes:
- ./data:/data/api/data
restart: always当您希望贡献一个网站的同步方法,您需要在 cookiecloud/cookies 中添加 JS 文件。
以下是一些 JSON 示例:
- 小红书
export default { "XIAOHONGSHU_COOKIE": [ { "domain": "xiaohongshu.com" } ] }
- javdb.com
export default { "JAVDB_SESSION": [ { "domain": "javdb.com", "name": "_jdb_session" } ] }
示例说明:
-
每个 JS 文件导出一个 object,key 是 RSSHub 所需的环境变量名称,value 是一个 array。
-
array 中每个 item 为一个匹配规则,将会按顺序依次匹配,直到匹配成功。每个 item 为一个 object,包含以下字段:
名称 类型 可选 含义 示例 domain string 否 Cookie 所属域名关键词,当域名包含关键词时视为匹配成功。 xiaohongshu.comname string/array 是 Cookie 名称,当 Cookie 名称完全一致时视为匹配成功;若为 array 则代表需要同时获取多个 name 的 cookie,存在至少一个即视为匹配成功;若留空则代表获取域名下所有 Cookie。 _jdb_session,["z_c0", "__zse_ck", "d_c0"]