File size: 6,194 Bytes
7eff83b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 |
// 全局常量配置
const PROXY_URL = '/proxy/'; // 适用于 Cloudflare, Netlify (带重写), Vercel (带重写)
// const HOPLAYER_URL = 'https://hoplayer.com/index.html';
const SEARCH_HISTORY_KEY = 'videoSearchHistory';
const MAX_HISTORY_ITEMS = 5;
// 密码保护配置
const PASSWORD_CONFIG = {
localStorageKey: 'passwordVerified', // 存储验证状态的键名
verificationTTL: 90 * 24 * 60 * 60 * 1000, // 验证有效期(90天,约3个月)
};
// 网站信息配置
const SITE_CONFIG = {
name: 'LibreTV',
url: 'https://libretv.is-an.org',
description: '免费在线视频搜索与观看平台',
logo: 'https://images.icon-icons.com/38/PNG/512/retrotv_5520.png',
version: '1.0.3'
};
// API站点配置
const API_SITES = {
heimuer: {
api: 'https://json.heimuer.xyz',
name: '黑木耳',
detail: 'https://heimuer.tv'
},
ffzy: {
api: 'http://ffzy5.tv',
name: '非凡影视',
detail: 'http://ffzy5.tv'
},
tyyszy: {
api: 'https://tyyszy.com',
name: '天涯资源',
},
ckzy: {
api: 'https://www.ckzy1.com',
name: 'CK资源',
adult: true
},
zy360: {
api: 'https://360zy.com',
name: '360资源',
},
wolong: {
api: 'https://wolongzyw.com',
name: '卧龙资源',
},
cjhw: {
api: 'https://cjhwba.com',
name: '新华为',
},
hwba: {
api: 'https://cjwba.com',
name: '华为吧资源',
},
jisu: {
api: 'https://jszyapi.com',
name: '极速资源',
detail: 'https://jszyapi.com'
},
dbzy: {
api: 'https://dbzy.com',
name: '豆瓣资源',
},
bfzy: {
api: 'https://bfzyapi.com',
name: '暴风资源',
},
mozhua: {
api: 'https://mozhuazy.com',
name: '魔爪资源',
},
mdzy: {
api: 'https://www.mdzyapi.com',
name: '魔都资源',
},
ruyi: {
api: 'https://cj.rycjapi.com',
name: '如意资源',
},
jkun: {
api: 'https://jkunzyapi.com',
name: 'jkun资源',
adult: true
},
bwzy: {
api: 'https://api.bwzym3u8.com',
name: '百万资源',
adult: true
},
souav: {
api: 'https://api.souavzy.vip',
name: 'souav资源',
adult: true
},
r155: {
api: 'https://155api.com',
name: '155资源',
adult: true
},
lsb: {
api: 'https://apilsbzy1.com',
name: 'lsb资源',
adult: true
},
huangcang: {
api: 'https://hsckzy.vip',
name: '黄色仓库',
adult: true,
detail: 'https://hsckzy.vip'
},
zuid: {
api: 'https://api.zuidapi.com',
name: '最大资源'
},
yutu: {
api: 'https://yutuzy10.com',
name: '玉兔资源',
adult: true
}
// 您可以按需添加更多源
};
// 添加聚合搜索的配置选项
const AGGREGATED_SEARCH_CONFIG = {
enabled: true, // 是否启用聚合搜索
timeout: 8000, // 单个源超时时间(毫秒)
maxResults: 10000, // 最大结果数量
parallelRequests: true, // 是否并行请求所有源
showSourceBadges: true // 是否显示来源徽章
};
// 抽象API请求配置
const API_CONFIG = {
search: {
// 修改搜索接口为返回更多详细数据(包括视频封面、简介和播放列表)
path: '/api.php/provide/vod/?ac=videolist&wd=',
headers: {
'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',
'Accept': 'application/json'
}
},
detail: {
// 修改详情接口也使用videolist接口,但是通过ID查询,减少请求次数
path: '/api.php/provide/vod/?ac=videolist&ids=',
headers: {
'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',
'Accept': 'application/json'
}
}
};
// 优化后的正则表达式模式
const M3U8_PATTERN = /\$https?:\/\/[^"'\s]+?\.m3u8/g;
// 添加自定义播放器URL
const CUSTOM_PLAYER_URL = 'player.html'; // 使用相对路径引用本地player.html
// 增加视频播放相关配置
const PLAYER_CONFIG = {
autoplay: true,
allowFullscreen: true,
width: '100%',
height: '600',
timeout: 15000, // 播放器加载超时时间
filterAds: true, // 是否启用广告过滤
autoPlayNext: true, // 默认启用自动连播功能
adFilteringEnabled: true, // 默认开启分片广告过滤
adFilteringStorage: 'adFilteringEnabled' // 存储广告过滤设置的键名
};
// 增加错误信息本地化
const ERROR_MESSAGES = {
NETWORK_ERROR: '网络连接错误,请检查网络设置',
TIMEOUT_ERROR: '请求超时,服务器响应时间过长',
API_ERROR: 'API接口返回错误,请尝试更换数据源',
PLAYER_ERROR: '播放器加载失败,请尝试其他视频源',
UNKNOWN_ERROR: '发生未知错误,请刷新页面重试'
};
// 添加进一步安全设置
const SECURITY_CONFIG = {
enableXSSProtection: true, // 是否启用XSS保护
sanitizeUrls: true, // 是否清理URL
maxQueryLength: 100, // 最大搜索长度
// allowedApiDomains 不再需要,因为所有请求都通过内部代理
};
// 添加多个自定义API源的配置
const CUSTOM_API_CONFIG = {
separator: ',', // 分隔符
maxSources: 5, // 最大允许的自定义源数量
testTimeout: 5000, // 测试超时时间(毫秒)
namePrefix: 'Custom-', // 自定义源名称前缀
validateUrl: true, // 验证URL格式
cacheResults: true, // 缓存测试结果
cacheExpiry: 5184000000, // 缓存过期时间(2个月)
adultPropName: 'isAdult' // 用于标记成人内容的属性名
};
// 新增隐藏内置黄色采集站API的变量,默认为true
const HIDE_BUILTIN_ADULT_APIS = true;
|