From e00bbe353ff1dd5fc1c6c75ba2bdae78f3d1578a Mon Sep 17 00:00:00 2001 From: ORelio Date: Mon, 31 Aug 2020 19:02:25 +0200 Subject: [PATCH] * [ReleasesSwitch] Switch scene releases (#1694) Separate bridge from Releases3DS that just has a different URL. Inherits from Releases3DS so both bridges need to be present. * [Releases3DS] Fix PHP notices related to IGN --- bridges/Releases3DSBridge.php | 41 ++++++++++++++++++++------------ bridges/ReleasesSwitchBridge.php | 17 +++++++++++++ 2 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 bridges/ReleasesSwitchBridge.php diff --git a/bridges/Releases3DSBridge.php b/bridges/Releases3DSBridge.php index fe2df8ec..686e7c5d 100644 --- a/bridges/Releases3DSBridge.php +++ b/bridges/Releases3DSBridge.php @@ -5,13 +5,16 @@ class Releases3DSBridge extends BridgeAbstract { const NAME = '3DS Scene Releases'; const URI = 'http://www.3dsdb.com/'; const CACHE_TIMEOUT = 10800; // 3h - const DESCRIPTION = 'Returns the newest scene releases.'; + const DESCRIPTION = 'Returns the newest scene releases for Nintendo 3DS.'; public function collectData(){ + $this->collectDataUrl(self::URI . 'xml.php'); + } + + protected function collectDataUrl($dataUrl){ - $dataUrl = self::URI . 'xml.php'; $xml = getContents($dataUrl) - or returnServerError('Could not request 3dsdb: ' . $dataUrl); + or returnServerError('Could not request URL: ' . $dataUrl); $limit = 0; foreach(array_reverse(explode('', $xml)) as $element) { @@ -52,17 +55,25 @@ class Releases3DSBridge extends BridgeAbstract { $ignSearchUrl = 'https://www.ign.com/search?q=' . urlencode($name); if($ignResult = getSimpleHTMLDOMCached($ignSearchUrl)) { - $ignCoverArt = $ignResult->find('div.search-item-media', 0)->find('img', 0)->src; - $ignDesc = $ignResult->find('div.search-item-description', 0)->plaintext; - $ignLink = $ignResult->find('div.search-item-sub-title', 0)->find('a', 1)->href; - $ignDate = strtotime(trim($ignResult->find('span.publish-date', 0)->plaintext)); - $ignDescription = '
' - . $ignDesc - . ' More at IGN
'; + $ignCoverArt = $ignResult->find('div.search-item-media', 0); + $ignDesc = $ignResult->find('div.search-item-description', 0); + $ignLink = $ignResult->find('div.search-item-sub-title', 0); + $ignDate = $ignResult->find('span.publish-date', 0); + if (is_object($ignCoverArt)) + $ignCoverArt = $ignCoverArt->find('img', 0); + if (is_object($ignLink)) + $ignLink = $ignLink->find('a', 1); + if (is_object($ignDate)) + $ignDate = strtotime(trim($ignDate->plaintext)); + if (is_object($ignCoverArt) && is_object($ignDesc) && is_object($ignLink)) { + $ignDescription = '
' + . $ignDesc->plaintext + . ' More at IGN
'; + } } //Main section : Release description from 3DS database @@ -111,7 +122,7 @@ class Releases3DSBridge extends BridgeAbstract { private function typeToString($type){ switch($type) { - case 1: return '3DS Game'; + case 1: return 'Card Game'; case 4: return 'eShop'; default: return '??? (' . $type . ')'; } diff --git a/bridges/ReleasesSwitchBridge.php b/bridges/ReleasesSwitchBridge.php new file mode 100644 index 00000000..3814f8ec --- /dev/null +++ b/bridges/ReleasesSwitchBridge.php @@ -0,0 +1,17 @@ +collectDataUrl(self::URI . 'xml.php'); + } +}