PageSourceSearch

https://libretv-bia.pages.dev/js/config.js

js libretv-bia.pages.dev collected 2026-10-03 05:39:56 UTC 9,013 bytes, 263 lines download raw bytes

1// 全局常量配置
2const PROXY_URL = '/proxy/';    // 适用于 Cloudflare, Netlify (带重写), Vercel (带重写)
3// const HOPLAYER_URL = 'https://hoplayer.com/index.html';
4const SEARCH_HISTORY_KEY = 'videoSearchHistory';
5const MAX_HISTORY_ITEMS = 5;
6
7// 密码保护配置
8const PASSWORD_CONFIG = {
9    localStorageKey: 'passwordVerified',  // 存储验证状态的键名
10    verificationTTL: 90 * 24 * 60 * 60 * 1000,  // 验证有效期(90天,约3个月)
11    adminLocalStorageKey: 'adminPasswordVerified'  // 新增的管理员验证状态的键名
12};
13
14// 网站信息配置
15const SITE_CONFIG = {
16    name: 'LibreTV',
17    url: 'https://libretv.is-an.org',
18    description: '免费在线视频搜索与观看平台',
19    logo: 'image/logo.png',
20    version: '1.0.3'
21};
22
23// API站点配置
24const API_SITES = {
25    dyttzy: {
26        api: 'http://caiji.dyttzyapi.com/api.php/provide/vod',
27        name: '电影天堂资源',
28        detail: 'http://caiji.dyttzyapi.com', 
29    },
30    ruyi: {
31        api: 'https://cj.rycjapi.com/api.php/provide/vod',
32        name: '如意资源',
33    },
34    bfzy: {
35        api: 'https://bfzyapi.com/api.php/provide/vod',
36        name: '暴风资源',
37    },
38    tyyszy: {
39        api: 'https://tyyszy.com/api.php/provide/vod',
40        name: '天涯资源',
41    },
42    // xiaomaomi: {
43    //     api: 'https://zy.xiaomaomi.cc/api.php/provide/vod',
44    //     name: '小猫咪资源',
45    // },
46    ffzy: {
47        api: 'http://ffzy5.tv/api.php/provide/vod',
48        name: '非凡影视',
49        detail: 'http://ffzy5.tv', 
50    },
51    heimuer: {
52        api: 'https://json.heimuer.xyz/api.php/provide/vod',
53        name: '黑木耳',
54        detail: 'https://heimuer.tv', 
55    },
56    zy360: {
57        api: 'https://360zy.com/api.php/provide/vod',
58        name: '360资源',
59    },
60    iqiyi: {
61        api: 'https://www.iqiyizyapi.com/api.php/provide/vod',
62        name: 'iqiyi资源',
63    },
64    wolong: {
65        api: 'https://wolongzyw.com/api.php/provide/vod',
66        name: '卧龙资源',
67    }, 
68    hwba: {
69        api: 'https://cjhwba.com/api.php/provide/vod',
70        name: '华为吧资源',
71    },
72    jisu: {
73        api: 'https://jszyapi.com/api.php/provide/vod',
74        name: '极速资源',
75        detail: 'https://jszyapi.com', 
76    },
77    dbzy: {
78        api: 'https://dbzy.tv/api.php/provide/vod',
79        name: '豆瓣资源',
80    },
81    mozhua: {
82        api: 'https://mozhuazy.com/api.php/provide/vod',
83        name: '魔爪资源',
84    },
85    mdzy: {
86        api: 'https://www.mdzyapi.com/api.php/provide/vod',
87        name: '魔都资源',
88    },
89    zuid: {
90        api: 'https://api.zuidapi.com/api.php/provide/vod',
91        name: '最大资源'
92    },
93    yinghua: {
94        api: 'https://m3u8.apiyhzy.com/api.php/provide/vod',
95        name: '樱花资源'
96    },
97    baidu: {
98        api: 'https://api.apibdzy.com/api.php/provide/vod',
99        name: '百度云资源'
100    },
101    wujin: {
102        api: 'https://api.wujinapi.me/api.php/provide/vod',
103        name: '无尽资源'
104    },
105    wwzy: {
106        api: 'https://wwzy.tv/api.php/provide/vod',
107        name: '旺旺短剧'
108    },
109    ikun: {
110        api: 'https://ikunzyapi.com/api.php/provide/vod',
111        name: 'iKun资源'
112    },
113    testSource: {
114        api: 'https://www.example.com/api.php/provide/vod',
115        name: '空内容测试源',
116        adult: true
117    },
118    // 下面是一些成人内容的API源,默认隐藏,使用本项目浏览黄色内容违背项目初衷
119    // 互联网上传播的色情内容将人彻底客体化、工具化,是性别解放和人类平等道路上的巨大障碍。
120    // 这些黄色影片是资本主义父权制压迫的最恶毒体现,它将暴力和屈辱商品化,践踏人的尊严,对受害者造成无法弥愈的伤害,并毒害社会关系。
121    // 资本为了利润,不惜将最卑劣的剥削(包括对受害者和表演者的剥削)和暴力商品化,
122    // 把性别剥削塑造成“性享受”麻痹观众的意识,转移我们对现实生活中矛盾和压迫的注意力。
123    // 这些影片和背后的产业已经使数百万男女“下海”,出卖自己的身体,甚至以此为生计。
124    // 而作为观众无辜吗?毫无疑问,他们促成了黄色产业链的再生产。
125    // 我们提供此警告,是希望您能认清这些内容的本质——它们是压迫和奴役的工具,而非娱乐。
126    // ckzy: {
127    //     api: 'https://www.ckzy1.com',
128    //     name: 'CK资源',
129    //     adult: true
130    // },
131    // jkun: {
132    //     api: 'https://jkunzyapi.com',
133    //     name: 'jkun资源',
134    //     adult: true
135    // },
136    // bwzy: {
137    //     api: 'https://api.bwzym3u8.com',
138    //     name: '百万资源',
139    //     adult: true
140    // },
141    // souav: {
142    //     api: 'https://api.souavzy.vip',
143    //     name: 'souav资源',
144    //     adult: true
145    // },
146    // r155: {
147    //     api: 'https://155api.com',
148    //     name: '155资源',
149    //     adult: true
150    // },
151    // lsb: {
152    //     api: 'https://apilsbzy1.com',
153    //     name: 'lsb资源',
154    //     adult: true
155    // },
156    // huangcang: {
157    //     api: 'https://hsckzy.vip',
158    //     name: '黄色仓库',
159    //     adult: true,
160    //     detail: 'https://hsckzy.vip'
161    // },
162    // yutu: {
163    //     api: 'https://yutuzy10.com',
164    //     name: '玉兔资源',
165    //     adult: true
166    // },
167
168    // 下面是资源失效率高的API源,不建议使用
169    // subo: {
170    //     api: 'https://subocaiji.com/api.php/provide/vod',
171    //     name: '速播资源'
172    // },
173    // fczy: {
174    //     api: 'https://api.fczy888.me/api.php/provide/vod',
175    //     name: '蜂巢资源'
176    // },
177    // ukzy: {
178    //     api: 'https://api.ukuapi88.com/api.php/provide/vod',
179    //     name: 'U酷资源'
180    // },
181};
182
183// 添加聚合搜索的配置选项
184const AGGREGATED_SEARCH_CONFIG = {
185    enabled: true,             // 是否启用聚合搜索
186    timeout: 8000,            // 单个源超时时间(毫秒)
187    maxResults: 10000,          // 最大结果数量
188    parallelRequests: true,   // 是否并行请求所有源
189    showSourceBadges: true    // 是否显示来源徽章
190};
191
192// 抽象API请求配置
193const API_CONFIG = {
194    search: {
195        // 只拼接参数部分,不再包含 /api.php/provide/vod/
196        path: '?ac=videolist&wd=',
197        pagePath: '?ac=videolist&wd={query}&pg={page}',
198        maxPages: 50, // 最大获取页数
199        headers: {
200            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
201            'Accept': 'application/json'
202        }
203    },
204    detail: {
205        // 只拼接参数部分
206        path: '?ac=videolist&ids=',
207        headers: {
208            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
209            'Accept': 'application/json'
210        }
211    }
212};
213
214// 优化后的正则表达式模式
215const M3U8_PATTERN = /\$https?:\/\/[^"'\s]+?\.m3u8/g;
216
217// 添加自定义播放器URL
218const CUSTOM_PLAYER_URL = 'player.html'; // 使用相对路径引用本地player.html
219
220// 增加视频播放相关配置
221const PLAYER_CONFIG = {
222    autoplay: true,
223    allowFullscreen: true,
224    width: '100%',
225    height: '600',
226    timeout: 15000,  // 播放器加载超时时间
227    filterAds: true,  // 是否启用广告过滤
228    autoPlayNext: true,  // 默认启用自动连播功能
229    adFilteringEnabled: true, // 默认开启分片广告过滤
230    adFilteringStorage: 'adFilteringEnabled' // 存储广告过滤设置的键名
231};
232
233// 增加错误信息本地化
234const ERROR_MESSAGES = {
235    NETWORK_ERROR: '网络连接错误,请检查网络设置',
236    TIMEOUT_ERROR: '请求超时,服务器响应时间过长',
237    API_ERROR: 'API接口返回错误,请尝试更换数据源',
238    PLAYER_ERROR: '播放器加载失败,请尝试其他视频源',
239    UNKNOWN_ERROR: '发生未知错误,请刷新页面重试'
240};
241
242// 添加进一步安全设置
243const SECURITY_CONFIG = {
244    enableXSSProtection: true,  // 是否启用XSS保护
245    sanitizeUrls: true,         // 是否清理URL
246    maxQueryLength: 100,        // 最大搜索长度
247    // allowedApiDomains 不再需要,因为所有请求都通过内部代理
248};
249
250// 添加多个自定义API源的配置
251const CUSTOM_API_CONFIG = {
252    separator: ',',           // 分隔符
253    maxSources: 5,            // 最大允许的自定义源数量
254    testTimeout: 5000,        // 测试超时时间(毫秒)
255    namePrefix: 'Custom-',    // 自定义源名称前缀
256    validateUrl: true,        // 验证URL格式
257    cacheResults: true,       // 缓存测试结果
258    cacheExpiry: 5184000000,  // 缓存过期时间(2个月)
259    adultPropName: 'isAdult' // 用于标记成人内容的属性名
260};
261
262// 隐藏内置黄色采集站API的变量
263const HIDE_BUILTIN_ADULT_APIS = false;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.