diff --git a/clients/sailfish/rpm/harbour-librefm.yaml b/clients/sailfish/rpm/harbour-librefm.yaml index 887d10e8f9177d68ae35ca49a6559e13aea8d0c1..c3e24f5ed61981091ec05b3defe239b5f6daf18d 100644 --- a/clients/sailfish/rpm/harbour-librefm.yaml +++ b/clients/sailfish/rpm/harbour-librefm.yaml @@ -12,18 +12,18 @@ Description: | Configure: none Builder: qtc5 PkgConfigBR: -- sailfishapp >= 0.0.10 -- Qt5Core -- Qt5Qml - Qt5Quick +- Qt5Qml +- Qt5Core +- sailfishapp >= 0.0.10 Requires: - sailfishsilica-qt5 >= 0.10.9 Files: -- /usr/share/icons/hicolor/86x86/apps -- /usr/share/applications -- /usr/share/harbour-librefm -- /usr/bin -- '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png' -- '%{_datadir}/applications/%{name}.desktop' -- '%{_datadir}/%{name}/qml' - '%{_bindir}' +- '%{_datadir}/%{name}/qml' +- '%{_datadir}/applications/%{name}.desktop' +- '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png' +- /usr/bin +- /usr/share/harbour-librefm +- /usr/share/applications +- /usr/share/icons/hicolor/86x86/apps diff --git a/nixtape/2.0/index.php b/nixtape/2.0/index.php index 312b1207b1cbb889284e6c220b971dbc87b3b697..51620f0be13e69a2882de2e48da7f0baeb6b9cfe 100644 --- a/nixtape/2.0/index.php +++ b/nixtape/2.0/index.php @@ -113,6 +113,7 @@ $method_map = array( 'tag.getinfo' => method_tag_getInfo, 'track.addtags' => method_track_addTags, 'track.removetag' => method_track_removeTag, + 'track.getinfo' => method_track_getInfo, 'track.gettoptags' => method_track_getTopTags, 'track.gettopfans' => method_track_getTopFans, 'track.gettags' => method_track_getTags, @@ -1137,6 +1138,31 @@ function method_track_removeTag() { } +/** + * track.getinfo : Get general information about a track. + * + * ###Description + * Get further information about this track. + * + * ###Parameters + * * **artist** (required) : Name of the track's artist. + * * **track** (required) : Name of the track. + * * **username** (optional) : User to get track info for (e.g. whether loved or not) + * --- + * + * @package Webservice + * @subpackage Track + * @api + */ +function method_track_getInfo() { + if (!isset($_REQUEST['artist']) || !isset($_REQUEST['track'])) { + report_failure(LFM_INVALID_PARAMS); + } + + $xml = TrackXML::getInfo($_REQUEST['artist'], $_REQUEST['track'], $_REQUEST['username']); + respond($xml); +} + /** * track.gettoptags : Get the top tags for a track. * diff --git a/nixtape/api/TrackXML.php b/nixtape/api/TrackXML.php index c8201a2ad455426fae2ebacd2b072d4c4f60be89..62ade9694379ed6c10d7200113b05c61f04f7250 100644 --- a/nixtape/api/TrackXML.php +++ b/nixtape/api/TrackXML.php @@ -64,6 +64,33 @@ class TrackXML { return $xml; } + public static function getInfo($artist, $name, $username) { + global $adodb; + + try { + $track = new Track($name, $artist); + } catch (Exception $e) { + return(XML::error('failed', '7', 'Invalid resource specified')); + } + + $xml = new SimpleXMLElement(''); + $root = $xml->addChild('track', null); + $root->addChild('name', $track->name); + $root->addChild('mbid', $track->mbid); + $root->addChild('url', $track->getURL()); + $root->addChild('duration', $track->duration * 1000); + $streamable = $root->addChild('streamable', $track->streamable); + $streamable->addAttribute('fulltrack', $track->streamable); + $root->addChild('listeners', $track->getListenerCount()); + $root->addChild('playcount', $track->getPlayCount()); + if($username) { + $userid = $adodb->GetOne('SELECT uniqueid FROM Users WHERE ' + . 'username = ' . $adodb->qstr($username)); + $root->addChild('userloved', $track->isLoved($userid) ? 1 : 0); + } + return $xml; + } + public static function getTopTags($artist, $name, $limit, $cache) { try {