array( 'artistid' => array( 'name' => 'Artist ID', 'type' => 'number', ) ), 'Label Releases' => array( 'labelid' => array( 'name' => 'Label ID', 'type' => 'number', ) ), 'User Wantlist' => array( 'username_wantlist' => array( 'name' => 'Username', 'type' => 'text', ) ), 'User Folder' => array( 'username_folder' => array( 'name' => 'Username', 'type' => 'text', ), 'folderid' => array( 'name' => 'Folder ID', 'type' => 'number', ) ) ); public function collectData() { if(!empty($this->getInput('artistid')) || !empty($this->getInput('labelid'))) { if(!empty($this->getInput('artistid'))) { $data = getContents('https://api.discogs.com/artists/' . $this->getInput('artistid') . '/releases?sort=year&sort_order=desc') or returnServerError('Unable to query discogs !'); } elseif(!empty($this->getInput('labelid'))) { $data = getContents('https://api.discogs.com/labels/' . $this->getInput('labelid') . '/releases?sort=year&sort_order=desc') or returnServerError('Unable to query discogs !'); } $jsonData = json_decode($data, true); foreach($jsonData['releases'] as $release) { $item = array(); $item['author'] = $release['artist']; $item['title'] = $release['title']; $item['id'] = $release['id']; $resId = array_key_exists('main_release', $release) ? $release['main_release'] : $release['id']; $item['uri'] = self::URI . $this->getInput('artistid') . '/release/' . $resId; $item['timestamp'] = DateTime::createFromFormat('Y', $release['year'])->getTimestamp(); $item['content'] = $item['author'] . ' - ' . $item['title']; $this->items[] = $item; } } elseif(!empty($this->getInput('username_wantlist')) || !empty($this->getInput('username_folder'))) { if(!empty($this->getInput('username_wantlist'))) { $data = getContents('https://api.discogs.com/users/' . $this->getInput('username_wantlist') . '/wants?sort=added&sort_order=desc') or returnServerError('Unable to query discogs !'); $jsonData = json_decode($data, true)['wants']; } elseif(!empty($this->getInput('username_folder'))) { $data = getContents('https://api.discogs.com/users/' . $this->getInput('username_folder') . '/collection/folders/' . $this->getInput('folderid') .'/releases?sort=added&sort_order=desc') or returnServerError('Unable to query discogs !'); $jsonData = json_decode($data, true)['releases']; } foreach($jsonData as $element) { $infos = $element['basic_information']; $item = array(); $item['title'] = $infos['title']; $item['author'] = $infos['artists'][0]['name']; $item['id'] = $infos['artists'][0]['id']; $item['uri'] = self::URI . $infos['artists'][0]['id'] . '/release/' . $infos['id']; $item['timestamp'] = strtotime($element['date_added']); $item['content'] = $item['author'] . ' - ' . $item['title']; $this->items[] = $item; } } } public function getURI() { return self::URI; } public function getName() { return static::NAME; } }