源列表只保留 zk.ktv1.top:6677, 删除其余全部源

实测(同一出口 IP, 编号 7009126, 三节点同时刻对照):
  zk.ktv1.top:6677 → i.php 200(与 e.ac19.cn 逐字段一致) + do.php 真源 7009126.ts / 7303235.ts ✅
  e.ac19.cn        → 同款 i.php + 真源 7009126.ts ✅
  124.223.20.123:58→ 同款 i.php, 但 do.php 返回 0021.ts(非本曲) ❌
三者同一后台; 昨日 e.ac19.cn/124.223.20.123:58 的 HTTP 403 空响应为临时额度/风控, 今日已恢复

改动:
- SongUrlResolver.DEFAULT_HOSTS 与 ktv_api.js CONFIG.HOSTS(含 HOST) 均只留 http://zk.ktv1.top:6677
- KTV_BRIDGE_API 11 → 12 (ktv_api.js 两处 + KtvJsBridge.kt 两处校验)
- ensureConfig(): api.php 失败也写负缓存(该节点无 api.php, 否则每首歌白请求一次)
- MainActivity 日志不再写死旧源名, 改用 SongUrlResolver.lastHost
- AdVideoFilter.AD_HOSTS 不变(管"返回地址"的 host, 与"取址入口"无关)

版本号按规则 3: 1.5.9(41) → 1.5.10(42); 本地打包(未发布)
验证: assembleRelease + 单元测试(9 例全过); 解包确认 APK 内 ktv_api.js 只含新源且标记为 12
This commit is contained in:
zijunchiang
2026-10-09 21:42:27 +08:00
parent 8208ee0fc2
commit e060ae5ebe
6 changed files with 41 additions and 36 deletions
+7 -17
View File
@@ -12,7 +12,7 @@
(function(global) {
'use strict';
// KTV_BRIDGE_API: 11 (Android 缓存校验标记,请勿删除)
// KTV_BRIDGE_API: 12 (Android 缓存校验标记,请勿删除)
// ─── 配置 ──────────────────────────────────────────
const CONFIG = {
@@ -21,23 +21,13 @@
SDK_KEY: '19042303a8374f67ae3fe1e25c97936f',
VN: '4.100.5.11121504',
VER: '4',
// 歌曲源(均为同一后台的多个入口; 运行时按可用性自动排序, 解析失败的源沉底)。
// 歌曲源入口(2026-10-09 起**只保留这一个**)。
// zk.ktv1.top:6677 实测与 e.ac19.cn 同后台(i.php 逐字段一致、do.php 同款 SUCCESS + 真源 CDN),
// 连续两首均返回"文件名=编号"的真源;其余入口只发广告或整体 403,已按用户要求删除。
HOSTS: [
// 2026-10 实测: 其余入口对每首歌统一返回广告/测试资源时,本入口仍稳定下发真源 CDN 地址,
// 故置于首位;它自己域名下的媒体始终是广告,由 AdVideoFilter 继续拦截。
'http://gz.ac16.vip',
// 与 w345.my 同一台服务器(154.219.102.181)的兄弟入口,登录层正常;
// 取址行为尚未定性 → 置于次位,由运行时自动升降序。
'http://a.ktv8.my',
'http://w.w345.my',
'http://desktok.top',
'http://mm.kk456.top',
'http://w.w345.my:66',
'http://z.w345.my',
'http://b.sktv.top',
'http://w345.my',
'http://zk.ktv1.top:6677',
],
HOST: 'http://w.w345.my',
HOST: 'http://zk.ktv1.top:6677',
MWS: 'https://mws.cherryonline.cn',
RSA_PUBKEY: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAucL0oFErd7REM6TSNa3EZdN1YaOs4J1eCybLPyoQ9ru3q1HU67agC9FzhrCG/RvAQUya5iPmQ8Caed05vqcCVcyJChmkSOGQ7DVShe2rGuTMNlpoRV6UzfcraaVS++7m2K/+kSZJ8OAhhhVuqPruMjsFYpdtstAwvyZT28b+eENwzpp9UHqsooZc7FZ0H8kTbs6XMkw4nIWo+4HoPAhNLEY+xdHvwY6drF/3WDTvsaoMrs73TVQCEEHzZNIz2H/is9VLMnIyOfnfcJi9br78Fj2xHzxu3sAySBOTVLmUMxqYh/g1ox5OXGcW93HJkQLkBi42tFAEkWYlYyl93+jbbQIDAQAB'
};
@@ -447,7 +437,7 @@
// ─── 导出 ──────────────────────────────────────────
global.KtvApi = KtvApi;
global.KtvApiConfig = CONFIG;
global.KtvBridgeApiVersion = 11;
global.KtvBridgeApiVersion = 12;
if (typeof module !== 'undefined' && module.exports) {
module.exports = {KtvApi: KtvApi, CONFIG: CONFIG};