diff --git a/bridges/DailymotionBridge.php b/bridges/DailymotionBridge.php index 5d892954..fcaa4292 100644 --- a/bridges/DailymotionBridge.php +++ b/bridges/DailymotionBridge.php @@ -44,68 +44,32 @@ class DailymotionBridge extends BridgeAbstract public function getIcon() { - return 'https://static1-ssl.dmcdn.net/images/neon/favicons/android-icon-36x36.png.vf806ca4ed0deed812'; + return 'https://static1.dmcdn.net/neon-user-ssr/prod/favicons/apple-icon-60x60.831b96ed0a8eca7f6539.png'; } public function collectData() { - if ($this->queriedContext === 'By username' || $this->queriedContext === 'By playlist id') { - $apiJson = getContents($this->getApiUrl()); - - $apiData = json_decode($apiJson, true); + $apiJson = getContents($this->getApiUrl()); + $apiData = json_decode($apiJson, true); + if ($this->queriedContext === 'By playlist id') { $this->feedName = $this->getPlaylistTitle($this->getInput('p')); - - foreach ($apiData['list'] as $apiItem) { - $item = []; - - $item['uri'] = $apiItem['url']; - $item['uid'] = $apiItem['id']; - $item['title'] = $apiItem['title']; - $item['timestamp'] = $apiItem['created_time']; - $item['author'] = $apiItem['owner.screenname']; - $item['content'] = '

-

' . $apiItem['description'] . '

'; - $item['categories'] = $apiItem['tags']; - $item['enclosures'][] = $apiItem['thumbnail_url']; - - $this->items[] = $item; - } } - if ($this->queriedContext === 'From search results') { - $html = getSimpleHTMLDOM($this->getURI()); + foreach ($apiData['list'] as $apiItem) { + $item = []; - foreach ($html->find('div.media a.preview_link') as $element) { - $item = []; + $item['uri'] = $apiItem['url']; + $item['uid'] = $apiItem['id']; + $item['title'] = $apiItem['title']; + $item['timestamp'] = $apiItem['created_time']; + $item['author'] = $apiItem['owner.screenname']; + $item['content'] = '

+

' . $apiItem['description'] . '

'; + $item['categories'] = $apiItem['tags']; + $item['enclosures'][] = $apiItem['thumbnail_url']; - $item['id'] = str_replace('/video/', '', strtok($element->href, '_')); - $metadata = $this->getMetadata($item['id']); - - if (empty($metadata)) { - continue; - } - - $item['uri'] = $metadata['uri']; - $item['title'] = $metadata['title']; - $item['timestamp'] = $metadata['timestamp']; - - $item['content'] = '
' - . $item['title'] - . ''; - - $this->items[] = $item; - - if (count($this->items) >= 5) { - break; - } - } + $this->items[] = $item; } } @@ -136,6 +100,7 @@ class DailymotionBridge extends BridgeAbstract public function getURI() { $uri = self::URI; + switch ($this->queriedContext) { case 'By username': $uri .= 'user/' . urlencode($this->getInput('u')); @@ -162,35 +127,10 @@ class DailymotionBridge extends BridgeAbstract return $uri; } - private function getMetadata($id) - { - $metadata = []; - - $html = getSimpleHTMLDOM(self::URI . 'video/' . $id); - - if (!$html) { - return $metadata; - } - - $metadata['title'] = $html->find('meta[property=og:title]', 0)->getAttribute('content'); - $metadata['timestamp'] = strtotime( - $html->find('meta[property=video:release_date]', 0)->getAttribute('content') - ); - $metadata['thumbnailUri'] = $html->find('meta[property=og:image]', 0)->getAttribute('content'); - $metadata['uri'] = $html->find('meta[property=og:url]', 0)->getAttribute('content'); - return $metadata; - } - private function getPlaylistTitle($id) { - $title = ''; - - $url = self::URI . 'playlist/' . $id; - - $html = getSimpleHTMLDOM($url); - - $title = $html->find('meta[property=og:title]', 0)->getAttribute('content'); - return $title; + $html = getSimpleHTMLDOM(self::URI . 'playlist/' . $id); + return $html->find('meta[property=og:title]', 0)->getAttribute('content'); } private function getApiUrl() @@ -204,6 +144,9 @@ class DailymotionBridge extends BridgeAbstract return $this->apiUrl . '/playlist/' . $this->getInput('p') . '/videos?fields=' . urlencode($this->apiFields) . '&limit=5'; break; + case 'From search results': + return $this->apiUrl . '/videos?search=' . $this->getInput('s') . '&fields=' . urlencode($this->apiFields) . '&limit=5'; + break; } } }