getByNameByID($groupID); /* First, try to do regex that can match on many groups. */ //[278997]-[FULL]-[#a.b.erotica]-[ chi-the.walking.dead.xxx ]-[06/51] - "chi-the.walking.dead.xxx-s.mp4" yEnc if (preg_match('/^\[\d+\]-\[.+?\]-\[.+?\]-\[ (.+?) \]-\[\d+\/\d+\] - ".+?" yEnc$/', $subject, $match)) { $cleanerName = $match[1]; if (empty($cleanerName)) return $this->releaseCleanerHelper($subject); else return $cleanerName; } //>ghost-of-usenet.org>Udo Lindenberg & Alla Borissowna Pugatschowa - Songs Instead Of Letters [01/11] - "ul_abp.nfo" yEnc elseif (preg_match('/^>ghost-of-usenet\.org>(.+?) \[\d+\/\d+\] - ".+?" yEnc$/', $subject, $match)) { $cleanerName = $match[1]; if (empty($cleanerName)) return $this->releaseCleanerHelper($subject); else return $cleanerName; } //<<< <"ABBYY.FineReader.v11.0.102.583.Corporate.Edition.MULTiLANGUAGE-PillePalle.7z.007"> >www.SSL-News.info< - - 397,31 MB yEnc elseif (preg_match('/.+?( <[a-zA-Z]+>)? <"(.+?)(\.part\d+)?(\.(par2|(vol.+?))"|\.[a-z0-9]{3}"|")> >www\..+? yEnc$/', $subject, $match)) { $cleanerName = $match[2]; if (empty($cleanerName)) return $this->releaseCleanerHelper($subject); else return $cleanerName; } //Das.Glueck.dieser.Erde.S01E04.German.WS.DVDRiP.XViD-AMBASSADOR<>www.SSL-News.info< "ar-dgde-s01e04-xvid-sample.avi" yEnc elseif (preg_match('/^(.+?)<>www\..+? ".+?" yEnc$/', $subject, $match)) { $cleanerName = $match[2]; if (empty($cleanerName)) return $this->releaseCleanerHelper($subject); else return $cleanerName; } /* Now, we try to match on individual groups. */ elseif (preg_match('/alt\.binaries\.erotica$/', $groupName)) { $cleanerName = ""; // >> www.ssl-news.info <<< > [01/28] - "TayTO-heyzo_hd_0317_full.par2" - 2,17 GB yEnc if (preg_match('/^ >> www\.ssl-news\.info <<< > \[\d+\/\d+\] - "(.+?)(\.part\d+)?(\.(par2|(vol.+?))"|\.[a-z0-9]{3}"|") - /', $subject, $match)) $cleanerName = $match[1]; //NihilCumsteR [1/8] - "Conysgirls.cumpilation.xxx.NihilCumsteR.par2" yEnc else if (preg_match('/^NihilCumsteR.+?"(.+?)NihilCumsteR\./', $subject, $match)) $cleanerName = $match[1]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } elseif (preg_match('/alt\.binaries\.fz$/', $groupName)) { $cleanerName = ""; //>ghost-of-usenet.org>Monte.Cristo.GERMAN.2002.AC3.DVDRiP.XviD.iNTERNAL-HACO "haco-montecristo-xvid-a.par2" yEnc if (preg_match('/^>ghost-of-usenet\.org>(.+?)<.+?> ".+?" yEnc$/', $subject, $match)) $cleanerName = $match[1]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } elseif (preg_match('/alt\.binaries\.games$/', $groupName)) { $cleanerName = ""; //>ghost-of-usenet.org>Monte.Cristo.GERMAN.2002.AC3.DVDRiP.XviD.iNTERNAL-HACO "haco-montecristo-xvid-a.par2" yEnc if (preg_match('/^>ghost-of-usenet\.org>(.+?)<.+?> ".+?" yEnc$/', $subject, $match)) $cleanerName = $match[1]; //XCOM.Enemy.Unknown.Deutsch.Patch.TokZic [0/9] - "XCOM Deutsch.nzb" ein CrazyUpp yEnc else if (preg_match('/^(.+?) \[\d+\/\d+\] - ".+?" .+? yEnc$/', $subject, $match)) $cleanerName = $match[1]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } elseif (preg_match('/alt\.binaries\.german\.movies$/', $groupName)) { $cleanerName = ""; //>ghost-of-usenet.org>Monte.Cristo.GERMAN.2002.AC3.DVDRiP.XviD.iNTERNAL-HACO "haco-montecristo-xvid-a.par2" yEnc if (preg_match('/^>ghost-of-usenet\.org>(.+?)<.+?> ".+?" yEnc$/', $subject, $match)) $cleanerName = $match[1]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } elseif (preg_match('/alt\.binaries\.ghosts$/', $groupName)) { $cleanerName = ""; //XCOM.Enemy.Unknown.Deutsch.Patch.TokZic [0/9] - "XCOM Deutsch.nzb" ein CrazyUpp yEnc if (preg_match('/^(.+?) \[\d+\/\d+\] - ".+?" .+? yEnc$/', $subject, $match)) $cleanerName = $match[1]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } elseif (preg_match('/alt\.binaries\.inner-sanctum$/', $groupName)) { $cleanerName = ""; //ea17079f47de702eead5114038355a70 [1/9] - "00-da_morty_-_boondock_sampler_02-(tbr002)-web-2013-srg.m3u" yEnc /* $match[1] = MD5 */ if (preg_match('/^([a-fA-F0-9]+) \[\d+\/\d+\] - ".+?(\.part\d+)?(\.(par2|(vol.+?))"|\.[a-z0-9]{3}"|") yEnc$/', $subject, $match)) $cleanerName = $match[2]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } elseif (preg_match('/alt\.binaries\.mom$/', $groupName)) { $cleanerName = ""; //[usenet4ever.info] und [SecretUsenet.com] - 96e323468c5a8a7b948c06ec84511839-u4e - "96e323468c5a8a7b948c06ec84511839-u4e.par2" yEnc /* $match[1] = MD5 */ if (preg_match('/^\[usenet4ever\.info\] und \[SecretUsenet\.com\] - (.+?)-u4e - ".+?" yEnc$/', $subject, $match)) $cleanerName = $match[1]; //brothers-of-usenet.info/.net <<>> - [01/26] - "Be.Cool.German.AC3.HDRip.x264-FuN.par2" yEnc else if (preg_match('/\.net <<>> - \[\d+\/\d+\] - "(.+?)(\.part\d+)?(\.(par2|(vol.+?))"|\.[a-z0-9]{3}"|") yEnc$/', $subject, $match)) $cleanerName = $match[1]; //XCOM.Enemy.Unknown.Deutsch.Patch.TokZic [0/9] - "XCOM Deutsch.nzb" ein CrazyUpp yEnc else if (preg_match('/^(.+?) \[\d+\/\d+\] - ".+?" .+? yEnc$/', $subject, $match)) $cleanerName = $match[1]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } elseif (preg_match('/alt\.binaries\.moovee$/', $groupName)) { $cleanerName = ""; //[42788]-[#altbin@EFNet]-[Full]- "margin-themasterb-xvid.par2" yEnc if (preg_match('/^\[\d+\]-\[.+?\]-\[.+?\]- "(.+?)(\.part\d+)?(\.(par2|(vol.+?))"|\.[a-z0-9]{3}"|") yEnc$/', $subject, $match)) $cleanerName = $match[1]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } elseif (preg_match('/alt\.binaries\.mp3\.complete_cd$/', $groupName)) { $cleanerName = ""; //[052713]-[#eos@EFNet]-[All_Shall_Perish-Montreal_QUE_0628-2007-EOS]-[09/14] "06-all_shall_perish-deconstruction-eos.mp3" yEnc if (preg_match('/^\[(\d+)\]-\[.+?\]-\[(.+?)\]-\[\d+\/\d+\] ".+?" yEnc$/', $subject, $match)) $cleanerName = $match[1]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $this->releaseCleanerHelper($subject); else return $cleanerName; } elseif (preg_match('/alt\.binaries\.multimedia\.anime(\.highspeed)?/', $groupName)) { $cleanerName = ""; //High School DxD New 01 (480p|.avi|xvid|mp3) ~bY Hatsuyuki [01/18] - "[Hatsuyuki]_High_School_DxD_New_01_[848x480][76B2BB8C].avi.001" yEnc if (preg_match('/.+? \((360|480|720|1080)p\|.+? ~bY .+? \[\d+\/\d+\] - "(.+?\[[A-F0-9]+\].+?)(\.part\d+)?(\.(par2|(vol.+?))"|\.[a-z0-9]{3}"|") yEnc$/', $subject, $match)) $cleanerName = $match[2]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } elseif (preg_match('/alt\.binaries\.teevee$/', $groupName)) { $cleanerName = ""; //(01/37) "Entourage S08E08.part01.rar" - 349,20 MB - yEnc if (preg_match('/^\(\d+\/\d+\) "(.+?)(\.part\d+)?(\.(par2|(vol.+?))"|\.[a-z0-9]{3}"|") - \d.+? - (\d.+? -)? yEnc$/', $subject, $match)) $cleanerName = $match[1]; //ah63jka93jf0jh26ahjas558 - [01/22] - "ah63jka93jf0jh26ahjas558.par2" yEnc else if (preg_match('/^([a-z0-9]+) - \[\d+\/\d+\] - "[a-z0-9]+\..+?" yEnc$/', $subject, $match)) $cleanerName = $match[1]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $this->releaseCleanerHelper($subject); else return $cleanerName; } elseif (preg_match('/alt\.binaries\.tv$/', $groupName)) { $cleanerName = ""; //Borgen.2x02.A.Bruxelles.Non.Ti.Sentono.Urlare.ITA.BDMux.x264-NovaRip [02/22] - "borgen.2x02.ita.bdmux.x264-novarip.par2" yEnc if (preg_match('/^([a-zA-Z0-9.\-]+) \[\d+\/\d+\] - ".+?" yEnc$/', $subject, $match)) $cleanerName = $match[1]; //(bf1) [03/31] - "The.Block.AU.Sky.High.S07E56.WS.PDTV.XviD.BF1.part01.sfv" yEnc else if (preg_match('/^\(bf1\) \[\d+\/\d+\] - "(.+?)(\.part\d+)?(\.(par2|(vol.+?))"|\.[a-z0-9]{3}"|") yEnc$/', $subject, $match)) $cleanerName = $match[2]; else $cleanerName = $this->releaseCleanerHelper($subject); if (empty($cleanerName)) return $subject; else return $cleanerName; } else return $this->releaseCleanerHelper($subject); } else return $this->releaseCleanerHelper($subject); } public function releaseCleanerHelper($subject) { //File and part count. $cleanerName = preg_replace('/(File )?(\(|\[|\s)\d{1,4}(\/|(\s|_)of(\s|_)|\-)\d{1,4}(\)|\]|\s|$|:)|\(\d{1,3}\|\d{1,3}\)|\-\d{1,3}\-\d{1,3}\.|\s\d{1,3}\sof\s\d{1,3}\.|\s\d{1,3}\/\d{1,3}|\d{1,3}of\d{1,3}\.|^\d{1,3}\/\d{1,3}\s|\d{1,3} - of \d{1,3}/i', ' ', $subject); //Size. $cleanerName = preg_replace('/\d{1,3}(\.|,)\d{1,3}\s(K|M|G)B|\d{1,}(K|M|G)B|\d{1,}\sbytes?|(\-\s)?\d{1,}(\.|,)?\d{1,}\s(g|k|m)?B\s\-(\syenc)?|\s\(d{1,3},\d{1,3}\s{K,M,G}B\)\s|\(\d+K\)\syEnc|yEnc \d+k$/i', ' ', $cleanerName); //Extensions. $cleanerName = preg_replace('/ [a-z0-9]+\.jpg|((\d{1,3})?\.part(\d{1,5})?|\d{1,5}|sample)?\.(7z|\d{3}(?=(\s|"))|avi|epub|idx|iso|jpg|m4a|mds|mkv|mobi|mp4|nfo|nzb|pdf|rar|rev|rtf|r\d\d|sfv|srs|srr|sub|txt|vol.+(par2)|par(\s?2|")|zip|z{2})"?|(\s|(\d{2,3})?\-)\d{2,3}\.mp3|\d{2,3}\.pdf|yEnc|\.part\d{1,4}\./i', ' ', $cleanerName); //Books + Music. $cleanerName = preg_replace('/((\d{1,2}-\d{1-2})?-[a-z0-9]+)?\.scr|Ebook\-[a-z0-9]+|\((\d+ )ebooks\)|\(ebooks[\.\-_ ](collection|\d+)\)|\([a-z]{3,9} \d{1,2},? 20\d\d\)|\(\d{1,2} [a-z]{3,9} 20\d\d|\[ATTN:.+?\]|ATTN: [a-z]{3,13} |ATTN:(macserv 100|Test)|ATTN: .+? - ("|:)|ATTN .+?:|\((bad conversion|Day\d{1,}\/\?|djvu|fixed|pdb|tif)\)|by [a-z0-9]{3,15}$|^Dutch(:| )|enjoy!|(\*| )enjoy(\*| )|^ePub |\(EPUB\+MOBI\)|(Flood )?Please - All I have|isbn\d+|New Ebooks \d{1,2} [a-z]{3,9} (19|20)\d\d( part \d)?|\[(MF|Ssc)\]|^New Version( - .+? - )?|^NEW( [a-z]+( Paranormal Romance|( [a-z]+)?:|,| ))?(?![\.\-_ ]York)|[\.\-_ ]NMR \d{2,3}|( |\[)NMR( |\])|\[op.+?\d\]|\[Orion_Me\]|\[ORLY\]|Please\.\.\.|R4 - Book of the Week|Re: |READNFO|Req: |Req\.|!<-- REQ:|^Request|Requesting|Should I continue posting these collections\?|\[Team [a-z0-9]+\]|[\.\-_ ](Thanks|TIA!)[\.\-_ ]|\(v\.?\d+\.\d+[a-z]?\)|par2 set|\.(j|f|m|a|s|o|n|d)[a-z]{2,8}\.20\d\d/i', ' ', $cleanerName); //Unwanted stuff. $cleanerName = preg_replace('/sample("| )?$|"sample|\(\?\?\?\?\)|\[AoU\]|AsianDVDClub\.org|AutoRarPar\d{1,5}|brothers\-of\-usenet\.(info|net)(\/\.net)?|~bY ([a-z]{3,15}|c-w)|By request|DVD-Freak|Ew-Free-Usenet-\d{1,5}|for\.usenet4ever\.info|ghost-of-usenet.org<<|GOU<<|(http:\/\/www\.)?friends-4u\.nl|\[\d+\]-\[abgxEFNET\]-|\[[a-z\d]+\]\-\[[a-z\d]+\]-\[FULL\]-|\[\d{3,}\]-\[FULL\]-\[(a\.b| abgx).+?\]|\[\d{1,}\]|\-\[FULL\].+?#a\.b[\w.#!@$%^&*\(\){}\|\\:"\';<>,?~` ]+\]|Lords-of-Usenet(\] <> presents)?|nzbcave\.co\.uk( VIP)?|(Partner (of|von) )?SSL\-News\.info>> presents|\/ post: |powere?d by (4ux(\.n\)?l)?|the usenet)|(www\.)?ssl-news(\.info)?|SSL - News\.Info|usenet-piraten\.info|\-\s\[.+?\]\s<>\spresents|<.+?https:\/\/secretusenet\.com>|SECTIONED brings you|team-hush\.org\/| TiMnZb ||www\.binnfo\.in|www\.dreameplace\.biz|wwwworld\.me|www\.town\.ag|(Draak48|Egbert47|jipenjans|Taima) post voor u op|Dik Trom post voor|Sponsored\.by\.SecretUsenet\.com|(::::)?UR-powered by SecretUsenet.com(::::)?|usenet4ever\.info|(www\.)?usenet-4all\.info|www\.torentz\.3xforum\.ro|usenet\-space\-cowboys\.info|> USC <|SecretUsenet\.com|Thanks to OP|\] und \[|www\.michael-kramer\.com|(http:\\\\\\\\)?www(\.| )[a-z0-9]+(\.| )(co(\.| )cc|com|info|net|org)|zoekt nog posters\/spotters|>> presents|Z\[?NZB\]?(\.|_)wz(\.|_)cz|partner[\.\-_ ]of([\.\-_ ]www)?/i', ' ', $cleanerName); //Change [pw] to passworded. $cleanerName = str_replace(array('[pw]', '[PW]', ' PW ', '(Password)'), ' PASSWORDED ', $cleanerName); //Replaces some characters with 1 space. $cleanerName = str_replace(array(".", "_", '-', "|", "<", ">", '"', "=", '[', "]", "(", ")", "{", "}", "*", ";", ":", ",", "'", "~", "/", "&", "+"), " ", $cleanerName); //Replace multiple spaces with 1 space $cleanerName = trim(preg_replace('/\s\s+/i', ' ', $cleanerName)); //Remove the double name. $cleanerName = implode(' ', array_intersect_key(explode(' ', $cleanerName), array_unique(array_map('strtolower', explode(' ', $cleanerName))))); if (empty($cleanerName)) {return $subject;} else {return $cleanerName;} } // // Cleans release name for the namefixer class. // public function fixerCleaner($name) { //Extensions. $cleanerName = preg_replace('/ [a-z0-9]+\.jpg|((\d{1,3})?\.part(\d{1,5})?|\d{1,5}|sample)?\.(7z|\d{3}(?=(\s|"))|avi|epub|idx|iso|jpg|m4a|mds|mkv|mobi|mp4|nfo|nzb|pdf|rar|rev|rtf|r\d\d|sfv|srs|srr|sub|txt|vol.+(par2)|par(\s?2|")|zip|z{2})"?|(\s|(\d{2,3})?\-)\d{2,3}\.mp3|\d{2,3}\.pdf|yEnc|\.part\d{1,4}\./i', ' ', $name); //Replaces some characters with 1 space. $cleanerName = str_replace(array(".", "_", '-', "|", "<", ">", '"', "=", '[', "]", "(", ")", "{", "}", "*", ";", ":", ",", "'", "~", "/", "&", "+"), " ", $cleanerName); //Replace multiple spaces with 1 space $cleanerName = preg_replace('/\s\s+/i', ' ', $cleanerName); //Remove Release Name $cleanerName = preg_replace('/^Release Name/i', ' ', $cleanerName); //Remove invalid characters. $cleanerName = trim(utf8_encode(preg_replace('/[^(\x20-\x7F)]*/','', $cleanerName))); return $cleanerName; } } ?>