Files
MoonTVPlus/src/lib/netdisk/tianyi-session-resolver.ts
T
2026-04-27 09:43:40 +08:00

49 lines
1.3 KiB
TypeScript

import { getConfig } from '@/lib/config';
import { listTianyiShareVideos } from './tianyi.client';
import {
createTianyiNetdiskSession,
getTianyiNetdiskSession,
parseTianyiNetdiskId,
refreshTianyiNetdiskSession,
} from './tianyi-session-cache';
export async function resolveTianyiSession(id: string) {
const config = await getConfig();
const tianyiConfig = config.NetDiskConfig?.Tianyi;
if (!tianyiConfig?.Enabled || !tianyiConfig.Account || !tianyiConfig.Password) {
throw new Error('天翼云盘未配置或未启用');
}
let session = refreshTianyiNetdiskSession(id) || getTianyiNetdiskSession(id);
if (!session) {
const payload = parseTianyiNetdiskId(id);
const result = await listTianyiShareVideos(
payload.shareUrl,
tianyiConfig.Account,
tianyiConfig.Password,
payload.passcode || ''
);
session = createTianyiNetdiskSession({
title: result.title,
shareUrl: payload.shareUrl,
passcode: payload.passcode,
shareId: result.shareId,
shareMode: result.shareMode,
isFolder: result.isFolder,
accessCode: result.accessCode,
files: result.files,
});
}
if (!session) {
throw new Error('天翼云盘播放信息恢复失败');
}
return {
session,
account: tianyiConfig.Account,
password: tianyiConfig.Password,
};
}