mirror of
https://github.com/Viren070/AIOStreams.git
synced 2025-12-01 23:14:04 +01:00
feat: add release group extraction to filename parsing and update types
This commit is contained in:
@@ -21,6 +21,11 @@ function matchMultiplePatterns(
|
||||
.map(([tag]) => tag);
|
||||
}
|
||||
|
||||
function getMatchingPattern(filename: string, pattern: RegExp): string {
|
||||
const match = filename.match(pattern);
|
||||
return match ? match[1] : 'Unknown';
|
||||
}
|
||||
|
||||
export function parseFilename(filename: string): ParsedNameData {
|
||||
const resolution = matchPattern(filename, PARSE_REGEX.resolutions);
|
||||
const quality = matchPattern(filename, PARSE_REGEX.qualities);
|
||||
@@ -28,6 +33,7 @@ export function parseFilename(filename: string): ParsedNameData {
|
||||
const visualTags = matchMultiplePatterns(filename, PARSE_REGEX.visualTags);
|
||||
const audioTags = matchMultiplePatterns(filename, PARSE_REGEX.audioTags);
|
||||
const languages = matchMultiplePatterns(filename, PARSE_REGEX.languages);
|
||||
const releaseGroup = getMatchingPattern(filename, PARSE_REGEX.releaseGroup);
|
||||
|
||||
return {
|
||||
resolution,
|
||||
@@ -36,5 +42,6 @@ export function parseFilename(filename: string): ParsedNameData {
|
||||
encode,
|
||||
audioTags,
|
||||
visualTags,
|
||||
releaseGroup,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -131,4 +131,6 @@ export const PARSE_REGEX = {
|
||||
Malay: createLanguageRegex('malay'),
|
||||
Latino: createLanguageRegex('latino|lat'),
|
||||
},
|
||||
releaseGroup:
|
||||
/- ?(?!\d+$|S\d+|\d+x|ep?\d+|[^[]+]$)([^\-. []+[^\-. [)\]\d][^\-. [)\]]*)(?:\[[\w.-]+])?(?=\.\w{2,4}$|$)/i,
|
||||
};
|
||||
|
||||
@@ -3,6 +3,7 @@ export interface ParsedNameData {
|
||||
resolution: string;
|
||||
quality: string;
|
||||
encode: string;
|
||||
releaseGroup: string;
|
||||
visualTags: string[];
|
||||
audioTags: string[];
|
||||
languages: string[];
|
||||
@@ -36,6 +37,7 @@ export interface ParsedStream extends ParsedNameData {
|
||||
url?: string;
|
||||
externalUrl?: string;
|
||||
indexers?: string;
|
||||
releaseGroup: string;
|
||||
personal?: boolean;
|
||||
stream?: {
|
||||
subtitles?: Subtitle[];
|
||||
|
||||
Reference in New Issue
Block a user