mirror of
https://github.com/wukko/cobalt.git
synced 2025-04-29 22:14:26 +02:00

- finally cleaned up localisation (now i18n) - made localisation strings easier to read and understand - removed static selected language in service modules - added support for russian language (привет-привет) - it's now extremely easy to add support for more languages. just copy en folder in i18n and start translating strings. pull requests for adding languages are more than welcome.
35 lines
1.5 KiB
JavaScript
35 lines
1.5 KiB
JavaScript
import UrlPattern from "url-pattern";
|
|
|
|
import { services as patterns } from "./config.js";
|
|
|
|
import { cleanURL, apiJSON } from "./sub/utils.js";
|
|
import { errorUnsupported } from "./sub/errors.js";
|
|
import loc from "./sub/i18n.js";
|
|
import match from "./match.js";
|
|
|
|
export async function getJSON(originalURL, ip, lang, format, quality) {
|
|
try {
|
|
let url = decodeURI(originalURL);
|
|
if (!url.includes('http://')) {
|
|
let hostname = url.replace("https://", "").replace(' ', '').split('&')[0].split("/")[0].split("."),
|
|
host = hostname[hostname.length - 2],
|
|
patternMatch;
|
|
if (host == "youtu") {
|
|
host = "youtube";
|
|
url = `https://youtube.com/watch?v=${url.replace("youtu.be/", "").replace("https://", "")}`;
|
|
}
|
|
if (host && host.length < 20 && host in patterns && patterns[host]["enabled"]) {
|
|
for (let i in patterns[host]["patterns"]) {
|
|
patternMatch = new UrlPattern(patterns[host]["patterns"][i]).match(cleanURL(url, host).split(".com/")[1]);
|
|
}
|
|
if (patternMatch) {
|
|
return await match(host, patternMatch, url, ip, lang, format, quality);
|
|
} else throw Error()
|
|
} else throw Error()
|
|
} else {
|
|
return apiJSON(0, { t: errorUnsupported(lang) } )
|
|
}
|
|
} catch (e) {
|
|
return apiJSON(0, { t: loc(lang, 'apiError', 'generic') });
|
|
}
|
|
} |