package service import ( "regexp" "strings" ) type ReleaseInfo struct { Title string `json:"title"` Resolution string `json:"resolution"` Source string `json:"source"` VideoCodec string `json:"video_codec"` AudioFormat string `json:"audio_format"` ReleaseGroup string `json:"release_group"` ParseWarning bool `json:"parse_warning"` } type ReleaseParser struct{} func NewReleaseParser() *ReleaseParser { return &ReleaseParser{} } var ( bracketRe = regexp.MustCompile(`\[.*?\]`) releaseRe = regexp.MustCompile(`(?i)` + `(?:.*?[-. ])?` + `(?:(?P480[p|i]|576[p|i]|720[p|i]|1080[p|i]|2160[p|i]|4K)[-. ])?` + `(?:(?PHDTV|PDTV|SDTV|WEB-DL|WEBDL|WEBRip|WEB\s|BluRay|BDRip|BRRip|REMUX|Remux|DVDRip|DVD|CAM|TS|HDCAM)[-. ])?` + `(?:(?Px264|h264|X264|H264|x265|h265|X265|HEVC|XviD|MPEG2|VC1|AV1)[-. ])?` + `(?:(?P