feat: add melody-cdn-sharon and make it default

This commit is contained in:
shinya
2025-08-17 17:48:37 +08:00
parent 4ffd59c5d1
commit 6bab45b6d8
7 changed files with 71 additions and 48 deletions
+19 -17
View File
@@ -4,18 +4,19 @@ import Hls from 'hls.js';
function getDoubanImageProxyConfig(): {
proxyType:
| 'direct'
| 'server'
| 'img3'
| 'cmliussss-cdn-tencent'
| 'cmliussss-cdn-ali'
| 'custom';
| 'direct'
| 'server'
| 'img3'
| 'melody-cdn-sharon'
| 'cmliussss-cdn-tencent'
| 'cmliussss-cdn-ali'
| 'custom';
proxyUrl: string;
} {
const doubanImageProxyType =
localStorage.getItem('doubanImageProxyType') ||
(window as any).RUNTIME_CONFIG?.DOUBAN_IMAGE_PROXY_TYPE ||
'direct';
'melody-cdn-sharon';
const doubanImageProxy =
localStorage.getItem('doubanImageProxyUrl') ||
(window as any).RUNTIME_CONFIG?.DOUBAN_IMAGE_PROXY ||
@@ -41,6 +42,8 @@ export function processImageUrl(originalUrl: string): string {
switch (proxyType) {
case 'server':
return `/api/image-proxy?url=${encodeURIComponent(originalUrl)}`;
case 'melody-cdn-sharon':
return `https://douban.ihtw.moe/${encodeURIComponent(originalUrl)}`;
case 'img3':
return originalUrl.replace(/img\d+\.doubanio\.com/g, 'img3.doubanio.com');
case 'cmliussss-cdn-tencent':
@@ -131,14 +134,14 @@ export async function getVideoResolutionFromM3u8(m3u8Url: string): Promise<{
width >= 3840
? '4K' // 4K: 3840x2160
: width >= 2560
? '2K' // 2K: 2560x1440
: width >= 1920
? '1080p' // 1080p: 1920x1080
: width >= 1280
? '720p' // 720p: 1280x720
: width >= 854
? '480p'
: 'SD'; // 480p: 854x480
? '2K' // 2K: 2560x1440
: width >= 1920
? '1080p' // 1080p: 1920x1080
: width >= 1280
? '720p' // 720p: 1280x720
: width >= 854
? '480p'
: 'SD'; // 480p: 854x480
resolve({
quality,
@@ -211,8 +214,7 @@ export async function getVideoResolutionFromM3u8(m3u8Url: string): Promise<{
});
} catch (error) {
throw new Error(
`Error getting video resolution: ${
error instanceof Error ? error.message : String(error)
`Error getting video resolution: ${error instanceof Error ? error.message : String(error)
}`
);
}