* envs.js:新增 Bangumi Data 加速匹配开关 与 Bangumi Data 缓存有效期 配置 * 新增 Bangumi Data 管理工具,用于下载与管理Bangumi Data数据 感谢 https://github.com/bangumi-data/bangumi-data * worker.js:参加Bangumi Data 辅助函数用于判断数据更新 * server.js:配合清理 Bangumi Data 关闭时占用的内存 * tmdb-util.js:Bangumi Data 开启时调用它大幅提升获取日语原名速度 实现获取动画日语原名零请求 * animeko.js:Bangumi Data 开启时调用它,节省一次搜索请求 已知问题:缺失imageUrl,问题不大 * bahamut.js:Bangumi Data 开启时调用它,补全别名与类型 Bangumi Data 给的是acg_sn,预期需要是video_sn,因此无法直接应用 https://github.com/bangumi-data/bangumi-data/issues/336 * bilibili.js:Bangumi Data 开启时调用它,补全缺失的隐藏结果与区域结果 实现港澳台番剧与隐藏番剧自由,例如《笨拙之极的上野》 * dandan.js:Bangumi Data 开启时调用它,节省一次搜索请求 弹弹其实当务之急是怎么节省详情接口的请求… 多结果风控错误概率大 * common-util.js:为标题匹配的相似度策略加入一定阻断 防止纯英文搜索时因相似度打乱字符匹配大量结果被放行 * .env.example:更新 Bangumi Data 相关变量 * README.md:更新 Bangumi Data 相关说明 * Enhance comments for USE_BANGUMI_DATA in .env.example Updated comments to clarify the functionality of USE_BANGUMI_DATA. * Enhance USE_BANGUMI_DATA description Updated the description for USE_BANGUMI_DATA to include unlocking hidden/region-specific anime. * README.md:补全目录 * bangumi-data-util.js:纯内存加载时使用原生 fetch ,并声明压缩头 * bangumi-data-util.js:增加云部署纯内存运行提示 * bangumi-data-util.js:更新配音版本正则 * merge-util.js:标准化正则 * tmdb-util.js:标准化正则 * animeko.js:标准化正则 * README.md:补充文件目录 * bangumi-data-util.js:修复CF部署下载请求被切断导致堵塞 Added download lock mechanism to prevent deadlocks in serverless environments and implemented a timeout for download operations. * worker.js:透传ctx * bangumi-data-util.js:调用 ctx.waitUntil 延长 Serverless 生命周期 * bilibili.js:补全md号解析链路 Add handling for media IDs starting with 'md' to fetch episodes. * server.js:异步初始化 Bangumi Data 缓存,消除首个真实请求遭遇冷启动的等待延迟 * bangumi-data-util.js:双节点同时竞速下载数据,提升下载可用性与速度
389 lines
20 KiB
Bash
389 lines
20 KiB
Bash
# 弹幕 API 环境变量配置示例
|
||
# 复制此文件为 .env 并根据需要修改配置
|
||
#
|
||
# 配置方式说明:
|
||
# 本项目支持三种配置方式,优先级从高到低:
|
||
# 1. 系统环境变量(最高优先级)
|
||
# 2. .env 文件(低优先级)
|
||
#
|
||
# 热更新说明:
|
||
# - Docker 环境:修改宿主机的 .env 文件后,容器会自动检测并重新加载配置(无需重启容器)
|
||
# - Node.js 本地环境:修改 .env 文件后,应用会自动检测并重新加载配置(无需重启应用)
|
||
# - Cloudflare/Vercel/Netlify/Edgeone:需要在平台的环境变量设置中修改,然后重新部署
|
||
|
||
# ==================== 基础配置 ====================
|
||
|
||
# API 访问令牌(用于鉴权)
|
||
# 默认值:87654321
|
||
TOKEN=87654321
|
||
|
||
# API 服务监听端口
|
||
# 默认值:9321
|
||
# 说明:本地 Node 服务会优先读取 DANMU_API_PORT;未设置时回退到 9321
|
||
# DANMU_API_PORT=9321
|
||
|
||
# 系统管理访问令牌(用于系统管理功能)
|
||
# 如果未配置此值,则无法访问系统管理功能,需要先配置后在URL中填入此token才能打开系统管理
|
||
# 默认值:空(不启用系统管理访问控制)
|
||
# ADMIN_TOKEN=
|
||
|
||
# 其他服务器地址(第三方弹幕服务器)
|
||
# 默认值:https://api.danmu.icu
|
||
OTHER_SERVER=https://api.danmu.icu
|
||
|
||
# 自定义弹幕源API地址
|
||
# 默认为空,配置后还需在SOURCE_ORDER添加custom源
|
||
# CUSTOM_SOURCE_API_URL=
|
||
|
||
# ==================== 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 服务器请求超时时间(毫秒)
|
||
# 默认值:10000(10秒)
|
||
# 建议值:5000-15000
|
||
# 说明:防止慢速或失效的采集站阻塞整个搜索过程(单个请求超时)
|
||
# 由于 fastest 模式只返回最快响应的站点,可以设置较大的超时时间给慢速站点更多机会
|
||
VOD_REQUEST_TIMEOUT=10000
|
||
|
||
# ==================== Bilibili 配置 ====================
|
||
|
||
# Bilibili Cookie(用于访问需要登录的内容)
|
||
# 默认值:空(不使用 Cookie)
|
||
# BILIBILI_COOKIE=
|
||
|
||
# 豆瓣 Cookie(用于豆瓣相关接口请求,配置后可降低豆瓣接口风控影响,提升搜索/详情获取的稳定性。填写浏览器中已登录豆瓣后的完整 Cookie 字符串即可,格式示例:`bid=xxxx; ll="118282"; ...`。如遇到豆瓣搜索不稳定、返回异常或频繁验证,建议优先补充该变量)
|
||
# 默认值:空(不使用 Cookie)
|
||
# DOUBAN_COOKIE=
|
||
|
||
# ==================== 优酷配置 ====================
|
||
|
||
# 优酷并发数(最大:16)
|
||
# 默认值:8
|
||
YOUKU_CONCURRENCY=8
|
||
|
||
# ==================== 源排序配置 ====================
|
||
|
||
# 数据源查询顺序(可选值:360, vod, tmdb, douban, tencent, youku, iqiyi, imgo, bilibili, migu, renren, hanjutv, bahamut, dandan, sohu, leshi, xigua, maiduidui, aiyifan, animeko, custom)
|
||
# 默认值:360,vod,renren,hanjutv(不包含 tencent, youku, iqiyi, imgo, bilibili, migu, sohu , leshi, xigua, maiduidui, aiyifan等)
|
||
# 如需使用腾讯源、优酷源、爱奇艺源、芒果源、B站源、搜狐源、乐视源、西瓜源、埋堆堆源,请手动添加:SOURCE_ORDER=360,vod,tencent,youku,iqiyi,imgo,bilibili,migu,renren,hanjutv,sohu,leshi,xigua,maiduidui,aiyifan
|
||
# 如需使用巴哈姆特源,请手动添加:SOURCE_ORDER=360,vod,renren,hanjutv,bahamut
|
||
# 如需使用弹弹play源,请手动添加:SOURCE_ORDER=360,vod,renren,hanjutv,dandan
|
||
# 如需使用豆瓣源,请手动添加:SOURCE_ORDER=360,vod,douban,renren,hanjutv
|
||
# 如需使用TMDB源,请手动添加:SOURCE_ORDER=360,vod,tmdb,renren,hanjutv
|
||
SOURCE_ORDER=360,vod,renren,hanjutv
|
||
|
||
# ==================== 平台排序配置 ====================
|
||
|
||
# 平台优先级排序(用于自动匹配)
|
||
# 默认值:空(自动匹配)
|
||
# 可选值:qiyi, bilibili1, imgo, youku, qq, migu, sohu, leshi, xigua, maiduidui, aiyifan, renren, hanjutv, bahamut, dandan, animeko, custom 或 qiyi&bilibili1&imgo,dandan&animeko
|
||
# 说明:平台排序配置,可以配置自动匹配时的优选平台,当配置合并平台的时候可以指定期望的合并源
|
||
# PLATFORM_ORDER=
|
||
|
||
# ==================== 源合并配置 ====================
|
||
# 数据源合并配置(可选值:tencent, youku, iqiyi, imgo, bilibili, migu, renren, hanjutv, bahamut, dandan, sohu, leshi, xigua, maiduidui, aiyifan, animeko)
|
||
# 默认值:空
|
||
# 说明:配置后将对应源合并同时一起获取弹幕返回,允许多组、允许同时存在、允许多源,允许填单源表示保留原结果,一组中第一个为主源其余为副源,副源往主源合并,主源如果没有结果会轮替下一个作为主源循环
|
||
# 格式:源字段&源字段&源字段,源字段
|
||
# 示例:MERGE_SOURCE_PAIRS=imgo&iqiyi,dandan&bahamut&animeko,imgo
|
||
# MERGE_SOURCE_PAIRS=
|
||
|
||
# ==================== 剧集标题过滤 ====================
|
||
|
||
# 剧集标题过滤正则表达式(用于过滤花絮、预告等非正片内容)
|
||
# 默认值:下方完整规则
|
||
# 说明:
|
||
# - 如果设置了此环境变量,将完全覆盖默认的过滤规则(不是增量添加)
|
||
# - 格式:使用 | 分隔多个关键词,例如:预告|花絮|特辑|番外
|
||
# - 可以直接修改下方规则,按需增删关键词
|
||
# 示例:只过滤预告和花絮
|
||
# EPISODE_TITLE_FILTER=预告|花絮
|
||
EPISODE_TITLE_FILTER=(特别|惊喜|纳凉)?企划(?!(书|案|部))|合伙人手记|超前(营业|vlog)?|速览|vlog|(?<!(Chain|Chemical|Nuclear|连锁|化学|核|生化|生理|应激))reaction|(?<!(单))纯享|加更(版|篇)?|抢先(看|版|集|篇)?|(?<!(被|争|谁))抢[先鲜](?!(一步|手|攻|了|告|言|机|话))|抢鲜|预告(?!(函|信|书|犯))|(?<!(死亡|恐怖|灵异|怪谈))花絮(独家)?|(?<!(一|直))直拍|(制作|拍摄|幕后|花絮|未播|独家|演员|导演|主创|杀青|探班|收官|开播|先导|彩蛋|NG|回顾|高光|个人|主创)特辑|(?<!(行动|计划|游戏|任务|危机|神秘|黄金))彩蛋|(?<!(嫌疑人|证人|家属|律师|警方|凶手|死者))专访|(?<!(证人))采访(?!(吸血鬼|鬼))|(正式|角色|先导|概念|首曝|定档|剧情|动画|宣传|主题曲|印象)[\s\.]*[PpPp][VvVv]|(?<!(退居|回归|走向|转战|隐身|藏身|的))幕后(?!(主谋|主使|黑手|真凶|玩家|老板|金主|英雄|功臣|推手|大佬|操纵|交易|策划|博弈|BOSS|真相))(故事|花絮|独家)?|直播(陪看|回顾)?|直播(?!(.*(事件|杀人|自杀|谋杀|犯罪|现场|游戏|挑战)))|未播(片段)?|衍生(?!(品|物|兽))|番外(?!(地|人))|会员(专享|加长|尊享|专属|版)?|(?<!(鸦|雪|纸|相|照|图|名|大))片花|(?<!(提取|吸收|生命|魔法|修护|美白))精华|看点|速看|解读(?!.*(密文|密码|密电|电报|档案|书信|遗书|碑文|代码|信号|暗号|讯息|谜题|人心|唇语|真相|谜团|梦境))|(?<!(案情|人生|死前|历史|世纪))回顾|影评|解说|吐槽|(?<!(年终|季度|库存|资产|物资|财务|收获|战利))盘点|拍摄花絮|制作花絮|幕后花絮|未播花絮|独家花絮|花絮特辑|先导预告|终极预告|正式预告|官方预告|彩蛋片段|删减片段|未播片段|番外彩蛋|精彩片段|精彩看点|精彩集锦|看点解析|看点预告|NG镜头|NG花絮|番外篇|番外特辑|制作特辑|拍摄特辑|幕后特辑|导演特辑|演员特辑|片尾曲|(?<!(生命|生活|情感|爱情|一段|小|意外))插曲|高光回顾|背景音乐|OST|音乐MV|歌曲MV|前季回顾|剧情回顾|往期回顾|内容总结|剧情盘点|精选合集|剪辑合集|混剪视频|独家专访|演员访谈|导演访谈|主创访谈|媒体采访|发布会采访|陪看(记)?|试看版|短剧|精编|(?<!(Love|Disney|One|C|Note|S\d+|\+|&|\s))Plus|独家版|(?<!(导演|加长|周年))特别版(?!(图|画))|短片|(?<!(新闻|紧急|临时|召开|破坏|大闹|澄清|道歉|新品|产品|事故))发布会|解忧局|走心局|火锅局|巅峰时刻|坞里都知道|福持目标坞民|福利(?!(院|会|主义|课))篇|(福利|加更|番外|彩蛋|衍生|特别|收官|游戏|整蛊|日常)篇|独家(?!(记忆|试爱|报道|秘方|占有|宠爱|恩宠))|.{2,}(?<!(市|分|警|总|省|卫|药|政|监|结|大|开|破|布|僵|困|骗|赌|胜|败|定|乱|危|迷|谜|入|搅|设|中|残|平|和|终|变|对|安|做|书|画|察|务|案|通|信|育|商|象|源|业|冰))局(?!(长|座|势|面|部|内|外|中|限|促|气))|(?<!(重症|隔离|实验|心理|审讯|单向|术后))观察室|上班那点事儿|周top|赛段|VLOG|(?<!(大案|要案|刑侦|侦查|破案|档案|风云|历史|战争|探案|自然|人文|科学|医学|地理|宇宙|赛事|世界杯|奥运))全纪录|开播|先导|总宣|展演|集锦|旅行日记|精彩分享|剧情揭秘(?!(者|人))|(?:^|】\s*|\]\s*)(?:[SC]|SP|OP|ED|PV)\d+(?:[\s::\.\-]|$)
|
||
# ==================== 屏蔽词配置 ====================
|
||
# 屏蔽词列表(用于过滤弹幕内容)
|
||
# 默认值:空
|
||
# BLOCKED_WORDS=
|
||
|
||
# ==================== IP 黑名单配置 ====================
|
||
|
||
# IP 黑名单列表(命中则拒绝请求)
|
||
# 默认值:空
|
||
# 说明:支持逗号/分号/换行分隔;支持使用 /regex/ 或 /regex/i 形式的正则;支持 IPv4/IPv6 CIDR
|
||
# 示例:IP_BLACKLIST=192.168.1.10,10.0.0.0/24,2001:db8::/64,/^203\.0\.113\./
|
||
# IP_BLACKLIST=
|
||
|
||
# ==================== 弹幕去重配置 ====================
|
||
|
||
# 分钟内合并去重(最大值:30,0 表示不去重)
|
||
# 默认值:1
|
||
GROUP_MINUTE=1
|
||
|
||
# ==================== 限制弹幕总数 ====================
|
||
|
||
# 等间隔采样限制弹幕总数(单位为k,即千:默认 0,表示不限制弹幕数)
|
||
# 默认值:0
|
||
DANMU_LIMIT=0
|
||
|
||
# ==================== 弹幕转换配置 ====================
|
||
|
||
# 是否将顶部和底部弹幕转换为浮动弹幕
|
||
# 默认值:false(不转换)
|
||
# 说明:启用后,顶部弹幕(ct=5)和底部弹幕(ct=4)会被转换为浮动弹幕(ct=1)
|
||
# 可选值:true, false
|
||
CONVERT_TOP_BOTTOM_TO_SCROLL=false
|
||
|
||
# 弹幕转换颜色配置
|
||
# 默认值:default(不转换)
|
||
# 说明:default 模式不转换,white 模式将所有非白色的弹幕颜色转换为纯白色,color 模式将所有白色弹幕转换为随机颜色(包含白色)
|
||
# 可选值:default, white, color
|
||
CONVERT_COLOR=default
|
||
|
||
# 自定义颜色池(CONVERT_COLOR为color时生效)
|
||
# 默认值:空(使用内置默认颜色池:白、红、橙、黄、绿、青、蓝、紫、粉)
|
||
# 说明:格式为十进制颜色值逗号分隔,例如 16711680 表示红色(即 #FF0000)
|
||
# 示例:16711680,65280,255,16776960
|
||
COLOR_POOL=
|
||
|
||
# 弹幕简繁体转换设置:default(默认不转换)、simplified(繁转简)、traditional(简转繁)
|
||
# 默认值:default(不转换)
|
||
# 可选值:default, simplified, traditional
|
||
DANMU_SIMPLIFIED_TRADITIONAL=default
|
||
|
||
# 弹幕时间偏移配置
|
||
# 格式:剧名:秒 或 剧名/季:秒 或 剧名/季/集:秒,支持指定来源:剧名@来源:秒 或 剧名/季@来源1&来源2:秒(不指定来源则对所有来源生效)
|
||
# 正数表示弹幕延后(向右),负数表示弹幕提前(向左),多条用逗号分隔
|
||
# 支持百分比模式:在路径或来源末尾追加 %,如 东方/S03/E02@tencent%:11
|
||
# 百分比模式会按公式:调整后时间 = 原时间 * (视频时长 + 偏移秒数) / 视频时长
|
||
# 示例:overlord/S01:90,re-zero/S02@bilibili:120,re-zero/S02/E03@dandan&bilibili:10,东方/S03/E02@tencent%:11
|
||
# 默认值:空
|
||
DANMU_OFFSET=
|
||
|
||
# 弹幕点赞数显示开关
|
||
# 默认值:true(开启)
|
||
# 说明:开启后会在弹幕内容后显示点赞数标记,≥5 才显示,避免低赞干扰
|
||
# 可选值:true, false
|
||
LIKE_SWITCH=true
|
||
|
||
# ==================== 弹幕推送配置 ====================
|
||
|
||
# 弹幕推送地址
|
||
# 默认值:空
|
||
# 说明:如果设置了此值,在弹幕推送页面的推送地址输入框里会默认填上该地址
|
||
# 示例:http://127.0.0.1:9978/action?do=refresh&type=danmaku&path=
|
||
DANMU_PUSH_URL=http://127.0.0.1:9978/action?do=refresh&type=danmaku&path=
|
||
|
||
# ==================== 弹幕输出格式配置 ====================
|
||
|
||
# 弹幕输出格式(全局默认格式)
|
||
# 默认值:json
|
||
# 可选值:json, xml
|
||
# 说明:
|
||
# - json: 返回 JSON 格式的弹幕数据(默认)
|
||
# - xml: 返回 XML 格式的弹幕数据(兼容弹弹play等客户端)
|
||
# 注意:可通过 API 查询参数 ?format=xml 或 ?format=json 覆盖此设置
|
||
# 示例:GET /api/v2/comment/10001?format=xml
|
||
DANMU_OUTPUT_FORMAT=json
|
||
|
||
# ==================== 限流配置 ====================
|
||
|
||
# API 限流:1分钟内同一IP最大请求次数
|
||
# 默认值:3(1分钟内最多3次请求)
|
||
# 设置为 0 表示不限流
|
||
RATE_LIMIT_MAX_REQUESTS=3
|
||
|
||
# ==================== 集标题过滤开关 ====================
|
||
|
||
# 控制手动搜索的时候是否根据ANIME_TITLE_FILTER进行剧名过滤以及根据EPISODE_TITLE_FILTER进行集标题过滤
|
||
# 默认值:false(禁用)
|
||
# 说明:GET /api/v2/bangumi/{id} 和 GET /api/v2/search/anime 接口会过滤掉预告、花絮等特殊集
|
||
# 如需启用过滤,设置为 true
|
||
# 可选值:true, false
|
||
ENABLE_ANIME_EPISODE_FILTER=false
|
||
|
||
# ==================== 搜索匹配模式 ====================
|
||
|
||
# 是否启用严格标题匹配模式
|
||
# 默认值:false(宽松模糊匹配)
|
||
# 说明:
|
||
# - false(默认): 模糊匹配,只要标题包含搜索词即可(例如搜索"遮天"会匹配"古惑仔3之只手遮天")
|
||
# - true: 严格匹配,只匹配标题开头或完全匹配(例如搜索"遮天"只匹配"遮天"、"遮天 第一季"等)
|
||
# 可选值:true, false
|
||
STRICT_TITLE_MATCH=false
|
||
|
||
# 是否在match自动匹配时将外语标题转换成中文标题,适用于网盘没有刮削的资源
|
||
# 默认值:false(不转换)
|
||
# 说明:需配合TMDB_API_KEY使用
|
||
# 可选值:true, false
|
||
# TITLE_TO_CHINESE=false
|
||
|
||
# 是否启用 Bangumi Data 加速匹配
|
||
# 默认值:false(关闭)
|
||
# 说明:
|
||
# - 开启后将动画元数据缓存至本地或内存中给源调用,提升动画源的检索与匹配速度并解锁隐藏/区域番剧。
|
||
# - 本地和Docker部署使用时请先挂载.cache目录获得最佳体验,云部署使用时会将数据缓存至临时内存中如果体验不佳请关闭。
|
||
# 可选值:true, false
|
||
USE_BANGUMI_DATA=false
|
||
|
||
# ==================== 代理配置 ====================
|
||
|
||
# 代理/反代地址(用于访问受限资源)
|
||
# 默认值:空(不使用代理/反代)
|
||
# 格式:
|
||
# - 设置为代理为 http://proxy-server:port 或 https://proxy-server:port
|
||
# - 设置为万能反代为 @http://proxy-server:port 或 @https://proxy-server
|
||
# - 设置为巴哈反代为 bahamut@http://proxy-server:port 或 bahamut@https://proxy-server
|
||
# - 设置为TMDB反代为 tmdb@http://proxy-server:port 或 tmdb@https://proxy-server
|
||
# - 设置为bilibili反代为 bilibili@http://proxy-server:port 或 bilibili@https://proxy-server
|
||
# 说明:目前只对巴哈姆特、TMDB API、bilibili生效
|
||
# 如果使用 Docker 部署并且访问不了 bahamut 源或 TMDB API ,请配置代理/反代地址
|
||
# 如果想启用B站港澳台番剧的弹幕搜索与获取请配置反代/解析服务器地址
|
||
# 反代教程参考:https://github.com/wan0ge/bahamut-api-proxy
|
||
# PROXY_URL=
|
||
|
||
# ==================== TMDB 配置 ====================
|
||
|
||
# TMDB API Key(用于巴哈姆特源的译名转换)
|
||
# 默认值:空(不使用 TMDB)
|
||
# 说明:配置后并行从 TMDB 获取日语原名搜索巴哈
|
||
# 如果TMDB条目类型不是动画或制作地区不是jp则不会进行巴哈搜索
|
||
# 可以解决巴哈译名不同导致的搜索无结果问题(例如:间谍过家家 vs 間諜家家酒)
|
||
# 获取方法参考:https://www.ugnas.com/tutorial-detail/id-226.html
|
||
# TMDB_API_KEY=
|
||
|
||
# ==================== 日志配置 ====================
|
||
|
||
# 日志级别(可选值:error, warn, info)
|
||
# 默认值:info
|
||
# 说明:
|
||
# - error: 仅显示错误日志
|
||
# - warn: 显示错误和警告日志
|
||
# - info: 显示所有日志(包括详细的调试信息)
|
||
# 建议:生产环境使用 warn,开发/调试时使用 info
|
||
LOG_LEVEL=info
|
||
|
||
# ==================== 缓存配置 ====================
|
||
|
||
# 搜索结果缓存时间(分钟)
|
||
# 默认值:3
|
||
# 说明:避免短期内重复的不必要 API 请求,同时保证获取最新的结果列表
|
||
# 可根据需要调整:Vercel/Cloudflare 建议 1-5 分钟,Docker 可设置 5-30 分钟
|
||
# 设置为 0 表示不缓存
|
||
SEARCH_CACHE_MINUTES=3
|
||
|
||
# 弹幕缓存时间(分钟)
|
||
# 默认值:3
|
||
# 说明:弹幕数据的缓存时间,独立于搜索结果缓存
|
||
# 可根据需要调整
|
||
# 设置为 0 表示不缓存
|
||
COMMENT_CACHE_MINUTES=3
|
||
|
||
# 是否记住手动选择结果
|
||
# 默认值:true
|
||
# 说明:是否记住手动选择结果,用于match自动匹配时优选上次的选择
|
||
# 用于存储查询关键字上次选择的 animeId,下次 match 自动匹配时优先选择该 anime
|
||
REMEMBER_LAST_SELECT=true
|
||
|
||
# 用户偏好记忆缓存大小限制
|
||
# 默认值:100
|
||
# 说明:lastSelectMap 最多保存的条目数,超过限制时删除最早的条目(FIFO)
|
||
# 用于存储查询关键字上次选择的 animeId,下次 match 自动匹配时优先选择该 anime
|
||
MAX_LAST_SELECT_MAP=100
|
||
|
||
# 动漫标题缓存最大数量
|
||
# 默认值:100
|
||
# 说明:缓存最多保存的anime条目数,超过限制时删除最早的条目(FIFO)
|
||
# 最小值100,最大值1000
|
||
MAX_ANIMES=100
|
||
|
||
# Bangumi Data 缓存有效期(天)
|
||
# 默认值:7
|
||
# 说明:指定 Bangumi Data 数据有效期,超过有效期后会下载更新,设置0则每次请求时强制异步更新
|
||
BANGUMI_DATA_CACHE_DAYS=7
|
||
|
||
# ==================== Redis 配置(Upstash)====================
|
||
|
||
# Upstash Redis REST URL(用于缓存)
|
||
# 默认值:空(不使用 Redis)
|
||
# UPSTASH_REDIS_REST_URL=
|
||
|
||
# Upstash Redis REST Token
|
||
# 默认值:空
|
||
# UPSTASH_REDIS_REST_TOKEN=
|
||
|
||
# ==================== 本地 Redis 配置 ====================
|
||
|
||
# 本地 Redis 连接 URL(用于本地缓存存储)
|
||
# 格式:redis://:password@127.0.0.1:6379/0
|
||
# 默认值:空(不使用本地 Redis)
|
||
# LOCAL_REDIS_URL=
|
||
|
||
# ==================== 部署平台API接口信息 配置 ====================
|
||
|
||
# 部署账号ID,调用部署服务API需要,配置后可使用UI界面配置服务
|
||
# 默认值:空
|
||
#DEPLOY_PLATFROM_ACCOUNT=
|
||
|
||
# 部署项目名称,调用部署服务API需要,配置后可使用UI界面配置服务
|
||
# 默认值:空
|
||
#DEPLOY_PLATFROM_PROJECT=
|
||
|
||
# 部署平台token,调用部署服务API需要,配置后可使用UI界面配置服务
|
||
# 默认值:空
|
||
#DEPLOY_PLATFROM_TOKEN=
|
||
|
||
# 在建立 HTTPS 连接时是否验证服务器的 SSL/TLS 证书,0表示忽略
|
||
# 默认值:1
|
||
# NODE_TLS_REJECT_UNAUTHORIZED=1
|
||
|
||
# ==================== 标题映射表配置 ====================
|
||
|
||
# 标题映射表(用于自动匹配时替换标题进行搜索)
|
||
# 格式:原始标题->映射标题;原始标题->映射标题;...
|
||
# 示例:TITLE_MAPPING_TABLE: "唐朝诡事录->唐朝诡事录之西行;国色芳华->锦绣芳华"
|
||
# 默认值:空(不启用标题映射)
|
||
TITLE_MAPPING_TABLE=
|
||
|
||
# 是否在搜索时将繁体剧名标题自动转换为简体,适用于繁体标题搜索
|
||
# 默认值:false(不转换)
|
||
# 可选值:true, false
|
||
ANIME_TITLE_SIMPLIFIED=false
|
||
|
||
# ==================== 剧名过滤配置 ====================
|
||
|
||
# 剧名过滤规则(用于过滤不需要的剧集),需开启ENABLE_ANIME_EPISODE_FILTER
|
||
# 默认值:空(不过滤)
|
||
# 说明:使用 | 分隔多个关键词,例如:广告|预告|无关剧名
|
||
ANIME_TITLE_FILTER=
|
||
|
||
# ==================== AI 配置 ====================
|
||
|
||
# AI服务的基础URL地址,用于配置AI相关功能的API端点
|
||
# 默认值:https://api.openai.com/v1
|
||
# AI_BASE_URL=
|
||
|
||
# AI模型名称,指定使用的AI模型
|
||
# 默认值:gpt-4o
|
||
# AI_MODEL=
|
||
|
||
# AI服务的API密钥,用于身份验证
|
||
# 默认值:空(不使用AI功能)
|
||
# AI_API_KEY=
|
||
|
||
# AI匹配提示词,用于自定义AI匹配行为
|
||
# 默认值:空(使用默认提示词)
|
||
# AI_MATCH_PROMPT=
|