. */ namespace App\Sources; use \App\Models\Game; use \App\Source; use \Symfony\Component\DomCrawler\Crawler; class Textadventures extends Source { public $title = "Textadventures.co.uk"; public function parse() { $text = $this->get_text('http://textadventures.co.uk/games/latest'); $this->loadStr($text); unset($text); $this->dom->filter('.games-item')->each(function($gameBlock){ $game = new Game; $game->url = 'http://textadventures.co.uk'.$gameBlock->filter('.games-title a')->attr('href'); $game->title = $gameBlock->filter('.games-title a')->text(); $date = strtotime($gameBlock->filter('.games-date')->text()); if ($date < $this->period) return; $text = $this->get_text($game->url); $game_page = new Crawler($text); unset($text); $game->author = str_replace('by ', '', $game_page->filter('h1 small')->text()); $image = $game_page->filter('img.cover-image')->first(); if ($image->count()) { $game->image = $image->attr('src'); } $game_page = $game_page->filter('.col-md-12 .col-md-9 > .col-md-12')->first(); if (!$game_page->count()) { $game_page = $game_page->filter('.col-md-12 .col-md-9 > .col-md-7')->first(); } if ($game_page->count()) { $game->desc = trim($game_page->children()->first()->text()); } $this->output .= $game->print(); }); } }