Generate artwork images for audio using ID3.
This commit is contained in:
parent
24dd71ad33
commit
45dbf84750
30 changed files with 939 additions and 199 deletions
|
@ -26,6 +26,7 @@ class ApiController extends Zend_Controller_Action
|
|||
"show-tracks",
|
||||
"show-schedules",
|
||||
"show-logo",
|
||||
"track",
|
||||
"stream-m3u"
|
||||
);
|
||||
|
||||
|
@ -294,6 +295,20 @@ class ApiController extends Zend_Controller_Action
|
|||
$result = Application_Model_Schedule::GetPlayOrderRangeOld($limit);
|
||||
}
|
||||
|
||||
$stationUrl = Application_Common_HTTPHelper::getStationUrl();
|
||||
|
||||
$previousID = $result["previous"]["metadata"]["id"];
|
||||
$get_prev_artwork_url = $stationUrl . 'api/track?id='. $previousID .'&return=artwork';
|
||||
$result["previous"]["metadata"]["artwork_url"] = $get_prev_artwork_url;
|
||||
|
||||
$currID = $result["current"]["metadata"]["id"];
|
||||
$get_curr_artwork_url = $stationUrl . 'api/track?id='. $currID .'&return=artwork';
|
||||
$result["current"]["metadata"]["artwork_url"] = $get_curr_artwork_url;
|
||||
|
||||
$nextID = $result["previous"]["metadata"]["id"];
|
||||
$get_next_artwork_url = $stationUrl . 'api/track?id='. $nextID .'&return=artwork';
|
||||
$result["previous"]["metadata"]["artwork_url"] = $get_next_artwork_url;
|
||||
|
||||
// apply user-defined timezone, or default to station
|
||||
Application_Common_DateHelper::convertTimestampsToTimezone(
|
||||
$result['currentShow'],
|
||||
|
@ -523,6 +538,103 @@ class ApiController extends Zend_Controller_Action
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* New API endpoint to display metadata from any single track
|
||||
*
|
||||
* Find metadata to any track imported (eg. id=1&return=json)
|
||||
*
|
||||
* @param int $id track ID
|
||||
* @param string $return json, artwork_data, or artwork
|
||||
*
|
||||
*/
|
||||
public function trackAction()
|
||||
{
|
||||
// Disable the view and the layout
|
||||
$this->view->layout()->disableLayout();
|
||||
$this->_helper->viewRenderer->setNoRender(true);
|
||||
|
||||
if (Application_Model_Preference::GetAllow3rdPartyApi() || $this->checkAuth()) {
|
||||
|
||||
$request = $this->getRequest();
|
||||
$trackid = $request->getParam('id');
|
||||
$return = $request->getParam('return');
|
||||
|
||||
if (empty($return)) {
|
||||
throw new ZendActionHttpException($this, 400, "ERROR: No return was given.");
|
||||
}
|
||||
|
||||
if (empty($trackid)) {
|
||||
throw new ZendActionHttpException($this, 400, "ERROR: No ID was given.");
|
||||
}
|
||||
|
||||
$storDir = Application_Model_MusicDir::getStorDir();
|
||||
$fp = $storDir->getDirectory();
|
||||
|
||||
//$this->view->type = $type;
|
||||
$file = Application_Model_StoredFile::RecallById($trackid);
|
||||
$md = $file->getMetadata();
|
||||
|
||||
if ($return === "artwork-data") {
|
||||
foreach ($md as $key => $value) {
|
||||
if ($key == 'MDATA_KEY_ARTWORK' && !is_null($value)) {
|
||||
FileDataHelper::renderDataURI($fp . $md['MDATA_KEY_ARTWORK']);
|
||||
}
|
||||
}
|
||||
} elseif ($return === "artwork-data-32") {
|
||||
foreach ($md as $key => $value) {
|
||||
if ($key == 'MDATA_KEY_ARTWORK' && !is_null($value)) {
|
||||
FileDataHelper::renderDataURI($fp . $md['MDATA_KEY_ARTWORK']. '-32');
|
||||
}
|
||||
}
|
||||
} elseif ($return === "artwork") {
|
||||
//default
|
||||
foreach ($md as $key => $value) {
|
||||
if ($key == 'MDATA_KEY_ARTWORK' && !is_null($value)) {
|
||||
FileDataHelper::renderImage($fp . $md['MDATA_KEY_ARTWORK'].'-1024.jpg');
|
||||
}
|
||||
}
|
||||
} elseif ($return === "artwork-32") {
|
||||
foreach ($md as $key => $value) {
|
||||
if ($key == 'MDATA_KEY_ARTWORK' && !is_null($value)) {
|
||||
FileDataHelper::renderImage($fp . $md['MDATA_KEY_ARTWORK'].'-32.jpg');
|
||||
}
|
||||
}
|
||||
} elseif ($return === "artwork-64") {
|
||||
foreach ($md as $key => $value) {
|
||||
if ($key == 'MDATA_KEY_ARTWORK' && !is_null($value)) {
|
||||
FileDataHelper::renderImage($fp . $md['MDATA_KEY_ARTWORK'].'-64.jpg');
|
||||
}
|
||||
}
|
||||
} elseif ($return === "artwork-128") {
|
||||
foreach ($md as $key => $value) {
|
||||
if ($key == 'MDATA_KEY_ARTWORK' && !is_null($value)) {
|
||||
FileDataHelper::renderImage($fp . $md['MDATA_KEY_ARTWORK'].'-128.jpg');
|
||||
}
|
||||
}
|
||||
} elseif ($return === "artwork-512") {
|
||||
foreach ($md as $key => $value) {
|
||||
if ($key == 'MDATA_KEY_ARTWORK' && !is_null($value)) {
|
||||
FileDataHelper::renderImage($fp . $md['MDATA_KEY_ARTWORK'].'-512.jpg');
|
||||
}
|
||||
}
|
||||
} elseif ($return === "artwork-1024") {
|
||||
foreach ($md as $key => $value) {
|
||||
if ($key == 'MDATA_KEY_ARTWORK' && !is_null($value)) {
|
||||
FileDataHelper::renderImage($fp . $md['MDATA_KEY_ARTWORK'].'-1024.jpg');
|
||||
}
|
||||
}
|
||||
} elseif ($return === "json") {
|
||||
$data =json_encode($md);
|
||||
echo $data;
|
||||
}
|
||||
|
||||
} else {
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
print _('You are not allowed to access this resource. ');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* API endpoint to provide station metadata
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue