fix(api): enhance SourceConfig filtering to ensure unique site entries and improve validation

fix(update): update GitHub URLs in UpdateConfig and bump version to 1.3.5
This commit is contained in:
zimplexing
2025-08-15 17:24:42 +08:00
parent cfb3982611
commit 6db0c5d888
3 changed files with 23 additions and 11 deletions

View File

@@ -7,11 +7,11 @@ export const UPDATE_CONFIG = {
// GitHub相关URL // GitHub相关URL
GITHUB_RAW_URL: GITHUB_RAW_URL:
"https://gh-proxy.com/https://raw.githubusercontent.com/orion-lib/OrionTV/refs/heads/master/package.json", "https://ghfast.top/https://raw.githubusercontent.com/orion-lib/OrionTV/refs/heads/master/package.json",
// 获取平台特定的下载URL // 获取平台特定的下载URL
getDownloadUrl(version: string): string { getDownloadUrl(version: string): string {
return `https://gh-proxy.com/https://github.com/orion-lib/OrionTV/releases/download/v${version}/orionTV.${version}.apk`; return `https://ghfast.top/https://github.com/orion-lib/OrionTV/releases/download/v${version}/orionTV.${version}.apk`;
}, },
// 是否显示更新日志 // 是否显示更新日志

View File

@@ -2,7 +2,7 @@
"name": "OrionTV", "name": "OrionTV",
"private": true, "private": true,
"main": "expo-router/entry", "main": "expo-router/entry",
"version": "1.3.4", "version": "1.3.5",
"scripts": { "scripts": {
"start": "EXPO_TV=1 EXPO_USE_METRO_WORKSPACE_ROOT=1 expo start", "start": "EXPO_TV=1 EXPO_USE_METRO_WORKSPACE_ROOT=1 expo start",
"android": "EXPO_TV=1 EXPO_USE_METRO_WORKSPACE_ROOT=1 expo run:android", "android": "EXPO_TV=1 EXPO_USE_METRO_WORKSPACE_ROOT=1 expo run:android",

View File

@@ -224,15 +224,27 @@ export class API {
return []; return [];
} }
// 过滤并验证每个站点配置 // 过滤并验证每个站点配置,同时进行去重
return config.Config.SourceConfig const seenKeys = new Set<string>();
const uniqueSites: ApiSite[] = [];
config.Config.SourceConfig
.filter((site: any) => site && !site.disabled) .filter((site: any) => site && !site.disabled)
.map((site: any) => ({ .forEach((site: any) => {
key: site.key || '', const key = site.key || '';
api: site.api || '', // 基于 key 字段去重
name: site.name || '', if (key && !seenKeys.has(key)) {
detail: site.detail seenKeys.add(key);
})); uniqueSites.push({
key: key,
api: site.api || '',
name: site.name || '',
detail: site.detail
});
}
});
return uniqueSites;
} }
async getVideoDetail(source: string, id: string): Promise<VideoDetail> { async getVideoDetail(source: string, id: string): Promise<VideoDetail> {