diff --git a/README.md b/README.md index d1d5a29..b4b0af0 100644 --- a/README.md +++ b/README.md @@ -231,6 +231,9 @@ Settings > Functions > Advanced Setting > Function Region 切换为 Hong Kong, ```regex # EPISODE_TITLE_FILTER 默认值 (特别|惊喜|纳凉)?企划|合伙人手记|超前|速览|vlog|reaction|纯享|加更|抢先|抢鲜|预告|花絮|特辑|彩蛋|专访|幕后|直播|未播|衍生|番外|会员|片花|精华|看点|速看|解读|影评|解说|吐槽|盘点|拍摄花絮|制作花絮|幕后花絮|未播花絮|独家花絮|花絮特辑|先导预告|终极预告|正式预告|官方预告|彩蛋片段|删减片段|未播片段|番外彩蛋|精彩片段|精彩看点|精彩回顾|精彩集锦|看点解析|看点预告|NG镜头|NG花絮|番外篇|番外特辑|制作特辑|拍摄特辑|幕后特辑|导演特辑|演员特辑|片尾曲|插曲|主题曲|背景音乐|OST|音乐MV|歌曲MV|前季回顾|剧情回顾|往期回顾|内容总结|剧情盘点|精选合集|剪辑合集|混剪视频|独家专访|演员访谈|导演访谈|主创访谈|媒体采访|发布会采访|抢先看|抢先版|试看版|短剧|精编|会员版|Plus|独家版|特别版|短片|合唱|陪看|MV|高清正片|发布会|.{2,}篇|观察室|上班那点事儿|周top|赛段|直拍|REACTION|VLOG|全纪录|开播|先导|总宣|展演 + +# 如果你想新增过滤词,请自定义EPISODE_TITLE_FILTER,示例如下,每个词用'|'隔开,增加的词都会追加到默认值后面 +测试|test ``` ```regex diff --git a/danmu_api/worker.js b/danmu_api/worker.js index 1729352..b8f8752 100644 --- a/danmu_api/worker.js +++ b/danmu_api/worker.js @@ -1,6 +1,6 @@ // 全局状态(Cloudflare 和 Vercel 都可能重用实例) // ⚠️ 不是持久化存储,每次冷启动会丢失 -const VERSION = "1.1.5"; +const VERSION = "1.1.6"; let animes = []; let episodeIds = []; let episodeNum = 10001; // 全局变量,用于自增 ID @@ -142,13 +142,20 @@ let episodeTitleFilter; // 这里既支持 Cloudflare env,也支持 Node process.env function resolveEpisodeTitleFilter(env) { - // 获取环境变量中的 PLATFORM_ORDER 配置 + // 获取默认关键字 let keywords = DEFAULT_EPISODE_TITLE_FILTER; + // 检查环境变量并扩展关键字 if (env && env.EPISODE_TITLE_FILTER) { - keywords = env.EPISODE_TITLE_FILTER; // Cloudflare Workers + const customFilter = env.EPISODE_TITLE_FILTER.replace(/^\|+|\|+$/g, ''); // 去除前后 | 字符 + if (customFilter) { + keywords = `${keywords}|${customFilter}`; // Cloudflare Workers + } } else if (typeof process !== "undefined" && process.env?.EPISODE_TITLE_FILTER) { - keywords = process.env.EPISODE_TITLE_FILTER; // Vercel / Node + const customFilter = process.env.EPISODE_TITLE_FILTER.replace(/^\|+|\|+$/g, ''); // 去除前后 | 字符 + if (customFilter) { + keywords = `${keywords}|${customFilter}`; // Vercel / Node + } } try { @@ -160,6 +167,8 @@ function resolveEpisodeTitleFilter(env) { keywords = DEFAULT_EPISODE_TITLE_FILTER; } + log("log", "EPISODE_TITLE_FILTER keywords: ", keywords); + // 返回由过滤后的关键字生成的正则表达式 return new RegExp( "^" + diff --git a/wrangler.toml b/wrangler.toml index 976c4af..1643a64 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -1,3 +1,4 @@ name = "danmu-api" main = "danmu_api/worker.js" -compatibility_date = "2025-09-13" \ No newline at end of file +compatibility_date = "2025-09-13" +keep_vars = true \ No newline at end of file