(?P<ep_num>\d{1,2}) # 02 (?:-(?P<extra_ep_num>\d{1,2}))* # 02 [. _-]+((?P<extra_info>.+?) # Source_Quality_Etc- ((?<![. _-])(?<!WEB) # Make sure this is really the release group -(?P<release_group>[^- ]+))?)?$ # Group ''' ), ('mm', # engrenages S0311 HDTV Divx ''' ^(?P<series_name>.+?)[. _-]+ # Show_Name and separator s(?P<season_num>\d+)[. _-]* # S01 and optional separator (?P<ep_num>\d+) # 02 and separator ''' ), ] language_regexes = {} for k,v in showLanguages.iteritems(): language_regexes[k] = '(^|\w|[. _-])*('+v+')(([. _-])(dubbed))?\w*([. _-]|$)'
\[(?P<extra_info>\w+)\][ ._-]? (?:\[(?P<crc>\w{8})\])? .*? '''), ( 'anime_WarB3asT', # 003. Show Name - Ep Name.ext # 003-004. Show Name - Ep Name.ext r''' ^(?P<ep_ab_num>\d{3,4})(-(?P<extra_ab_ep_num>\d{3,4}))?\.\s+(?P<series_name>.+?)\s-\s.* '''), ( 'anime_bare', # One Piece - 102 # [ACX]_Wolf's_Spirit_001.mkv r''' ^(\[(?P<release_group>.+?)\][ ._-]*)? (?P<series_name>.+?)[ ._-]+ # Show_Name and separator (?P<ep_ab_num>((?!(1080|720|480)[pi])|(?![hx].?264))\d{1,3}) # E01 (-(?P<extra_ab_ep_num>((?!(1080|720|480)[pi])|(?![hx].?264))\d{1,3}))? # E02 (v(?P<version>[0-9]))? # v2 .*? # Separator and EOL ''') ] language_regexes = {} for k, v in showLanguages.iteritems(): language_regexes[ k] = '(^|\w|[. _-])*(' + v + ')(([. _-])(dubbed))?\w*([. _-]|$)'