mirror of
https://github.com/movie-web/movie-web.git
synced 2024-12-28 02:51:49 +01:00
export subtitle types as a list
This commit is contained in:
parent
5e776f8655
commit
495222eb10
@ -1,12 +1,10 @@
|
|||||||
import { mwFetch, proxiedFetch } from "@/backend/helpers/fetch";
|
import { mwFetch, proxiedFetch } from "@/backend/helpers/fetch";
|
||||||
import { MWCaption } from "@/backend/helpers/streams";
|
import { MWCaption } from "@/backend/helpers/streams";
|
||||||
import DOMPurify from "dompurify";
|
import DOMPurify from "dompurify";
|
||||||
import { list, parse, detect } from "subsrt-ts";
|
import { parse, detect, list } from "subsrt-ts";
|
||||||
import { ContentCaption } from "subsrt-ts/dist/types/handler";
|
import { ContentCaption } from "subsrt-ts/dist/types/handler";
|
||||||
|
|
||||||
export const subtitleTypeList = list()
|
export const subtitleTypeList = list().map((type) => `.${type}`);
|
||||||
.map((v) => `.${v}`)
|
|
||||||
.join(",");
|
|
||||||
export const sanitize = DOMPurify.sanitize;
|
export const sanitize = DOMPurify.sanitize;
|
||||||
export async function getCaptionUrl(caption: MWCaption): Promise<string> {
|
export async function getCaptionUrl(caption: MWCaption): Promise<string> {
|
||||||
if (caption.url.startsWith("blob:")) return caption.url;
|
if (caption.url.startsWith("blob:")) return caption.url;
|
||||||
@ -33,7 +31,7 @@ export function parseSubtitles(text: string): ContentCaption[] {
|
|||||||
if (detect(text) === "") {
|
if (detect(text) === "") {
|
||||||
throw new Error("Invalid subtitle format");
|
throw new Error("Invalid subtitle format");
|
||||||
}
|
}
|
||||||
return parse(text)
|
return parse(text).filter(
|
||||||
.filter((cue) => cue.type === "caption")
|
(cue) => cue.type === "caption"
|
||||||
.map((cue) => cue as ContentCaption);
|
) as ContentCaption[];
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ export function CaptionSelectionPopout(props: {
|
|||||||
<input
|
<input
|
||||||
className="hidden"
|
className="hidden"
|
||||||
ref={customCaptionUploadElement}
|
ref={customCaptionUploadElement}
|
||||||
accept={subtitleTypeList}
|
accept={subtitleTypeList.join(",")}
|
||||||
type="file"
|
type="file"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
if (!e.target.files) return;
|
if (!e.target.files) return;
|
||||||
|
Loading…
Reference in New Issue
Block a user