fix: add a negative lookahead for subtitles in language parsing

This commit is contained in:
Viren070
2025-02-09 17:47:14 +00:00
parent 2d66d5fa37
commit 35a6d7aaee
+53 -50
View File
@@ -1,6 +1,9 @@
const createRegex = (pattern: string): RegExp =>
new RegExp(`(?<![^\\s\\[(_\\-.,])(${pattern})(?=[\\s\\)\\]_.\\-,]|$)`, 'i');
const createLanguageRegex = (pattern: string): RegExp =>
createRegex(`${pattern}(?![ .\\-_]?sub(title)?s?)`);
export const PARSE_REGEX = {
resolutions: {
'2160p': createRegex(
@@ -74,57 +77,57 @@ export const PARSE_REGEX = {
'H-SBS': createRegex('h?(alf)?[ .\\-_]?(sbs|side[ .\\-_]?by[ .\\-_]?side)'),
},
languages: {
Multi: createRegex('multi|multi[ .\\-_]?audio'),
'Dual Audio': createRegex(
Multi: createLanguageRegex('multi'),
'Dual Audio': createLanguageRegex(
'dual[ .\\-_]?(audio|lang(uage)?|flac|ac3|aac2?)'
),
Dubbed: createRegex('dub(bed)?'),
English: createRegex('english|eng'),
Japanese: createRegex('japanese|jap'),
Chinese: createRegex('chinese|chi'),
Russian: createRegex('russian|rus'),
Arabic: createRegex('arabic|ara'),
Portuguese: createRegex('portuguese|por'),
Spanish: createRegex('spanish|spa|esp'),
French: createRegex('french|fra'),
German: createRegex('german|ger'),
Italian: createRegex('italian|ita'),
Korean: createRegex('korean|kor'),
Hindi: createRegex('hindi|hin'),
Bengali: createRegex('bengali|ben'),
Punjabi: createRegex('punjabi|pan'),
Marathi: createRegex('marathi|mar'),
Gujarati: createRegex('gujarati|guj'),
Tamil: createRegex('tamil|tam'),
Telugu: createRegex('telugu|tel'),
Kannada: createRegex('kannada|kan'),
Malayalam: createRegex('malayalam|mal'),
Thai: createRegex('thai|tha'),
Vietnamese: createRegex('vietnamese|vie'),
Indonesian: createRegex('indonesian|ind'),
Turkish: createRegex('turkish|tur'),
Hebrew: createRegex('hebrew|heb'),
Persian: createRegex('persian|per'),
Ukrainian: createRegex('ukrainian|ukr'),
Greek: createRegex('greek|ell'),
Lithuanian: createRegex('lithuanian|lit'),
Latvian: createRegex('latvian|lav'),
Estonian: createRegex('estonian|est'),
Polish: createRegex('polish|pol'),
Czech: createRegex('czech|cze'),
Slovak: createRegex('slovak|slo'),
Hungarian: createRegex('hungarian|hun'),
Romanian: createRegex('romanian|rum'),
Bulgarian: createRegex('bulgarian|bul'),
Serbian: createRegex('serbian|srp'),
Croatian: createRegex('croatian|hrv'),
Slovenian: createRegex('slovenian|slv'),
Dutch: createRegex('dutch|dut'),
Danish: createRegex('danish|dan'),
Finnish: createRegex('finnish|fin'),
Swedish: createRegex('swedish|swe'),
Norwegian: createRegex('norwegian|nor'),
Malay: createRegex('malay'),
Latino: createRegex('latino|lat'),
Dubbed: createLanguageRegex('dub(bed)?'),
English: createLanguageRegex('english|eng'),
Japanese: createLanguageRegex('japanese|jap'),
Chinese: createLanguageRegex('chinese|chi'),
Russian: createLanguageRegex('russian|rus'),
Arabic: createLanguageRegex('arabic|ara'),
Portuguese: createLanguageRegex('portuguese|por'),
Spanish: createLanguageRegex('spanish|spa|esp'),
French: createLanguageRegex('french|fra'),
German: createLanguageRegex('german|ger'),
Italian: createLanguageRegex('italian|ita'),
Korean: createLanguageRegex('korean|kor'),
Hindi: createLanguageRegex('hindi|hin'),
Bengali: createLanguageRegex('bengali|ben'),
Punjabi: createLanguageRegex('punjabi|pan'),
Marathi: createLanguageRegex('marathi|mar'),
Gujarati: createLanguageRegex('gujarati|guj'),
Tamil: createLanguageRegex('tamil|tam'),
Telugu: createLanguageRegex('telugu|tel'),
Kannada: createLanguageRegex('kannada|kan'),
Malayalam: createLanguageRegex('malayalam|mal'),
Thai: createLanguageRegex('thai|tha'),
Vietnamese: createLanguageRegex('vietnamese|vie'),
Indonesian: createLanguageRegex('indonesian|ind'),
Turkish: createLanguageRegex('turkish|tur'),
Hebrew: createLanguageRegex('hebrew|heb'),
Persian: createLanguageRegex('persian|per'),
Ukrainian: createLanguageRegex('ukrainian|ukr'),
Greek: createLanguageRegex('greek|ell'),
Lithuanian: createLanguageRegex('lithuanian|lit'),
Latvian: createLanguageRegex('latvian|lav'),
Estonian: createLanguageRegex('estonian|est'),
Polish: createLanguageRegex('polish|pol'),
Czech: createLanguageRegex('czech|cze'),
Slovak: createLanguageRegex('slovak|slo'),
Hungarian: createLanguageRegex('hungarian|hun'),
Romanian: createLanguageRegex('romanian|rum'),
Bulgarian: createLanguageRegex('bulgarian|bul'),
Serbian: createLanguageRegex('serbian|srp'),
Croatian: createLanguageRegex('croatian|hrv'),
Slovenian: createLanguageRegex('slovenian|slv'),
Dutch: createLanguageRegex('dutch|dut'),
Danish: createLanguageRegex('danish|dan'),
Finnish: createLanguageRegex('finnish|fin'),
Swedish: createLanguageRegex('swedish|swe'),
Norwegian: createLanguageRegex('norwegian|nor'),
Malay: createLanguageRegex('malay'),
Latino: createLanguageRegex('latino|lat'),
},
};