80 lines
2.1 KiB
JavaScript
80 lines
2.1 KiB
JavaScript
|
|
|
|
function isSub(ext) {
|
|
return ext == "srt" || ext == "ass" || ext == "ssa";
|
|
}
|
|
|
|
function getSize(size) {
|
|
if (size <= 0) return "";
|
|
if (size > 1024 * 1024 * 1024 * 1024.0) {
|
|
size /= (1024 * 1024 * 1024 * 1024.0);
|
|
return size.toFixed(2) + "TB";
|
|
} else if (size > 1024 * 1024 * 1024.0) {
|
|
size /= (1024 * 1024 * 1024.0);
|
|
return size.toFixed(2) + "GB";
|
|
} else if (size > 1024 * 1024.0) {
|
|
size /= (1024 * 1024.0);
|
|
return size.toFixed(2) + "MB";
|
|
} else {
|
|
size /= 1024.0;
|
|
return size.toFixed(2) + "KB";
|
|
}
|
|
}
|
|
|
|
function removeExt(text) {
|
|
return text.indexOf('.') > -1 ? text.substring(0, text.lastIndexOf(".")) : text;
|
|
}
|
|
|
|
async function log(str) {
|
|
console.debug(str);
|
|
}
|
|
|
|
function isVideoFormat(url) {
|
|
var RULE = /http((?!http).){12,}?\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)\?.*|http((?!http).){12,}\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)|http((?!http).)*?video\/tos*/;
|
|
if (url.indexOf("url=http") > -1 || url.indexOf(".js") > -1 || url.indexOf(".css") > -1 || url.indexOf(".html") > -1) {
|
|
return false;
|
|
}
|
|
return RULE.test(url);
|
|
}
|
|
|
|
function jsonParse(input, json) {
|
|
var jsonPlayData = JSON.parse(json);
|
|
var url = jsonPlayData.url;
|
|
if (url.startsWith("//")) {
|
|
url = "https:" + url;
|
|
}
|
|
if (!url.startsWith("http")) {
|
|
return null;
|
|
}
|
|
if (url === input) {
|
|
if (!isVideoFormat(url)) {
|
|
return null;
|
|
}
|
|
}
|
|
var headers = {};
|
|
var ua = jsonPlayData["user-agent"] || "";
|
|
if (ua.trim().length > 0) {
|
|
headers["User-Agent"] = " " + ua;
|
|
}
|
|
var referer = jsonPlayData.referer || "";
|
|
if (referer.trim().length > 0) {
|
|
headers["Referer"] = " " + referer;
|
|
}
|
|
var taskResult = {
|
|
header: headers,
|
|
url: url
|
|
};
|
|
return taskResult;
|
|
}
|
|
|
|
function debug(obj) {
|
|
for (var a in obj) {
|
|
if (typeof(obj[a]) == "object") {
|
|
debug(obj[a]); //递归遍历
|
|
} else {
|
|
console.debug(a + "=" + obj[a]);
|
|
}
|
|
}
|
|
}
|
|
|
|
export { isSub, getSize, removeExt, log, isVideoFormat, jsonParse, debug}; |