Delete src/lib/providers/youvideoProvider.ts

This commit is contained in:
2025-09-21 22:56:00 +02:00
parent f020ce8d40
commit 5b4fe59787

View File

@@ -1,135 +0,0 @@
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<IVideoList | null> {
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<Video | null> {
const resp = await fetch(new URL("/video/" + id, this.instanceURL));
if (!resp.ok) {
return null;
}
const video: unprocessedVideo = await resp.json();
if (video.extension == null) {
return null;
}
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",
videoURL: new URL("/youvideo/api/videofile/with_extension/" + id + video.extension, this.instanceURL).toString()
};
return convertedVideo;
}
async GetComments(id: string): Promise<ICommentList | null> {
return null;
}
async SearchVideos(query: string): Promise<IVideoList | null> {
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 contains = false;
contains = video.description.includes(query) || video.name.includes(query);
// This is like this to allow nicer things
if (!contains) {
return;
}
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",
width: video.metadata.size[0],
height: video.metadata.size[1]
};
initalVideos.push(convertedVideo);
});
return new YouvideoVideoList(initalVideos);
}
async CanUpload(): Promise<boolean> {
return false;
}
}
export { YouvideoProvider };