57 lines
1.3 KiB
TypeScript
Raw Permalink Normal View History

2023-04-09 21:50:37 +08:00
const path = require("path")
2023-02-16 21:08:03 +08:00
const videoSet = new Set(["flv", 'avi', 'wmv', 'dat', 'vob', 'mpg', 'mpeg', 'mp4', '3gp', '3g2', 'mkv', 'rm', 'rmvb', 'mov', 'qt', 'ogg', 'ogv', 'oga', 'mod']);
2023-03-07 20:57:05 +08:00
2023-02-16 21:08:03 +08:00
/**
*
* @param str
*/
export function isVideo(str: string) {
2023-03-07 20:57:05 +08:00
if (!str) {
return false;
}
return videoSet.has(str.toLowerCase());
2023-02-16 21:08:03 +08:00
}
const subSet = new Set(['sub', 'sst', 'son', 'srt', 'ssa', 'ass', 'smi', 'psb', 'pjs', 'stl', 'tts', 'vsf', 'zeg']);
2023-03-07 20:57:05 +08:00
2023-02-16 21:08:03 +08:00
/**
*
* @param str
*/
export function isSub(str: string) {
2023-03-07 20:57:05 +08:00
if (!str) {
return false;
}
return subSet.has(str.toLowerCase());
}
/**
*
* @param str
*/
export function isNfo(str: string) {
if (!str) {
return false;
}
return "nfo" == str;
2023-04-09 21:50:37 +08:00
}
let pattern1 = new RegExp(/s(eason)?\.?(\d+)/);
let pattern2 = new RegExp(/(\d+)/);
/**
*
* @param str
*/
export function getSeason(name: string) {
name = name.replace(/[ ]+/, "").toLocaleLowerCase();
let patternRes = name.match(pattern1);
if (patternRes && patternRes[2]) {
return patternRes[2];
}
patternRes = name.match(pattern2);
if (patternRes && patternRes[1]) {
return patternRes[1];
}
return "";
2023-02-16 21:08:03 +08:00
}