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
|
|
|
}
|