Merge branch 'current' into feat/twitch
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
import { createStream } from "../stream/manage.js";
|
||||
|
||||
let apiVar = {
|
||||
const apiVar = {
|
||||
allowed: {
|
||||
vCodec: ["h264", "av1", "vp9"],
|
||||
vQuality: ["max", "4320", "2160", "1440", "1080", "720", "480", "360", "240", "144"],
|
||||
aFormat: ["best", "mp3", "ogg", "wav", "opus"]
|
||||
},
|
||||
booleanOnly: ["isAudioOnly", "isNoTTWatermark", "isTTFullAudio", "isAudioMuted", "dubLang", "vimeoDash"]
|
||||
booleanOnly: ["isAudioOnly", "isNoTTWatermark", "isTTFullAudio", "isAudioMuted", "dubLang", "vimeoDash", "disableMetadata"]
|
||||
}
|
||||
const forbiddenChars = ['}', '{', '(', ')', '\\', '%', '>', '<', '^', '*', '!', '~', ';', ':', ',', '`', '[', ']', '#', '$', '"', "'", "@", '=='];
|
||||
const forbiddenCharsString = ['}', '{', '%', '>', '<', '^', ';', '`', '$', '"', "@", '='];
|
||||
|
||||
export function apiJSON(type, obj) {
|
||||
try {
|
||||
@@ -27,7 +29,7 @@ export function apiJSON(type, obj) {
|
||||
switch (obj.service) {
|
||||
case "douyin":
|
||||
case "tiktok":
|
||||
audio = createStream(obj)
|
||||
audio = obj.u
|
||||
pickerType = "images"
|
||||
break;
|
||||
}
|
||||
@@ -47,22 +49,7 @@ export function metadataManager(obj) {
|
||||
for (let i in keys) { if (tags.includes(keys[i])) commands.push('-metadata', `${keys[i]}=${obj[keys[i]]}`) }
|
||||
return commands;
|
||||
}
|
||||
export function msToTime(d) {
|
||||
let milliseconds = parseInt((d % 1000) / 100, 10),
|
||||
seconds = parseInt((d / 1000) % 60, 10),
|
||||
minutes = parseInt((d / (1000 * 60)) % 60, 10),
|
||||
hours = parseInt((d / (1000 * 60 * 60)) % 24, 10),
|
||||
r;
|
||||
|
||||
hours = (hours < 10) ? `0${hours}` : hours;
|
||||
minutes = (minutes < 10) ? `0${minutes}` : minutes;
|
||||
seconds = (seconds < 10) ? `0${seconds}` : seconds;
|
||||
r = `${hours}:${minutes}:${seconds}`;
|
||||
if (milliseconds) r += `.${milliseconds}`;
|
||||
return r;
|
||||
}
|
||||
export function cleanURL(url, host) {
|
||||
let forbiddenChars = ['}', '{', '(', ')', '\\', '%', '>', '<', '^', '*', '!', '~', ';', ':', ',', '`', '[', ']', '#', '$', '"', "'", "@"]
|
||||
switch(host) {
|
||||
case "vk":
|
||||
url = url.includes('clip') ? url.split('&')[0] : url.split('?')[0];
|
||||
@@ -72,6 +59,8 @@ export function cleanURL(url, host) {
|
||||
break;
|
||||
case "tiktok":
|
||||
url = url.replace(/@([a-zA-Z]+(\.[a-zA-Z]+)+)/, "@a")
|
||||
case "pinterest":
|
||||
url = url.replace(/:\/\/(?:www.)pinterest(?:\.[a-z.]+)/, "://pinterest.com")
|
||||
default:
|
||||
url = url.split('?')[0];
|
||||
if (url.substring(url.length - 1) === "/") url = url.substring(0, url.length - 1);
|
||||
@@ -89,6 +78,12 @@ export function cleanURL(url, host) {
|
||||
}
|
||||
return url.slice(0, 128)
|
||||
}
|
||||
export function cleanString(string) {
|
||||
for (let i in forbiddenCharsString) {
|
||||
string = string.replaceAll(forbiddenCharsString[i], '')
|
||||
}
|
||||
return string;
|
||||
}
|
||||
export function verifyLanguageCode(code) {
|
||||
return RegExp(/[a-z]{2}/).test(String(code.slice(0, 2).toLowerCase())) ? String(code.slice(0, 2).toLowerCase()) : "en"
|
||||
}
|
||||
@@ -109,13 +104,14 @@ export function checkJSONPost(obj) {
|
||||
isNoTTWatermark: false,
|
||||
isTTFullAudio: false,
|
||||
isAudioMuted: false,
|
||||
disableMetadata: false,
|
||||
dubLang: false,
|
||||
vimeoDash: false
|
||||
}
|
||||
try {
|
||||
let objKeys = Object.keys(obj);
|
||||
if (!(objKeys.length <= 9 && obj.url)) return false;
|
||||
let defKeys = Object.keys(def);
|
||||
if (objKeys.length > defKeys.length + 1 || !obj.url) return false;
|
||||
|
||||
for (let i in objKeys) {
|
||||
if (String(objKeys[i]) !== "url" && defKeys.includes(objKeys[i])) {
|
||||
@@ -154,3 +150,8 @@ export function getThreads() {
|
||||
return '0'
|
||||
}
|
||||
}
|
||||
export function cleanHTML(html) {
|
||||
let clean = html.replace(/ {4}/g, '');
|
||||
clean = clean.replace(/\n/g, '');
|
||||
return clean
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user