Files
danmu_api/.env.example
T
woleigedouer 571bc727a6 feat: 添加弹幕转换功能 - 支持顶部/底部和彩色弹幕转换 (#62) (#65)
* feat: 添加弹幕转换功能

- 支持将顶部/底部弹幕转换为浮动弹幕(CONVERT_TOP_BOTTOM_TO_SCROLL)
- 支持将彩色弹幕转换为纯白弹幕(CONVERT_COLOR_TO_WHITE)
- 解决部分播放器不支持顶部/底部弹幕和彩色弹幕的问题
- 优化 convertToDanmakuJson() 函数逻辑
- 转换在去重后执行,性能开销极小(< 0.5 微秒/条)
- 已通过多平台真实测试(腾讯、爱奇艺、优酷、芒果)
- 更新 .env 和 README.md 文档

* 修复 bahamut episodes 处理错误并添加 b23.tv 短链接解析功能

* fix: 移除 worker.js 中的 dotenv require 以修复 Cloudflare Workers 部署问题

* feat: 添加环境变量热更新功能

- 实现 .env 文件监听和自动重载
- 添加 200ms 防抖机制避免重复触发
- 支持文件删除事件处理
- 实现优雅关闭和资源清理
- 修复 dotenv 不覆盖已存在环境变量的问题(添加 override: true)
- 添加 chokidar 依赖支持文件监听
- 更新文档说明热更新使用方法

影响范围:
- Node.js 本地运行环境
- Docker 容器环境(需 Volume 挂载)
- 不影响 Cloudflare/Vercel/Netlify 部署

* 调整日志级别默认值为 info

* Update worker.js
2025-10-19 23:35:25 +08:00

161 lines
5.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 弹幕 API 环境变量配置示例
# 复制此文件为 .env 并根据需要修改配置
#
# 热更新说明:
# - Docker 环境:修改宿主机的 .env 文件后,容器会自动检测并重新加载配置(无需重启容器)
# - Node.js 本地环境:修改 .env 文件后,应用会自动检测并重新加载配置(无需重启应用)
# - Cloudflare/Vercel/Netlify:需要在平台的环境变量设置中修改,然后重新部署
# ==================== 基础配置 ====================
# API 访问令牌(用于鉴权)
# 默认值:87654321
TOKEN=87654321
# 其他服务器地址(第三方弹幕服务器)
# 默认值:https://api.danmu.icu
OTHER_SERVER=https://api.danmu.icu
# ==================== VOD 配置 ====================
# VOD 服务器配置(支持多服务器)
# 格式:名称@URL,名称@URL,...
# 示例:VOD_SERVERS=金蝉@https://zy.jinchancaiji.com,789@https://www.caiji.cyou,听风@https://gctf.tfdh.top
# 如果不指定名称,会自动生成 vod-1, vod-2 等名称
# 默认值:金蝉@https://zy.jinchancaiji.com,789@https://www.caiji.cyou,听风@https://gctf.tfdh.top
VOD_SERVERS=金蝉@https://zy.jinchancaiji.com,789@https://www.caiji.cyou,听风@https://gctf.tfdh.top
# VOD 服务器返回模式
# 可选值:all(返回所有站点结果)、fastest(只返回最快的站点结果)
# 默认值:fastest
# 说明:
# - all: 搜索时会并发查询所有配置的 VOD 站点,返回所有结果(结果较多)
# - fastest: 搜索时只返回首先响应成功的 VOD 站点结果(结果较少,避免重复)
VOD_RETURN_MODE=fastest
# VOD 服务器请求超时时间(毫秒)
# 默认值:5000(5秒)
# 建议值:3000-10000
# 说明:防止慢速或失效的采集站阻塞整个搜索过程(单个请求超时)
VOD_REQUEST_TIMEOUT=5000
# ==================== Bilibili 配置 ====================
# Bilibili Cookie(用于访问需要登录的内容)
# 默认值:空(不使用 Cookie)
# BILIBILI_COOKIE=
# ==================== 优酷配置 ====================
# 优酷并发数(最大:16)
# 默认值:8
YOUKU_CONCURRENCY=8
# ==================== 源排序配置 ====================
# 数据源查询顺序(可选值:360, vod, tencent, renren, hanjutv, bahamut)
# 默认值:360,vod,renren,hanjutv(不包含 tencent)
# 如需使用腾讯源,请手动添加:SOURCE_ORDER=360,vod,tencent,renren,hanjutv
# 注意:bahamut 仅在 Cloudflare 和 Vercel 平台自动启用
SOURCE_ORDER=360,vod,renren,hanjutv
# ==================== 平台排序配置 ====================
# 平台优先级排序(用于自动匹配)
# 默认值:空(自动匹配)
# 可选值:youku,bilibili,iqiyi,qq,mgtv
# PLATFORM_ORDER=
# ==================== 剧集标题过滤 ====================
# 剧集标题过滤正则表达式(用于过滤花絮、预告等非正片内容)
# 默认值:包含大量关键词的复杂正则表达式
# 如需自定义,请参考代码中的 DEFAULT_EPISODE_TITLE_FILTER
# EPISODE_TITLE_FILTER=
# ==================== 屏蔽词配置 ====================
# 屏蔽词列表(用于过滤弹幕内容)
# 默认值:空
# BLOCKED_WORDS=
# ==================== 弹幕去重配置 ====================
# 分钟内合并去重(最大值:30,0 表示不去重)
# 默认值:1
GROUP_MINUTE=1
# ==================== 弹幕转换配置 ====================
# 是否将顶部和底部弹幕转换为浮动弹幕
# 默认值:false(不转换)
# 说明:启用后,顶部弹幕(ct=5)和底部弹幕(ct=4)会被转换为浮动弹幕(ct=1)
# 可选值:true, false
CONVERT_TOP_BOTTOM_TO_SCROLL=false
# 是否将彩色弹幕转换为纯白弹幕
# 默认值:false(不转换)
# 说明:启用后,所有非白色的弹幕颜色会被转换为纯白色(16777215)
# 可选值:true, false
CONVERT_COLOR_TO_WHITE=false
# ==================== 限流配置 ====================
# API 限流:1分钟内同一IP最大请求次数
# 默认值:3(1分钟内最多3次请求)
# 设置为 0 表示不限流
RATE_LIMIT_MAX_REQUESTS=3
# ==================== 集标题过滤开关 ====================
# 是否在手动选择接口中启用集标题过滤
# 默认值:false(禁用)
# 说明:GET /api/v2/bangumi/{id} 和 GET /api/v2/search/anime 接口会过滤掉预告、花絮等特殊集
# 如需启用过滤,设置为 true
# 可选值:true, false
ENABLE_EPISODE_FILTER=false
# ==================== 代理配置 ====================
# 代理地址(用于访问受限资源)
# 默认值:空(不使用代理)
# 格式:http://proxy-server:port 或 https://proxy-server:port
# PROXY_URL=
# ==================== 日志配置 ====================
# 日志级别(可选值:error, warn, info)
# 默认值:warn
# 说明:
# - error: 仅显示错误日志
# - warn: 显示错误和警告日志
# - info: 显示所有日志(包括详细的调试信息)
# 建议:生产环境使用 warn,开发/调试时使用 info(默认)
LOG_LEVEL=info
# ==================== 缓存配置 ====================
# 搜索结果缓存时间(分钟)
# 默认值:1
# 说明:避免短期内重复的不必要 API 请求,同时保证获取最新的结果列表
# 可根据需要调整:Vercel/Cloudflare 建议 1-5 分钟,Docker 可设置 5-30 分钟
# 设置为 0 表示不缓存
SEARCH_CACHE_MINUTES=1
# 弹幕缓存时间(分钟)
# 默认值:1
# 说明:弹幕数据的缓存时间,独立于搜索结果缓存
# 可根据需要调整
COMMENT_CACHE_MINUTES=1
# ==================== Redis 配置(Upstash)====================
# Upstash Redis REST URL(用于缓存)
# 默认值:空(不使用 Redis)
# UPSTASH_REDIS_REST_URL=
# Upstash Redis REST Token
# 默认值:空
# UPSTASH_REDIS_REST_TOKEN=