mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-05 04:56:37 +08:00
优化界面,优化多版本切换逻辑
This commit is contained in:
@@ -1,4 +1,10 @@
|
||||
import { mediaVersionLabel } from './mediaVersion.ts'
|
||||
import {
|
||||
isStrmMedia,
|
||||
mediaVersionFileName,
|
||||
mediaVersionLabel,
|
||||
mediaVersionMatches,
|
||||
mediaVersionSourceLabel,
|
||||
} from './mediaVersion.ts'
|
||||
import type { Media } from '../types/index.ts'
|
||||
|
||||
function check(name: string, condition: boolean) {
|
||||
@@ -41,4 +47,21 @@ const dottedPart = mediaVersionLabel(media({
|
||||
}))
|
||||
check('part2 filename fallback keeps part token', dottedPart.includes('part2'))
|
||||
|
||||
// 折叠后的选集行 id 是最优版本;播放中的可能是组内另一个版本。
|
||||
const local4k = media({ id: 'v-4k', path: '/media/Inception.2010.2160p.mkv', height: 2160 })
|
||||
const local1080 = media({ id: 'v-1080', path: '/media/Inception.2010.1080p.mkv', height: 1080 })
|
||||
const cloudRow = media({ id: 'v-cloud', path: '/strm/Inception.2010.mkv.strm', strm_url: '/api/strm/play/cloud115/video.mkv?pickcode=a' })
|
||||
const groupedRow = media({ id: 'v-4k', versions: [local4k, local1080, cloudRow] })
|
||||
|
||||
check('matches own id', mediaVersionMatches(groupedRow, 'v-4k'))
|
||||
check('matches nested version id', mediaVersionMatches(groupedRow, 'v-1080'))
|
||||
check('rejects unrelated id', !mediaVersionMatches(groupedRow, 'v-other'))
|
||||
check('rejects empty id', !mediaVersionMatches(groupedRow, ''))
|
||||
|
||||
check('strm is cloud source', mediaVersionSourceLabel(cloudRow) === '云端直链')
|
||||
check('mkv is local source', mediaVersionSourceLabel(local1080) === '本地文件')
|
||||
check('strm filename drops outer extension', mediaVersionFileName(cloudRow) === 'Inception.2010.mkv')
|
||||
check('missing path has no filename', mediaVersionFileName(media({ path: '' })) === '')
|
||||
check('isStrmMedia detects strm url', isStrmMedia(cloudRow))
|
||||
|
||||
console.log('mediaVersion.test.ts: ok')
|
||||
|
||||
Reference in New Issue
Block a user