CC-4011: System -> Media Folders: Changing page will stop removing a watched folder with lots of files (50,000)
-Changed doing 50,000 database calls to 1.
This commit is contained in:
parent
84f867a00f
commit
a63b765621
|
@ -82,17 +82,9 @@ class Application_Model_MusicDir {
|
||||||
$show_instances = $con->query($sql)->fetchAll();
|
$show_instances = $con->query($sql)->fetchAll();
|
||||||
|
|
||||||
// get all the files on this dir
|
// get all the files on this dir
|
||||||
$sql = "SELECT f.id FROM cc_music_dirs as md "
|
$sql = "UPDATE cc_files SET file_exists = 'f' WHERE id IN (SELECT f.id FROM cc_music_dirs as md "
|
||||||
." LEFT JOIN cc_files as f on f.directory = md.id WHERE md.id = $music_dir_id";
|
." LEFT JOIN cc_files as f on f.directory = md.id WHERE md.id = $music_dir_id)";
|
||||||
$files = $con->query($sql)->fetchAll();
|
$affected = $con->exec($sql);
|
||||||
|
|
||||||
// set file_exist flag to false
|
|
||||||
foreach ($files as $file_row) {
|
|
||||||
$temp_file = Application_Model_StoredFile::Recall($file_row['id']);
|
|
||||||
if($temp_file != null){
|
|
||||||
$temp_file->setFileExistsFlag(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// set RemovedFlag to true
|
// set RemovedFlag to true
|
||||||
if ($userAddedWatchedDir) {
|
if ($userAddedWatchedDir) {
|
||||||
|
@ -399,14 +391,16 @@ class Application_Model_MusicDir {
|
||||||
* otherwise, it will set "Exists" flag to true
|
* otherwise, it will set "Exists" flag to true
|
||||||
**/
|
**/
|
||||||
public static function removeWatchedDir($p_dir, $userAddedWatchedDir=true){
|
public static function removeWatchedDir($p_dir, $userAddedWatchedDir=true){
|
||||||
|
|
||||||
|
//make sure that $p_dir has a trailing "/"
|
||||||
$real_path = Application_Common_OsPath::normpath($p_dir)."/";
|
$real_path = Application_Common_OsPath::normpath($p_dir)."/";
|
||||||
if($real_path != "/"){
|
if($real_path != "/"){
|
||||||
$p_dir = $real_path;
|
$p_dir = $real_path;
|
||||||
}
|
}
|
||||||
$dir = Application_Model_MusicDir::getDirByPath($p_dir);
|
$dir = Application_Model_MusicDir::getDirByPath($p_dir);
|
||||||
if($dir == NULL){
|
if (is_null($dir)) {
|
||||||
return array("code"=>1,"error"=>"'$p_dir' doesn't exist in the watched list.");
|
return array("code"=>1, "error"=>"'$p_dir' doesn't exist in the watched list.");
|
||||||
}else{
|
} else {
|
||||||
$dir->remove($userAddedWatchedDir);
|
$dir->remove($userAddedWatchedDir);
|
||||||
$data = array();
|
$data = array();
|
||||||
$data["directory"] = $p_dir;
|
$data["directory"] = $p_dir;
|
||||||
|
|
|
@ -890,8 +890,7 @@ Logging::log("getting media! - 2");
|
||||||
exec($command, $output, $rv);
|
exec($command, $output, $rv);
|
||||||
if ($rv != 0 || (!empty($output) && $output[0] == 'TagLib: MPEG::Properties::read() -- Could not find a valid last MPEG frame in the stream.')) {
|
if ($rv != 0 || (!empty($output) && $output[0] == 'TagLib: MPEG::Properties::read() -- Could not find a valid last MPEG frame in the stream.')) {
|
||||||
$result = array("code" => 110, "message" => "This file appears to be corrupted and will not be added to media library.");
|
$result = array("code" => 110, "message" => "This file appears to be corrupted and will not be added to media library.");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
//Martin K.: changed to rename: Much less load + quicker since this is an atomic operation
|
//Martin K.: changed to rename: Much less load + quicker since this is an atomic operation
|
||||||
$r = @rename($audio_file, $audio_stor);
|
$r = @rename($audio_file, $audio_stor);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue