mirror of
https://github.com/p-stream/p-stream.git
synced 2026-05-12 23:11:07 +00:00
use labelToLanguageCode from providers repo
it's now exported
This commit is contained in:
parent
69af09a8de
commit
5e1bd09af5
4 changed files with 10 additions and 298 deletions
|
|
@ -1,104 +1,8 @@
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
|
import { labelToLanguageCode } from "@p-stream/providers";
|
||||||
|
|
||||||
import { CaptionListItem } from "@/stores/player/slices/source";
|
import { CaptionListItem } from "@/stores/player/slices/source";
|
||||||
|
|
||||||
// Helper function to convert language names to language codes
|
|
||||||
function labelToLanguageCode(languageName: string): string {
|
|
||||||
const languageMap: Record<string, string> = {
|
|
||||||
English: "en",
|
|
||||||
Spanish: "es",
|
|
||||||
French: "fr",
|
|
||||||
German: "de",
|
|
||||||
Italian: "it",
|
|
||||||
Portuguese: "pt",
|
|
||||||
Russian: "ru",
|
|
||||||
Japanese: "ja",
|
|
||||||
Korean: "ko",
|
|
||||||
Chinese: "zh",
|
|
||||||
Arabic: "ar",
|
|
||||||
Hindi: "hi",
|
|
||||||
Turkish: "tr",
|
|
||||||
Dutch: "nl",
|
|
||||||
Polish: "pl",
|
|
||||||
Swedish: "sv",
|
|
||||||
Norwegian: "no",
|
|
||||||
Danish: "da",
|
|
||||||
Finnish: "fi",
|
|
||||||
Greek: "el",
|
|
||||||
Hebrew: "he",
|
|
||||||
Thai: "th",
|
|
||||||
Vietnamese: "vi",
|
|
||||||
Indonesian: "id",
|
|
||||||
Malay: "ms",
|
|
||||||
Filipino: "tl",
|
|
||||||
Ukrainian: "uk",
|
|
||||||
Romanian: "ro",
|
|
||||||
Czech: "cs",
|
|
||||||
Hungarian: "hu",
|
|
||||||
Bulgarian: "bg",
|
|
||||||
Croatian: "hr",
|
|
||||||
Serbian: "sr",
|
|
||||||
Slovak: "sk",
|
|
||||||
Slovenian: "sl",
|
|
||||||
Estonian: "et",
|
|
||||||
Latvian: "lv",
|
|
||||||
Lithuanian: "lt",
|
|
||||||
Icelandic: "is",
|
|
||||||
Maltese: "mt",
|
|
||||||
Georgian: "ka",
|
|
||||||
Armenian: "hy",
|
|
||||||
Azerbaijani: "az",
|
|
||||||
Kazakh: "kk",
|
|
||||||
Kyrgyz: "ky",
|
|
||||||
Uzbek: "uz",
|
|
||||||
Tajik: "tg",
|
|
||||||
Turkmen: "tk",
|
|
||||||
Mongolian: "mn",
|
|
||||||
Persian: "fa",
|
|
||||||
Urdu: "ur",
|
|
||||||
Bengali: "bn",
|
|
||||||
Tamil: "ta",
|
|
||||||
Telugu: "te",
|
|
||||||
Marathi: "mr",
|
|
||||||
Gujarati: "gu",
|
|
||||||
Kannada: "kn",
|
|
||||||
Malayalam: "ml",
|
|
||||||
Punjabi: "pa",
|
|
||||||
Sinhala: "si",
|
|
||||||
Nepali: "ne",
|
|
||||||
Burmese: "my",
|
|
||||||
Khmer: "km",
|
|
||||||
Lao: "lo",
|
|
||||||
Tibetan: "bo",
|
|
||||||
Uyghur: "ug",
|
|
||||||
Kurdish: "ku",
|
|
||||||
Pashto: "ps",
|
|
||||||
Dari: "prs",
|
|
||||||
Sindhi: "sd",
|
|
||||||
Kashmiri: "ks",
|
|
||||||
Dogri: "doi",
|
|
||||||
Konkani: "kok",
|
|
||||||
Manipuri: "mni",
|
|
||||||
Bodo: "brx",
|
|
||||||
Sanskrit: "sa",
|
|
||||||
Santhali: "sat",
|
|
||||||
Maithili: "mai",
|
|
||||||
Bhojpuri: "bho",
|
|
||||||
Awadhi: "awa",
|
|
||||||
Chhattisgarhi: "hne",
|
|
||||||
Magahi: "mag",
|
|
||||||
Rajasthani: "raj",
|
|
||||||
Malvi: "mup",
|
|
||||||
Bundeli: "bns",
|
|
||||||
Bagheli: "bfy",
|
|
||||||
Pahari: "phr",
|
|
||||||
Kumaoni: "kfy",
|
|
||||||
Garhwali: "gbm",
|
|
||||||
Kangri: "xnr",
|
|
||||||
};
|
|
||||||
|
|
||||||
return languageMap[languageName] || languageName.toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function scrapeFebboxCaptions(
|
export async function scrapeFebboxCaptions(
|
||||||
imdbId: string,
|
imdbId: string,
|
||||||
season?: number,
|
season?: number,
|
||||||
|
|
@ -145,7 +49,7 @@ export async function scrapeFebboxCaptions(
|
||||||
};
|
};
|
||||||
|
|
||||||
if (subtitle.subtitle_link) {
|
if (subtitle.subtitle_link) {
|
||||||
const language = labelToLanguageCode(languageName);
|
const language = labelToLanguageCode(languageName) || "";
|
||||||
const fileExtension = subtitle.subtitle_link
|
const fileExtension = subtitle.subtitle_link
|
||||||
.split(".")
|
.split(".")
|
||||||
.pop()
|
.pop()
|
||||||
|
|
|
||||||
|
|
@ -1,104 +1,8 @@
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
|
import { labelToLanguageCode } from "@p-stream/providers";
|
||||||
|
|
||||||
import { CaptionListItem } from "@/stores/player/slices/source";
|
import { CaptionListItem } from "@/stores/player/slices/source";
|
||||||
|
|
||||||
// Helper function to convert language names to language codes
|
|
||||||
function labelToLanguageCode(languageName: string): string {
|
|
||||||
const languageMap: Record<string, string> = {
|
|
||||||
English: "en",
|
|
||||||
Spanish: "es",
|
|
||||||
French: "fr",
|
|
||||||
German: "de",
|
|
||||||
Italian: "it",
|
|
||||||
Portuguese: "pt",
|
|
||||||
Russian: "ru",
|
|
||||||
Japanese: "ja",
|
|
||||||
Korean: "ko",
|
|
||||||
Chinese: "zh",
|
|
||||||
Arabic: "ar",
|
|
||||||
Hindi: "hi",
|
|
||||||
Turkish: "tr",
|
|
||||||
Dutch: "nl",
|
|
||||||
Polish: "pl",
|
|
||||||
Swedish: "sv",
|
|
||||||
Norwegian: "no",
|
|
||||||
Danish: "da",
|
|
||||||
Finnish: "fi",
|
|
||||||
Greek: "el",
|
|
||||||
Hebrew: "he",
|
|
||||||
Thai: "th",
|
|
||||||
Vietnamese: "vi",
|
|
||||||
Indonesian: "id",
|
|
||||||
Malay: "ms",
|
|
||||||
Filipino: "tl",
|
|
||||||
Ukrainian: "uk",
|
|
||||||
Romanian: "ro",
|
|
||||||
Czech: "cs",
|
|
||||||
Hungarian: "hu",
|
|
||||||
Bulgarian: "bg",
|
|
||||||
Croatian: "hr",
|
|
||||||
Serbian: "sr",
|
|
||||||
Slovak: "sk",
|
|
||||||
Slovenian: "sl",
|
|
||||||
Estonian: "et",
|
|
||||||
Latvian: "lv",
|
|
||||||
Lithuanian: "lt",
|
|
||||||
Icelandic: "is",
|
|
||||||
Maltese: "mt",
|
|
||||||
Georgian: "ka",
|
|
||||||
Armenian: "hy",
|
|
||||||
Azerbaijani: "az",
|
|
||||||
Kazakh: "kk",
|
|
||||||
Kyrgyz: "ky",
|
|
||||||
Uzbek: "uz",
|
|
||||||
Tajik: "tg",
|
|
||||||
Turkmen: "tk",
|
|
||||||
Mongolian: "mn",
|
|
||||||
Persian: "fa",
|
|
||||||
Urdu: "ur",
|
|
||||||
Bengali: "bn",
|
|
||||||
Tamil: "ta",
|
|
||||||
Telugu: "te",
|
|
||||||
Marathi: "mr",
|
|
||||||
Gujarati: "gu",
|
|
||||||
Kannada: "kn",
|
|
||||||
Malayalam: "ml",
|
|
||||||
Punjabi: "pa",
|
|
||||||
Sinhala: "si",
|
|
||||||
Nepali: "ne",
|
|
||||||
Burmese: "my",
|
|
||||||
Khmer: "km",
|
|
||||||
Lao: "lo",
|
|
||||||
Tibetan: "bo",
|
|
||||||
Uyghur: "ug",
|
|
||||||
Kurdish: "ku",
|
|
||||||
Pashto: "ps",
|
|
||||||
Dari: "prs",
|
|
||||||
Sindhi: "sd",
|
|
||||||
Kashmiri: "ks",
|
|
||||||
Dogri: "doi",
|
|
||||||
Konkani: "kok",
|
|
||||||
Manipuri: "mni",
|
|
||||||
Bodo: "brx",
|
|
||||||
Sanskrit: "sa",
|
|
||||||
Santhali: "sat",
|
|
||||||
Maithili: "mai",
|
|
||||||
Bhojpuri: "bho",
|
|
||||||
Awadhi: "awa",
|
|
||||||
Chhattisgarhi: "hne",
|
|
||||||
Magahi: "mag",
|
|
||||||
Rajasthani: "raj",
|
|
||||||
Malvi: "mup",
|
|
||||||
Bundeli: "bns",
|
|
||||||
Bagheli: "bfy",
|
|
||||||
Pahari: "phr",
|
|
||||||
Kumaoni: "kfy",
|
|
||||||
Garhwali: "gbm",
|
|
||||||
Kangri: "xnr",
|
|
||||||
};
|
|
||||||
|
|
||||||
return languageMap[languageName] || languageName.toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function scrapeOpenSubtitlesCaptions(
|
export async function scrapeOpenSubtitlesCaptions(
|
||||||
imdbId: string,
|
imdbId: string,
|
||||||
season?: number,
|
season?: number,
|
||||||
|
|
@ -127,7 +31,7 @@ export async function scrapeOpenSubtitlesCaptions(
|
||||||
"download/",
|
"download/",
|
||||||
"download/subencoding-utf8/",
|
"download/subencoding-utf8/",
|
||||||
);
|
);
|
||||||
const language = labelToLanguageCode(caption.LanguageName);
|
const language = labelToLanguageCode(caption.LanguageName) || "";
|
||||||
|
|
||||||
if (!downloadUrl || !language) continue;
|
if (!downloadUrl || !language) continue;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,104 +1,8 @@
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
|
import { labelToLanguageCode } from "@p-stream/providers";
|
||||||
|
|
||||||
import { CaptionListItem } from "@/stores/player/slices/source";
|
import { CaptionListItem } from "@/stores/player/slices/source";
|
||||||
|
|
||||||
// Helper function to convert language names to language codes
|
|
||||||
function labelToLanguageCode(languageName: string): string {
|
|
||||||
const languageMap: Record<string, string> = {
|
|
||||||
English: "en",
|
|
||||||
Spanish: "es",
|
|
||||||
French: "fr",
|
|
||||||
German: "de",
|
|
||||||
Italian: "it",
|
|
||||||
Portuguese: "pt",
|
|
||||||
Russian: "ru",
|
|
||||||
Japanese: "ja",
|
|
||||||
Korean: "ko",
|
|
||||||
Chinese: "zh",
|
|
||||||
Arabic: "ar",
|
|
||||||
Hindi: "hi",
|
|
||||||
Turkish: "tr",
|
|
||||||
Dutch: "nl",
|
|
||||||
Polish: "pl",
|
|
||||||
Swedish: "sv",
|
|
||||||
Norwegian: "no",
|
|
||||||
Danish: "da",
|
|
||||||
Finnish: "fi",
|
|
||||||
Greek: "el",
|
|
||||||
Hebrew: "he",
|
|
||||||
Thai: "th",
|
|
||||||
Vietnamese: "vi",
|
|
||||||
Indonesian: "id",
|
|
||||||
Malay: "ms",
|
|
||||||
Filipino: "tl",
|
|
||||||
Ukrainian: "uk",
|
|
||||||
Romanian: "ro",
|
|
||||||
Czech: "cs",
|
|
||||||
Hungarian: "hu",
|
|
||||||
Bulgarian: "bg",
|
|
||||||
Croatian: "hr",
|
|
||||||
Serbian: "sr",
|
|
||||||
Slovak: "sk",
|
|
||||||
Slovenian: "sl",
|
|
||||||
Estonian: "et",
|
|
||||||
Latvian: "lv",
|
|
||||||
Lithuanian: "lt",
|
|
||||||
Icelandic: "is",
|
|
||||||
Maltese: "mt",
|
|
||||||
Georgian: "ka",
|
|
||||||
Armenian: "hy",
|
|
||||||
Azerbaijani: "az",
|
|
||||||
Kazakh: "kk",
|
|
||||||
Kyrgyz: "ky",
|
|
||||||
Uzbek: "uz",
|
|
||||||
Tajik: "tg",
|
|
||||||
Turkmen: "tk",
|
|
||||||
Mongolian: "mn",
|
|
||||||
Persian: "fa",
|
|
||||||
Urdu: "ur",
|
|
||||||
Bengali: "bn",
|
|
||||||
Tamil: "ta",
|
|
||||||
Telugu: "te",
|
|
||||||
Marathi: "mr",
|
|
||||||
Gujarati: "gu",
|
|
||||||
Kannada: "kn",
|
|
||||||
Malayalam: "ml",
|
|
||||||
Punjabi: "pa",
|
|
||||||
Sinhala: "si",
|
|
||||||
Nepali: "ne",
|
|
||||||
Burmese: "my",
|
|
||||||
Khmer: "km",
|
|
||||||
Lao: "lo",
|
|
||||||
Tibetan: "bo",
|
|
||||||
Uyghur: "ug",
|
|
||||||
Kurdish: "ku",
|
|
||||||
Pashto: "ps",
|
|
||||||
Dari: "prs",
|
|
||||||
Sindhi: "sd",
|
|
||||||
Kashmiri: "ks",
|
|
||||||
Dogri: "doi",
|
|
||||||
Konkani: "kok",
|
|
||||||
Manipuri: "mni",
|
|
||||||
Bodo: "brx",
|
|
||||||
Sanskrit: "sa",
|
|
||||||
Santhali: "sat",
|
|
||||||
Maithili: "mai",
|
|
||||||
Bhojpuri: "bho",
|
|
||||||
Awadhi: "awa",
|
|
||||||
Chhattisgarhi: "hne",
|
|
||||||
Magahi: "mag",
|
|
||||||
Rajasthani: "raj",
|
|
||||||
Malvi: "mup",
|
|
||||||
Bundeli: "bns",
|
|
||||||
Bagheli: "bfy",
|
|
||||||
Pahari: "phr",
|
|
||||||
Kumaoni: "kfy",
|
|
||||||
Garhwali: "gbm",
|
|
||||||
Kangri: "xnr",
|
|
||||||
};
|
|
||||||
|
|
||||||
return languageMap[languageName] || languageName.toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function scrapeVdrkCaptions(
|
export async function scrapeVdrkCaptions(
|
||||||
tmdbId: string | number,
|
tmdbId: string | number,
|
||||||
season?: number,
|
season?: number,
|
||||||
|
|
@ -144,7 +48,7 @@ export async function scrapeVdrkCaptions(
|
||||||
.replace(/\s*Hi\d*$/, "")
|
.replace(/\s*Hi\d*$/, "")
|
||||||
.replace(/\s*Hi$/, "")
|
.replace(/\s*Hi$/, "")
|
||||||
.replace(/\d+$/, "");
|
.replace(/\d+$/, "");
|
||||||
const language = labelToLanguageCode(languageName);
|
const language = labelToLanguageCode(languageName) || "";
|
||||||
|
|
||||||
if (!language) continue;
|
if (!language) continue;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ export async function scrapeWyzieCaptions(
|
||||||
|
|
||||||
const wyzieCaptions: CaptionListItem[] = wyzieSubtitles.map((subtitle) => ({
|
const wyzieCaptions: CaptionListItem[] = wyzieSubtitles.map((subtitle) => ({
|
||||||
id: subtitle.id,
|
id: subtitle.id,
|
||||||
language: subtitle.language,
|
language: subtitle.language || "unknown",
|
||||||
url: subtitle.url,
|
url: subtitle.url,
|
||||||
type:
|
type:
|
||||||
subtitle.format === "srt" || subtitle.format === "vtt"
|
subtitle.format === "srt" || subtitle.format === "vtt"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue