_ignoredChannels = unserialize( config('irc_settings.scrape_irc_source_ignore'), ['allowed_classes' => ['#a.b.cd.image', '#a.b.console.ps3', '#a.b.dvd', '#a.b.erotica', '#a.b.flac', '#a.b.foreign', '#a.b.games.nintendods', '#a.b.inner-sanctum', '#a.b.moovee', '#a.b.movies.divx', '#a.b.sony.psp', '#a.b.sounds.mp3.complete_cd', '#a.b.teevee', '#a.b.games.wii', '#a.b.warez', '#a.b.games.xbox360', '#pre@corrupt', '#scnzb', '#tvnzb', 'srrdb', ], ] ); } else { $this->_ignoredChannels = [ '#a.b.cd.image' => false, '#a.b.console.ps3' => false, '#a.b.dvd' => false, '#a.b.erotica' => false, '#a.b.flac' => false, '#a.b.foreign' => false, '#a.b.games.nintendods' => false, '#a.b.inner-sanctum' => false, '#a.b.moovee' => false, '#a.b.movies.divx' => false, '#a.b.sony.psp' => false, '#a.b.sounds.mp3.complete_cd' => false, '#a.b.teevee' => false, '#a.b.games.wii' => false, '#a.b.warez' => false, '#a.b.games.xbox360' => false, '#pre@corrupt' => false, '#scnzb' => false, '#tvnzb' => false, 'srrdb' => false, ]; } $this->_categoryIgnoreRegex = false; if (config('irc_settings.scrape_irc_category_ignore') !== '') { $this->_categoryIgnoreRegex = config('irc_settings.scrape_irc_category_ignore'); } $this->_titleIgnoreRegex = false; if (config('irc_settings.scrape_irc_title_ignore') !== '') { $this->_titleIgnoreRegex = config('irc_settings.scrape_irc_title_ignore'); } $this->sphinxsearch = new SphinxSearch(); $this->_groupList = []; $this->_silent = $silent; $this->_debug = $debug; $this->_resetPreVariables(); $this->_startScraping(); } public function __destruct() { parent::__destruct(); } /** * Main method for scraping. */ protected function _startScraping() { // Connect to IRC. if ($this->connect(config('irc_settings.scrape_irc_server'), config('irc_settings.scrape_irc_port'), config('irc_settings.scrape_irc_tls')) === false) { exit( 'Error connecting to ('. config('irc_settings.scrape_irc_server'). ':'. config('irc_settings.scrape_irc_port'). '). Please verify your server information and try again.'. PHP_EOL ); } // Login to IRC. if ($this->login(config('irc_settings.scrape_irc_nickname'), config('irc_settings.scrape_irc_realname'), config('irc_settings.scrape_irc_username'), config('irc_settings.scrape_irc_password')) === false) { exit('Error logging in to: ('. config('irc_settings.scrape_irc_server').':'.config('irc_settings.scrape_irc_port').') nickname: ('.config('irc_settings.scrape_irc_nickname'). '). Verify your connection information, you might also be banned from this server or there might have been a connection issue.'. PHP_EOL ); } // Join channels. $channels = config('irc_settings.scrape_irc_channels') ? unserialize(config('irc_settings.scrape_irc_channels'), ['allowed_classes' => ['#PreNNTmux', '#nZEDbPRE']]) : ['#PreNNTmux' => null]; $this->joinChannels($channels); if (! $this->_silent) { echo '['. date('r'). '] [Scraping of IRC channels for ('. config('irc_settings.scrape_irc_server'). ':'. config('irc_settings.scrape_irc_port'). ') ('. config('irc_settings.scrape_irc_nickname'). ') started.]'. PHP_EOL; } // Scan incoming IRC messages. $this->readIncoming(); } /** * Process bot messages, insert/update PREs. */ protected function processChannelMessages(): void { if (preg_match( '/^(NEW|UPD|NUK): \[DT: (?P