diff --git a/apps/server/src/services/vod.ts b/apps/server/src/services/vod.ts index 4ecab76..6a9712c 100644 --- a/apps/server/src/services/vod.ts +++ b/apps/server/src/services/vod.ts @@ -5,11 +5,8 @@ import { decrypt } from '../utils/crypto'; export interface SearchParams { keyword?: string; cateId?: number; - status?: string; pageNo?: number; pageSize?: number; - startTime?: string; - endTime?: string; sortBy?: string; sortOrder?: 'Asc' | 'Desc'; } @@ -22,7 +19,10 @@ export interface SearchResult { } export function createVodClient(account: Account): RPCClient { - const endpoint = account.endpoint || `vod.${account.region}.aliyuncs.com`; + let endpoint = account.endpoint || `vod.${account.region}.aliyuncs.com`; + if (!endpoint.startsWith('http://') && !endpoint.startsWith('https://')) { + endpoint = `https://${endpoint}`; + } return new RPCClient({ accessKeyId: account.accessKeyId, accessKeySecret: decrypt(account.accessKeySecret), @@ -35,6 +35,10 @@ export async function searchMedia(client: RPCClient, params: SearchParams): Prom const requestParams: Record = { PageNo: params.pageNo || 1, PageSize: Math.min(params.pageSize || 20, 100), + SearchType: 'video', + Fields: 'Title,CoverURL,CreationTime,Status,Duration,Size,CateId,CateName,Tags', + SortBy: params.sortBy || 'CreationTime', + SortOrder: params.sortOrder || 'Desc', }; const searchParams: string[] = []; @@ -44,20 +48,9 @@ export async function searchMedia(client: RPCClient, params: SearchParams): Prom if (params.cateId) { searchParams.push(`CateId=${params.cateId}`); } - if (params.status) { - searchParams.push(`Status='${params.status}'`); - } - if (params.startTime && params.endTime) { - searchParams.push(`CreationTime>${params.startTime}`); - searchParams.push(`CreationTime<${params.endTime}`); - } if (searchParams.length > 0) { - requestParams.SearchType = 'video'; - requestParams.Fields = 'Title,CoverURL,CreationTime,Status,Duration,Size,CateId,CateName,Tags'; requestParams.Match = searchParams.join(' and '); - requestParams.SortBy = params.sortBy || 'CreationTime'; - requestParams.SortOrder = params.sortOrder || 'Desc'; } const action = 'SearchMedia'; @@ -67,20 +60,23 @@ export async function searchMedia(client: RPCClient, params: SearchParams): Prom >; const mediaListRaw = (response.MediaList as Record[]) || []; - const mediaList = mediaListRaw.map((item) => ({ - videoId: (item.VideoId || item.MediaId) as string, - title: item.Title as string, - description: item.Description as string, - duration: item.Duration as number, - size: item.Size as number, - coverURL: item.CoverURL as string, - status: item.Status as string, - cateId: item.CateId as number, - cateName: item.CateName as string, - tags: item.Tags as string, - creationTime: item.CreationTime as string, - modificationTime: item.ModificationTime as string, - })); + const mediaList = mediaListRaw.map((item) => { + const video = (item.Video as Record) || {}; + return { + videoId: (video.VideoId || item.MediaId) as string, + title: video.Title as string, + description: video.Description as string, + duration: video.Duration as number, + size: video.Size as number, + coverURL: video.CoverURL as string, + status: video.Status as string, + cateId: video.CateId as number, + cateName: video.CateName as string, + tags: video.Tags as string, + creationTime: (video.CreationTime || item.CreationTime) as string, + modificationTime: video.ModificationTime as string, + }; + }); return { total: (response.Total as number) || 0, diff --git a/apps/web/src/api/videos.ts b/apps/web/src/api/videos.ts index ef1f516..d97a12d 100644 --- a/apps/web/src/api/videos.ts +++ b/apps/web/src/api/videos.ts @@ -26,11 +26,8 @@ export interface PlayInfo { export interface SearchParams { keyword?: string; cateId?: number; - status?: string; pageNo?: number; pageSize?: number; - startTime?: string; - endTime?: string; sortBy?: string; sortOrder?: 'Asc' | 'Desc'; } diff --git a/apps/web/src/pages/Videos.tsx b/apps/web/src/pages/Videos.tsx index c72a6b8..bd0cf10 100644 --- a/apps/web/src/pages/Videos.tsx +++ b/apps/web/src/pages/Videos.tsx @@ -6,7 +6,6 @@ import { Space, Form, Select, - DatePicker, message, Modal, Drawer, @@ -21,7 +20,6 @@ import { searchVideos, batchDelete, batchDownload, VideoItem, DownloadResult } f import { listCategories } from '../api/categories'; import { useAuthStore } from '../store/auth'; -const { RangePicker } = DatePicker; const { Text } = Typography; const formatDuration = (seconds?: number) => { @@ -68,11 +66,6 @@ export default function VideosPage() { if (values.keyword) query.keyword = values.keyword; if (values.cateId) query.cateId = values.cateId; - if (values.status) query.status = values.status; - if (values.dateRange?.[0] && values.dateRange?.[1]) { - query.startTime = values.dateRange[0].toISOString(); - query.endTime = values.dateRange[1].toISOString(); - } const result = await searchVideos(query); setVideos(result.videos); @@ -230,18 +223,6 @@ export default function VideosPage() { ))} - - - - - -