fix(parser): correctly escape characters

This commit is contained in:
Viren070
2024-12-31 16:46:28 +00:00
parent 45cae3f7ef
commit f1a2ef1483
+83 -83
View File
@@ -1,102 +1,102 @@
export const PARSE_REGEX = {
resolutions: {
'2160p': /(?<![^ [(_\-.])(4k|2160p|uhd)(?=[ \)]_.-]|$)/i,
'1080p': /(?<![^ [(_\-.])(1080p|fhd)(?=[ \)]_.-]|$)/i,
'720p': /(?<![^ [(_\-.])(720p|hd)(?=[ \)]_.-]|$)/i,
'480p': /(?<![^ [(_\-.])(480p|sd)(?=[ \)]_.-]|$)/i,
'2160p': /(?<![^ [(_\-.])(4k|2160p|uhd)(?=[ \)\]_.-]|$)/i,
'1080p': /(?<![^ [(_\-.])(1080p|fhd)(?=[ \)\]_.-]|$)/i,
'720p': /(?<![^ [(_\-.])(720p|hd)(?=[ \)\]_.-]|$)/i,
'480p': /(?<![^ [(_\-.])(480p|sd)(?=[ \)\]_.-]|$)/i,
},
qualities: {
'BluRay REMUX':
/(?<![^ [(_\-.])((blu[ .\-_]?ray|bd|br|b|uhd)[ .\-_]?remux)(?=[ \)]_.-]|$)/i,
/(?<![^ [(_\-.])((blu[ .\-_]?ray|bd|br|b|uhd)[ .\-_]?remux)(?=[ \)\]_.-]|$)/i,
BluRay:
/(?<![^ [(_\-.])(blu[ .\-_]?ray|((bd|br|b|uhd)[ .\-_]?(rip|r)?))(?![ .\-_]?remux)(?=[ \)]_.-]|$)/i,
/(?<![^ [(_\-.])(blu[ .\-_]?ray|((bd|br|b|uhd)[ .\-_]?(rip|r)?))(?![ .\-_]?remux)(?=[ \)\]_.-]|$)/i,
'WEB-DL':
/(?<![^ [(_\-.])(web[ .\-_]?(dl)?)(?![ .\-_]?DLRip)(?=[ \)]_.-]|$)/i,
WEBRip: /(?<![^ [(_\-.])(web[ .\-_]?rip)(?=[ \)]_.-]|$)/i,
/(?<![^ [(_\-.])(web[ .\-_]?(dl)?)(?![ .\-_]?DLRip)(?=[ \)\]_.-]|$)/i,
WEBRip: /(?<![^ [(_\-.])(web[ .\-_]?rip)(?=[ \)\]_.-]|$)/i,
HDRip:
/(?<![^ [(_\-.])(hd[ .\-_]?rip|web[ .\-_]?dl[ .\-_]?rip)(?=[ \)]_.-]|$)/i,
'HC HD-Rip': /(?<![^ [(_\-.])(hc|hd[ .\-_]?rip)(?=[ \)]_.-]|$)/i,
DVDRip: /(?<![^ [(_\-.])(dvd[ .\-_]?(rip|mux|r|full|5|9))(?=[ \)]_.-]|$)/i,
HDTV: /(?<![^ [(_\-.])((hd|pd)tv|tv[ .\-_]?rip|hdtv[ .\-_]?rip|dsr(ip)?|sat[ .\-_]?rip)(?=[ \)]_.-]|$)/i,
CAM: /(?<![^ [(_\-.])(cam|hdcam|cam[ .\-_]?rip)(?=[ \)]_.-]|$)/i,
TS: /(?<![^ [(_\-.])(telesync|ts|hd[ .\-_]?ts|pdvd|predvd(rip)?)(?=[ \)]_.-]|$)/i,
TC: /(?<![^ [(_\-.])(telecine|tc|hd[ .\-_]?tc)(?=[ \)]_.-]|$)/i,
SCR: /(?<![^ [(_\-.])(((dvd|bd|web)?[ .\-_]?)?(scr(eener)?))(?=[ \)]_.-]|$)/i,
/(?<![^ [(_\-.])(hd[ .\-_]?rip|web[ .\-_]?dl[ .\-_]?rip)(?=[ \)\]_.-]|$)/i,
'HC HD-Rip': /(?<![^ [(_\-.])(hc|hd[ .\-_]?rip)(?=[ \)\]_.-]|$)/i,
DVDRip: /(?<![^ [(_\-.])(dvd[ .\-_]?(rip|mux|r|full|5|9))(?=[ \)\]_.-]|$)/i,
HDTV: /(?<![^ [(_\-.])((hd|pd)tv|tv[ .\-_]?rip|hdtv[ .\-_]?rip|dsr(ip)?|sat[ .\-_]?rip)(?=[ \)\]_.-]|$)/i,
CAM: /(?<![^ [(_\-.])(cam|hdcam|cam[ .\-_]?rip)(?=[ \)\]_.-]|$)/i,
TS: /(?<![^ [(_\-.])(telesync|ts|hd[ .\-_]?ts|pdvd|predvd(rip)?)(?=[ \)\]_.-]|$)/i,
TC: /(?<![^ [(_\-.])(telecine|tc|hd[ .\-_]?tc)(?=[ \)\]_.-]|$)/i,
SCR: /(?<![^ [(_\-.])(((dvd|bd|web)?[ .\-_]?)?(scr(eener)?))(?=[ \)\]_.-]|$)/i,
},
visualTags: {
'HDR10+': /(?<![^ [(_\-.])(hdr10[ .\-_]?[+]|hdr10plus)(?=[ \)]_.-]|$)/i,
HDR10: /(?<![^ [(_\-.])(hdr10)(?=[ \)]_.-]|$)/i,
HDR: /(?<![^ [(_\-.])(hdr)(?=[ \)]_.-]|$)/i,
DV: /(?<![^ [(_\-.])(dolby[ .\-_]?vision(?:[ .\-_]?atmos)?|dv)(?=[ \)]_.-]|$)/i,
IMAX: /(?<![^ [(_\-.])(imax)(?=[ \)]_.-]|$)/i,
AI: /(?<![^ [(_\-.])(ai[ .\-_]?(upscale|enhanced|remaster))(?=[ \)]_.-]|$)/i,
'HDR10+': /(?<![^ [(_\-.])(hdr10[ .\-_]?[+]|hdr10plus)(?=[ \)\]_.-]|$)/i,
HDR10: /(?<![^ [(_\-.])(hdr10)(?=[ \)\]_.-]|$)/i,
HDR: /(?<![^ [(_\-.])(hdr)(?=[ \)\]_.-]|$)/i,
DV: /(?<![^ [(_\-.])(dolby[ .\-_]?vision(?:[ .\-_]?atmos)?|dv)(?=[ \)\]_.-]|$)/i,
IMAX: /(?<![^ [(_\-.])(imax)(?=[ \)\]_.-]|$)/i,
AI: /(?<![^ [(_\-.])(ai[ .\-_]?(upscale|enhanced|remaster))(?=[ \)\]_.-]|$)/i,
},
audioTags: {
Atmos: /(?<![^ [(_\-.])(atmos)(?=[ \)]_.-]|$)/i,
Atmos: /(?<![^ [(_\-.])(atmos)(?=[ \)\]_.-]|$)/i,
'DD+':
/(?<![^ [(_\-.])((?:ddp|dolby[ .\-_]?digital[ .\-_]?plus)(?:[ .\-_]?(5\.1|7\.1))?)(?=[ \)]_.-]|$)/i,
DD: /(?<![^ [(_\-.])((?:dd|dolby[ .\-_]?digital)(?:[ .\-_]?(5\.1|7\.1))?)(?=[ \)]_.-]|$)/i,
'DTS-HD MA': /(?<![^ [(_\-.])(dts[ .\-_]?hd[ .\-_]?ma)(?=[ \)]_.-]|$)/i,
'DTS-HD': /(?<![^ [(_\-.])(dts[ .\-_]?hd)(?![ .\-_]?ma)(?=[ \)]_.-]|$)/i,
DTS: /(?<![^ [(_\-.])(dts(?![ .\-_]?hd[ .\-_]?ma|[ .\-_]?hd))(?=[ \)]_.-]|$)/i,
TrueHD: /(?<![^ [(_\-.])(true[ .\-_]?hd)(?=[ \)]_.-]|$)/i,
5.1: /(?<![^ [(_\-.])((?:ddp|dd)?[ .\-_]?5\.1)(?=[ \)]_.-]|$)/i,
7.1: /(?<![^ [(_\-.])((?:ddp|dd)?[ .\-_]?7\.1)(?=[ \)]_.-]|$)/i,
AC3: /(?<![^ [(_\-.])(ac[ .\-_]?3)(?=[ \)]_.-]|$)/i,
AAC: /(?<![^ [(_\-.])(aac)(?=[ \)]_.-]|$)/i,
/(?<![^ [(_\-.])((?:ddp|dolby[ .\-_]?digital[ .\-_]?plus)(?:[ .\-_]?(5\.1|7\.1))?)(?=[ \)\]_.-]|$)/i,
DD: /(?<![^ [(_\-.])((?:dd|dolby[ .\-_]?digital)(?:[ .\-_]?(5\.1|7\.1))?)(?=[ \)\]_.-]|$)/i,
'DTS-HD MA': /(?<![^ [(_\-.])(dts[ .\-_]?hd[ .\-_]?ma)(?=[ \)\]_.-]|$)/i,
'DTS-HD': /(?<![^ [(_\-.])(dts[ .\-_]?hd)(?![ .\-_]?ma)(?=[ \)\]_.-]|$)/i,
DTS: /(?<![^ [(_\-.])(dts(?![ .\-_]?hd[ .\-_]?ma|[ .\-_]?hd))(?=[ \)\]_.-]|$)/i,
TrueHD: /(?<![^ [(_\-.])(true[ .\-_]?hd)(?=[ \)\]_.-]|$)/i,
5.1: /(?<![^ [(_\-.])((?:ddp|dd)?[ .\-_]?5\.1)(?=[ \)\]_.-]|$)/i,
7.1: /(?<![^ [(_\-.])((?:ddp|dd)?[ .\-_]?7\.1)(?=[ \)\]_.-]|$)/i,
AC3: /(?<![^ [(_\-.])(ac[ .\-_]?3)(?=[ \)\]_.-]|$)/i,
AAC: /(?<![^ [(_\-.])(aac)(?=[ \)\]_.-]|$)/i,
},
encodes: {
HEVC: /(?<![^ [(_\-.])(hevc|x265|h265|h\.265)(?=[ \)]_.-]|$)/i,
AVC: /(?<![^ [(_\-.])(avc|x264|h264|h\.264)(?=[ \)]_.-]|$)/i,
HEVC: /(?<![^ [(_\-.])(hevc|x265|h265|h\.265)(?=[ \)\]_.-]|$)/i,
AVC: /(?<![^ [(_\-.])(avc|x264|h264|h\.264)(?=[ \)\]_.-]|$)/i,
},
languages: {
Multi: /(?<![^ [(_\-.])(multi|multi[ .\-_]?audio)(?=[ \)]_.-]|$)/i,
'Dual Audio': /(?<![^ [(_\-.])(dual[ .\-_]?audio)(?=[ \)]_.-]|$)/i,
English: /(?<![^ [(_\-.])(english|eng)(?=[ \)]_.-]|$)/i,
Japanese: /(?<![^ [(_\-.])(japanese|jap)(?=[ \)]_.-]|$)/i,
Chinese: /(?<![^ [(_\-.])(chinese|chi)(?=[ \)]_.-]|$)/i,
Russian: /(?<![^ [(_\-.])(russian|rus)(?=[ \)]_.-]|$)/i,
Arabic: /(?<![^ [(_\-.])(arabic|ara)(?=[ \)]_.-]|$)/i,
Portuguese: /(?<![^ [(_\-.])(portuguese|por)(?=[ \)]_.-]|$)/i,
Spanish: /(?<![^ [(_\-.])(spanish|spa)(?=[ \)]_.-]|$)/i,
French: /(?<![^ [(_\-.])(french|fra)(?=[ \)]_.-]|$)/i,
German: /(?<![^ [(_\-.])(german|ger)(?=[ \)]_.-]|$)/i,
Italian: /(?<![^ [(_\-.])(italian|ita)(?=[ \)]_.-]|$)/i,
Korean: /(?<![^ [(_\-.])(korean|kor)(?=[ \)]_.-]|$)/i,
Hindi: /(?<![^ [(_\-.])(hindi|hin)(?=[ \)]_.-]|$)/i,
Bengali: /(?<![^ [(_\-.])(bengali|ben)(?=[ \)]_.-]|$)/i,
Punjabi: /(?<![^ [(_\-.])(punjabi|pan)(?=[ \)]_.-]|$)/i,
Marathi: /(?<![^ [(_\-.])(marathi|mar)(?=[ \)]_.-]|$)/i,
Gujarati: /(?<![^ [(_\-.])(gujarati|guj)(?=[ \)]_.-]|$)/i,
Tamil: /(?<![^ [(_\-.])(tamil|tam)(?=[ \)]_.-]|$)/i,
Telugu: /(?<![^ [(_\-.])(telugu|tel)(?=[ \)]_.-]|$)/i,
Kannada: /(?<![^ [(_\-.])(kannada|kan)(?=[ \)]_.-]|$)/i,
Malayalam: /(?<![^ [(_\-.])(malayalam|mal)(?=[ \)]_.-]|$)/i,
Thai: /(?<![^ [(_\-.])(thai|tha)(?=[ \)]_.-]|$)/i,
Vietnamese: /(?<![^ [(_\-.])(vietnamese|vie)(?=[ \)]_.-]|$)/i,
Indonesian: /(?<![^ [(_\-.])(indonesian|ind)(?=[ \)]_.-]|$)/i,
Turkish: /(?<![^ [(_\-.])(turkish|tur)(?=[ \)]_.-]|$)/i,
Hebrew: /(?<![^ [(_\-.])(hebrew|heb)(?=[ \)]_.-]|$)/i,
Persian: /(?<![^ [(_\-.])(persian|per)(?=[ \)]_.-]|$)/i,
Ukrainian: /(?<![^ [(_\-.])(ukrainian|ukr)(?=[ \)]_.-]|$)/i,
Greek: /(?<![^ [(_\-.])(greek|ell)(?=[ \)]_.-]|$)/i,
Lithuanian: /(?<![^ [(_\-.])(lithuanian|lit)(?=[ \)]_.-]|$)/i,
Latvian: /(?<![^ [(_\-.])(latvian|lav)(?=[ \)]_.-]|$)/i,
Estonian: /(?<![^ [(_\-.])(estonian|est)(?=[ \)]_.-]|$)/i,
Polish: /(?<![^ [(_\-.])(polish|pol)(?=[ \)]_.-]|$)/i,
Czech: /(?<![^ [(_\-.])(czech|cze)(?=[ \)]_.-]|$)/i,
Slovak: /(?<![^ [(_\-.])(slovak|slo)(?=[ \)]_.-]|$)/i,
Hungarian: /(?<![^ [(_\-.])(hungarian|hun)(?=[ \)]_.-]|$)/i,
Romanian: /(?<![^ [(_\-.])(romanian|rum)(?=[ \)]_.-]|$)/i,
Bulgarian: /(?<![^ [(_\-.])(bulgarian|bul)(?=[ \)]_.-]|$)/i,
Serbian: /(?<![^ [(_\-.])(serbian|srp)(?=[ \)]_.-]|$)/i,
Croatian: /(?<![^ [(_\-.])(croatian|hrv)(?=[ \)]_.-]|$)/i,
Slovenian: /(?<![^ [(_\-.])(slovenian|slv)(?=[ \)]_.-]|$)/i,
Dutch: /(?<![^ [(_\-.])(dutch|dut)(?=[ \)]_.-]|$)/i,
Danish: /(?<![^ [(_\-.])(danish|dan)(?=[ \)]_.-]|$)/i,
Finnish: /(?<![^ [(_\-.])(finnish|fin)(?=[ \)]_.-]|$)/i,
Swedish: /(?<![^ [(_\-.])(swedish|swe)(?=[ \)]_.-]|$)/i,
Norwegian: /(?<![^ [(_\-.])(norwegian|nor)(?=[ \)]_.-]|$)/i,
Malay: /(?<![^ [(_\-.])(malay|may)(?=[ \)]_.-]|$)/i,
Multi: /(?<![^ [(_\-.])(multi|multi[ .\-_]?audio)(?=[ \)\]_.-]|$)/i,
'Dual Audio': /(?<![^ [(_\-.])(dual[ .\-_]?audio)(?=[ \)\]_.-]|$)/i,
English: /(?<![^ [(_\-.])(english|eng)(?=[ \)\]_.-]|$)/i,
Japanese: /(?<![^ [(_\-.])(japanese|jap)(?=[ \)\]_.-]|$)/i,
Chinese: /(?<![^ [(_\-.])(chinese|chi)(?=[ \)\]_.-]|$)/i,
Russian: /(?<![^ [(_\-.])(russian|rus)(?=[ \)\]_.-]|$)/i,
Arabic: /(?<![^ [(_\-.])(arabic|ara)(?=[ \)\]_.-]|$)/i,
Portuguese: /(?<![^ [(_\-.])(portuguese|por)(?=[ \)\]_.-]|$)/i,
Spanish: /(?<![^ [(_\-.])(spanish|spa)(?=[ \)\]_.-]|$)/i,
French: /(?<![^ [(_\-.])(french|fra)(?=[ \)\]_.-]|$)/i,
German: /(?<![^ [(_\-.])(german|ger)(?=[ \)\]_.-]|$)/i,
Italian: /(?<![^ [(_\-.])(italian|ita)(?=[ \)\]_.-]|$)/i,
Korean: /(?<![^ [(_\-.])(korean|kor)(?=[ \)\]_.-]|$)/i,
Hindi: /(?<![^ [(_\-.])(hindi|hin)(?=[ \)\]_.-]|$)/i,
Bengali: /(?<![^ [(_\-.])(bengali|ben)(?=[ \)\]_.-]|$)/i,
Punjabi: /(?<![^ [(_\-.])(punjabi|pan)(?=[ \)\]_.-]|$)/i,
Marathi: /(?<![^ [(_\-.])(marathi|mar)(?=[ \)\]_.-]|$)/i,
Gujarati: /(?<![^ [(_\-.])(gujarati|guj)(?=[ \)\]_.-]|$)/i,
Tamil: /(?<![^ [(_\-.])(tamil|tam)(?=[ \)\]_.-]|$)/i,
Telugu: /(?<![^ [(_\-.])(telugu|tel)(?=[ \)\]_.-]|$)/i,
Kannada: /(?<![^ [(_\-.])(kannada|kan)(?=[ \)\]_.-]|$)/i,
Malayalam: /(?<![^ [(_\-.])(malayalam|mal)(?=[ \)\]_.-]|$)/i,
Thai: /(?<![^ [(_\-.])(thai|tha)(?=[ \)\]_.-]|$)/i,
Vietnamese: /(?<![^ [(_\-.])(vietnamese|vie)(?=[ \)\]_.-]|$)/i,
Indonesian: /(?<![^ [(_\-.])(indonesian|ind)(?=[ \)\]_.-]|$)/i,
Turkish: /(?<![^ [(_\-.])(turkish|tur)(?=[ \)\]_.-]|$)/i,
Hebrew: /(?<![^ [(_\-.])(hebrew|heb)(?=[ \)\]_.-]|$)/i,
Persian: /(?<![^ [(_\-.])(persian|per)(?=[ \)\]_.-]|$)/i,
Ukrainian: /(?<![^ [(_\-.])(ukrainian|ukr)(?=[ \)\]_.-]|$)/i,
Greek: /(?<![^ [(_\-.])(greek|ell)(?=[ \)\]_.-]|$)/i,
Lithuanian: /(?<![^ [(_\-.])(lithuanian|lit)(?=[ \)\]_.-]|$)/i,
Latvian: /(?<![^ [(_\-.])(latvian|lav)(?=[ \)\]_.-]|$)/i,
Estonian: /(?<![^ [(_\-.])(estonian|est)(?=[ \)\]_.-]|$)/i,
Polish: /(?<![^ [(_\-.])(polish|pol)(?=[ \)\]_.-]|$)/i,
Czech: /(?<![^ [(_\-.])(czech|cze)(?=[ \)\]_.-]|$)/i,
Slovak: /(?<![^ [(_\-.])(slovak|slo)(?=[ \)\]_.-]|$)/i,
Hungarian: /(?<![^ [(_\-.])(hungarian|hun)(?=[ \)\]_.-]|$)/i,
Romanian: /(?<![^ [(_\-.])(romanian|rum)(?=[ \)\]_.-]|$)/i,
Bulgarian: /(?<![^ [(_\-.])(bulgarian|bul)(?=[ \)\]_.-]|$)/i,
Serbian: /(?<![^ [(_\-.])(serbian|srp)(?=[ \)\]_.-]|$)/i,
Croatian: /(?<![^ [(_\-.])(croatian|hrv)(?=[ \)\]_.-]|$)/i,
Slovenian: /(?<![^ [(_\-.])(slovenian|slv)(?=[ \)\]_.-]|$)/i,
Dutch: /(?<![^ [(_\-.])(dutch|dut)(?=[ \)\]_.-]|$)/i,
Danish: /(?<![^ [(_\-.])(danish|dan)(?=[ \)\]_.-]|$)/i,
Finnish: /(?<![^ [(_\-.])(finnish|fin)(?=[ \)\]_.-]|$)/i,
Swedish: /(?<![^ [(_\-.])(swedish|swe)(?=[ \)\]_.-]|$)/i,
Norwegian: /(?<![^ [(_\-.])(norwegian|nor)(?=[ \)\]_.-]|$)/i,
Malay: /(?<![^ [(_\-.])(malay|may)(?=[ \)\]_.-]|$)/i,
},
};