function testDeleteAndPutFile() { $STORAGE_SERVER_PATH = dirname(__FILE__) . "/../../"; $filePath = dirname(__FILE__) . "/ex1.mp3"; // Delete any old data from previous tests $md5 = md5_file($filePath); $duplicate = StoredFile::RecallByMd5($md5); if ($duplicate) { $duplicate->delete(); } // Test inserting a file by linking $values = array("filepath" => $filePath, "dc:description" => "Unit test " . time()); $storedFile = StoredFile::Insert($values, false); if (PEAR::isError($storedFile)) { $this->fail("Failed to create StoredFile: " . $storedFile->getMessage()); return; } //var_dump($storedFile); $id = $storedFile->getId(); if (!is_numeric($id)) { $this->fail("StoredFile not created correctly. id = " . $id); return; } // Test loading metadata $f = new StoredFile(); $f->__setGunid($storedFile->getGunid()); $f->loadMetadata(); if (!is_array($md = $f->getMetadata())) { $this->fail("Unable to load metadata."); return; } //var_dump($md); // Check if the length field has been set. $f2 = StoredFile::RecallByGunid($storedFile->getGunid()); $m2 = $f2->getMetadata(); if (!isset($m2["length"]) || $m2["length"] == "00:00:00.000000") { $this->fail("Length not reporting correctly in metadata."); return; } }
public static function copyFileToStor($p_targetDir, $fileName) { $audio_file = $p_targetDir . DIRECTORY_SEPARATOR . $fileName; $md5 = md5_file($audio_file); $duplicate = StoredFile::RecallByMd5($md5); if ($duplicate) { if (PEAR::isError($duplicate)) { die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": ' . $duplicate->getMessage() . '}}'); } if (file_exists($duplicate->getFilePath())) { $duplicateName = $duplicate->getMetadataValue('MDATA_KEY_TITLE'); die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "An identical audioclip named ' . $duplicateName . ' already exists in the storage server."}}'); } } $storDir = MusicDir::getStorDir(); $stor = $storDir->getDirectory(); $stor .= "/organize"; $audio_stor = $stor . DIRECTORY_SEPARATOR . $fileName; $r = @copy($audio_file, $audio_stor); }
public function reloadMetadataAction() { global $CC_CONFIG; $request = $this->getRequest(); $api_key = $request->getParam('api_key'); if (!in_array($api_key, $CC_CONFIG["apiKey"])) { header('HTTP/1.0 401 Unauthorized'); print 'You are not allowed to access this resource.'; exit; } $mode = $request->getParam('mode'); $params = $request->getParams(); $md = array(); //extract all file metadata params from the request. foreach ($params as $key => $value) { if (preg_match('/^MDATA_KEY/', $key)) { $md[$key] = $value; } } // update import timestamp Application_Model_Preference::SetImportTimestamp(); if ($mode == "create") { $filepath = $md['MDATA_KEY_FILEPATH']; $filepath = str_replace("\\", "", $filepath); $file = StoredFile::RecallByFilepath($filepath); if (is_null($file)) { $file = StoredFile::Insert($md); } else { $this->view->error = "File already exists in Airtime."; return; } } else { if ($mode == "modify") { $filepath = $md['MDATA_KEY_FILEPATH']; $filepath = str_replace("\\", "", $filepath); $file = StoredFile::RecallByFilepath($filepath); //File is not in database anymore. if (is_null($file)) { $this->view->error = "File does not exist in Airtime."; return; } else { $file->setMetadata($md); } } else { if ($mode == "moved") { $md5 = $md['MDATA_KEY_MD5']; $file = StoredFile::RecallByMd5($md5); if (is_null($file)) { $this->view->error = "File doesn't exist in Airtime."; return; } else { $filepath = $md['MDATA_KEY_FILEPATH']; $filepath = str_replace("\\", "", $filepath); $file->setFilePath($filepath); //$file->setMetadata($md); } } else { if ($mode == "delete") { $filepath = $md['MDATA_KEY_FILEPATH']; $filepath = str_replace("\\", "", $filepath); $file = StoredFile::RecallByFilepath($filepath); if (is_null($file)) { $this->view->error = "File doesn't exist in Airtime."; return; } else { $file->delete(); } } } } } $this->view->id = $file->getId(); }