array( 'channel' => array( 'name' => 'Slug', 'type' => 'text', 'required' => true, 'exampleValue' => 'game-two-856' ), 'max' => array( 'name' => 'Maximum', 'type' => 'number', 'defaultValue' => '-1' ) ) ); public function collectData(){ switch($this->queriedContext) { case 'Channel': $url = static::URI . 'data/videos/byChannelAlias/' . $this->getInput('channel') . '/'; if(!empty($this->getInput('max')) && $this->getInput('max') >= 0) { $url .= '?size=' . $this->getInput('max'); } $jsonString = getContents($url) or returnServerError('No contents received!'); $json = json_decode($jsonString, true); foreach($json['list'] as $element) { $this->items[] = $this->collectArticle($element); } break; default: returnServerError('Unknown context!'); } } private function collectArticle($element) { $item = array(); $item['uri'] = static::URI . 'channel/' . $element['channelAlias'] . '/' . $element['alias']; $item['title'] = $element['title']; $item['timestamp'] = $element['publicationDate']; $item['author'] = str_replace('-' . $element['channelId'], '', $element['channelAlias']); $item['content'] = $element['shortDescription']; $item['enclosures'] = array( 'https://www.funk.net/api/v4.0/thumbnails/' . $element['imageLandscape'] ); $item['uid'] = $element['entityId']; return $item; } public function detectParameters($url) { $regex = '/^https?:\/\/(?:www\.)?funk\.net\/channel\/([^\/]+).*$/'; if(preg_match($regex, $url, $urlMatches) > 0) { return array( 'channel' => $urlMatches[1] ); } else { return null; } } public function getIcon() { return 'https://www.funk.net/img/favicons/favicon-192x192.png'; } public function getName(){ switch($this->queriedContext) { case 'Channel': if(!empty($this->getInput('channel'))) { return $this->getInput('channel'); } break; } return parent::getName(); } }