// import { AUDIO_TAGS, QUALITIES, RESOLUTIONS } from '../utils/constants'; // import { VISUAL_TAGS } from '../utils/constants'; // import { ENCODES } from '../utils/constants'; // import { LANGUAGES } from '../utils/constants'; // import { AUDIO_CHANNELS } from '../utils/constants'; // import { FakeVisualTag } from '../utils/constants'; import { constants } from '../utils/index.js'; const createRegex = (pattern: string): RegExp => new RegExp(`(? createRegex(`${pattern}(?![ .\\-_]?sub(title)?s?)`); type PARSE_REGEX = { resolutions: Omit< Record<(typeof constants.RESOLUTIONS)[number], RegExp>, 'Unknown' >; qualities: Omit< Record<(typeof constants.QUALITIES)[number], RegExp>, 'Unknown' >; visualTags: Omit< Record<(typeof constants.VISUAL_TAGS)[number], RegExp>, 'Unknown' | constants.FakeVisualTag >; audioTags: Omit< Record<(typeof constants.AUDIO_TAGS)[number], RegExp>, 'Unknown' >; audioChannels: Omit< Record<(typeof constants.AUDIO_CHANNELS)[number], RegExp>, 'Unknown' >; languages: Omit< Record<(typeof constants.LANGUAGES)[number], RegExp>, 'Unknown' | 'Original' >; encodes: Omit, 'Unknown'>; releaseGroup: RegExp; }; export const PARSE_REGEX: PARSE_REGEX = { resolutions: { '2160p': createRegex( '(bd|hd|m)?(4k|2160(p|i)?)|u(ltra)?[ .\\-_]?hd|3840\\s?x\\s?(\\d{4})' ), '1440p': createRegex( '(bd|hd|m)?(1440(p|i)?)|2k|w?q(uad)?[ .\\-_]?hd|2560\\s?x(\\d{4})' ), '1080p': createRegex( '(bd|hd|m)?(1080(p|i)?)|f(ull)?[ .\\-_]?hd|1920\\s?x\\s?(\\d{3,4})' ), '720p': createRegex( '(bd|hd|m)?((720|800)(p|i)?)|hd|1280\\s?x\\s?(\\d{3,4})' ), '576p': createRegex('(bd|hd|m)?((576|534)(p|i)?)'), '480p': createRegex('(bd|hd|m)?(480(p|i)?)|sd'), '360p': createRegex('(bd|hd|m)?(360(p|i)?)'), '240p': createRegex('(bd|hd|m)?(240(p|i)?)'), '144p': createRegex('(bd|hd|m)?(144(p|i)?)'), }, qualities: { 'BluRay REMUX': createRegex('(bd|br|b|uhd)?remux'), BluRay: createRegex( '(?