1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- namespace Source;
- use \Game;
- use \PHPHtmlParser\Dom;
- class Steam extends Source {
- public $title = "Steam";
- protected function parse_tag($tag) {
- $url = 'http://store.steampowered.com/search/';
- $url .= '?'.http_build_query([
- 'sort_by' => 'Released_DESC',
- 'term' => $tag,
- 'displayterm' => $tag,
- 'category1' => 998,
- ]);
- try {
- $text = $this->get_text($url);
- $this->dom->loadStr($text, []);
- } catch (\Exception $e) {
- echo $e->getMessage();
- echo $e->getTraceAsString();
- return "";
- }
- unset($text);
- $games = $this->dom->find('#search_result_container a.search_result_row');
- foreach ($games as $gameLink) {
- $url = $gameLink->getAttribute('href');
- $url = substr($url,0,strpos($url, '?'));
- $game = new Game;
- $game->url = $url;
- try {
- $text = $this->get_text($url);
- $this->dom = new Dom;
- $this->dom->loadStr($text, []);
- unset($text);
- $name = $this->dom->find('div.apphub_AppName');
- $description = $this->dom->find('meta[property=og:description]');
- try {
- $game->title = $name->innerHtml;
- $game->description = $description->innerHtml;
- } catch (\Exception $e) {
- echo 'No title or description found for '.$url.PHP_EOL;
- }
- } catch (\Exception $e) {
- echo $e->getMessage();
- echo $e->getTraceAsString();
- }
- $this->games[] = $game;
- }
- }
- protected function parse() {
- $this->parse_tag("text-based");
- }
- }
|