feat: add release group extraction to filename parsing and update types

This commit is contained in:
Viren070
2025-04-28 20:12:26 +01:00
parent 6664905a1f
commit f35dceae9b
3 changed files with 11 additions and 0 deletions
+7
View File
@@ -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,
};
}
+2
View File
@@ -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,
};
+2
View File
@@ -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[];