Вход Регистрация
Файл: include/function_queue.php
Строк: 188
<?php
/*|-------------------------------------------------
|*|    AVS Conversion Queue Functions
|*|-------------------------------------------------
|*/    

defined('_VALID') or die('Restricted Access!');

function 
remove_overdue($table) {
    
    global 
$config, $conn;    
    
$timeout = $config['q_timeout'];
    
$overdue = time() - ($timeout * 3600);
    
$sql= "DELETE FROM ".$table." WHERE status = '1' AND start < '".$overdue."'";
    
$conn->execute($sql);    
}

function 
active_conversions($table) {
    global 
$conn;        
    
$sql    = "SELECT * FROM ".$table." WHERE status = '1'";
    
$rs      = $conn->execute($sql);    
    return 
$conn->Affected_Rows();
}

function 
check_q() {

    global 
$config, $conn;
    
remove_overdue('conversion_queue_fp');

    if (
active_conversions('conversion_queue_fp') < intval($config['q_limit'])) {
        
        
$sql    = "SELECT * FROM conversion_queue_fp WHERE status = '0' ORDER BY addtime ASC LIMIT ".intval($config['q_limit']);
        
$rs     = $conn->execute($sql);
        if (
$conn->Affected_Rows()>0) {
            
$videos = $rs->getrows();
            foreach(
$videos as $video) {                
                
$video_name    = $video['video_name'];
                
$video_id     = $video['VID'];
                
$video_path = $video['video_path'];
                
$script     = $config['BASE_DIR']."/scripts/convert_videos_fp.php";
                if(
file_exists($video_path)) {
                    
$cmd = $config['phppath']." ".$script." ".$video_name." ".$video_id." ".$video_path."";
                    
$sql = "UPDATE conversion_queue_fp SET status='1', start = '".time()."' WHERE VID = '".$video_id."' LIMIT 1";
                    
$conn->execute($sql);
                    
log_in_back($config['LOG_DIR']. '/' .$video_id. '.log', $cmd);
                    
$lg = $config['LOG_DIR']. '/' .$video_id. '.log2';
                    
run_in_bg($cmd.' > '.$lg);    
                    return 
true;
                } else {
                    
$sql = "DELETE FROM conversion_queue_fp WHERE VID = '".$video_id."' LIMIT 1";
                    
$conn->execute($sql);
                }
            }
            unset(
$videos);
        }
    }

    
remove_overdue('conversion_queue_sp');

    if (
active_conversions('conversion_queue_sp') < 1) {

        
$sql = "SELECT * FROM conversion_queue_sp WHERE STATUS = '0' ORDER BY addtime LIMIT 1";
        
$rs = $conn->execute($sql);    
        if (
$conn->Affected_Rows()==1) {
            
$video_name = $rs->fields['video_name'];
            
$video_id     = $rs->fields['VID'];
            
$video_path = $rs->fields['video_path'];
            
$skip         = $rs->fields['skip'];
            
$script     = $config['BASE_DIR']."/scripts/convert_videos_sp.php";
            if(
file_exists($video_path)) {                    
                
$cmd = $config['phppath']." ".$script." ".$video_name." ".$video_id." ".$video_path." ".$skip."";
                
$sql = "UPDATE conversion_queue_sp SET status='1', start = '".time()."' WHERE VID = '".$video_id."' LIMIT 1";
                
$conn->execute($sql);
                
log_in_back($config['LOG_DIR']. '/' .$video_id. '.log', $cmd);
                
$lg = $config['LOG_DIR']. '/' .$video_id. '.log3';
                
run_in_bg($cmd.' > '.$lg);    
                return 
true;
            } else {
                
$sql = "DELETE FROM conversion_queue_sp WHERE VID = '".$video_id."' LIMIT 1";
                
$conn->execute($sql);            
            }
        }
    }
    return 
false;
}

function 
insert_into_q_fp($vid, $video_name, $video_path) {

    global 
$conn; 

    
$sql    = "SELECT * FROM conversion_queue_fp WHERE VID = '".$vid."' LIMIT 1";
    
$rs     = $conn->execute($sql);
    if (
$conn->Affected_Rows()!=1) {
        
$sql     = "SELECT * FROM video WHERE VID = '".$vid."' LIMIT 1";
        
$rs        = $conn->execute($sql);
        
$uid     = $rs->fields['UID'];
        
$title     = $rs->fields['title'];
        
$sql     = "INSERT INTO conversion_queue_fp SET 
                    VID = '"
.intval($vid)."', 
                    UID = '"
.intval($uid)."', 
                    video_name = "
.$conn->qStr($video_name).", 
                    video_path = "
.$conn->qStr($video_path).", 
                    title = "
.$conn->qStr($title).", 
                    addtime = '"
.time()."'";
        
$conn->execute($sql);
    }
    
check_q();    
}

function 
insert_into_q_sp($vid, $skip) {

    global 
$conn;

    
$sql     = "SELECT * FROM conversion_queue_sp WHERE VID = '".$vid."' LIMIT 1";
    
$rs         = $conn->execute($sql);
    if (
$conn->Affected_Rows()!=1) {
        
$sql     = "SELECT * FROM conversion_queue_fp WHERE VID = '".$vid."' LIMIT 1";
        
$rs        = $conn->execute($sql);
        if (
$conn->Affected_Rows()==1) {
            
$uid         = $rs->fields['UID'];
            
$video_name = $rs->fields['video_name'];
            
$video_path = $rs->fields['video_path'];
            
$title         = $rs->fields['title'];
            
$sql         = "INSERT INTO conversion_queue_sp SET 
                            VID = '"
.$vid."', 
                            UID = '"
.intval($uid)."', 
                            video_name = "
.$conn->qStr($video_name).", 
                            video_path = "
.$conn->qStr($video_path).", 
                            skip = '"
.$skip."', 
                            title = "
.$conn->qStr($title).", 
                            addtime = '"
.time()."'";
            
$conn->execute($sql);
        }
    }
    
check_q();    
}

function 
log_in_back ($file_path, $text) {   

    
$file_dir = dirname($file_path);
    if( !
file_exists($file_dir) or !is_dir($file_dir) or !is_writable($file_dir) ) {
        return 
false;
    }
                    
    
$write_mode = 'w';
    if( 
file_exists($file_path) && is_file($file_path) && is_writable($file_path) ) {
        
$write_mode = 'a';
    }
                                
    if( !
$handle = fopen($file_path, $write_mode) ) {
        return 
false;
    }
                                                
    if( 
fwrite($handle, $text. "n") == FALSE ) {
        return 
false;
    }
                                                            
    @
fclose($handle);
} 

function 
run_in_bg($Command, $Priority = 0) {
    if(
$Priority) {
        
$PID = shell_exec("nohup nice -n $Priority $Command 2> /dev/null & echo $!");
    } else {
        
$PID = shell_exec("nohup $Command 2> /dev/null & echo $!");
    }
    return(
$PID);
}

?>
Онлайн: 0
Реклама