import { type ICommentList, type IProvider, type IVideoList, type Video } from "./iProvider"; class YouvideoVideoList implements IVideoList { videos: Video[]; constructor(initialVideos: Video[]) { this.videos = initialVideos; } HasMore(): boolean { return false; } HasPrevious(): boolean { return false; } Next(): void { } Previous(): void { } } type unprocessedVideo = { cached: boolean description: string extension?: string id: string metadata: { duration: number fps: number size: number[] } name: string }; class YouvideoProvider implements IProvider { instanceURL: URL constructor(url: string) { this.instanceURL = new URL(url); } async GetVideos(): Promise { const resp = await fetch(new URL("/api/videos", this.instanceURL)) if (!resp.ok) { return null; } let initalVideos: Video[] = []; const json: unprocessedVideo[] = await resp.json(); json.forEach(video => { let convertedVideo: Video = { description: video.description, hasVideo: true, id: video.id, mime: "", title: video.name, fps: video.metadata.fps, duration: video.metadata.duration, uploader: "Youvideo Provider" }; initalVideos.push(convertedVideo); }); return new YouvideoVideoList(initalVideos); } async GetVideoInfo(id: string): Promise