Вход Регистрация
Файл: adultscript-2.0.3-pro/files/modules/video/helpers/manage.php
Строк: 110
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VHelper_video_manage
{
    public static function 
delete($video_id)
    {
        
//we need to initialize our database connection again here
        
VF::factory_remove('database');
        
$db VF::factory('database');

        
$db->query("SELECT user_id, slug, thumbs, server, s3
                          FROM #__video
                          WHERE video_id = "
.$video_id."
                          LIMIT 1"
);
        if (
$db->affected_rows()) {
            
$video      $db->fetch_assoc();
            
$user_id    = (int) $video['user_id'];
            
$slug        $video['slug'];
            
$thumbs     = (int) $video['thumbs'];
            
$server     = (int) $video['server'];
            
$s3         = (int) $video['s3'];

            
$db->query("SELECT GROUP_CONCAT(cat_id) AS categories
                              FROM #__video_category
                              WHERE video_id = "
.$video_id);
            if (
$db->affected_rows()) {
                
$categories $db->fetch_field('categories');
                if (!empty(
$categories)) {
                    
$db->query("UPDATE #__video_categories
                                SET total_videos = total_videos-1
                                WHERE cat_id IN ("
.$categories.")");
                }
            }
            
            
$db->query("DELETE FROM #__video_comments WHERE video_id = ".$video_id);
            
$db->query("DELETE FROM #__video_tags WHERE video_id = ".$video_id);
            
$db->query("DELETE FROM #__video_history WHERE video_id = ".$video_id);
            
$db->query("DELETE FROM #__video_views WHERE video_id = ".$video_id);
            
$db->query("DELETE FROM #__video_rating WHERE video_id = ".$video_id);
            
$db->query("DELETE FROM #__video_flags WHERE video_id = ".$video_id);
            
$db->query("DELETE FROM #__video WHERE video_id = ".$video_id." LIMIT 1");
            
$db->query("DELETE FROM #__video_category WHERE video_id = ".$video_id);
            
$db->query("DELETE FROM #__video_favorites WHERE video_id = ".$video_id);

            if (
VModule::valid('grab')) {
                
$db->query("DELETE FROM #__video_graber WHERE video_id = ".$video_id." LIMIT 1");
            }
            
            
$db->query("DELETE FROM #__video_feeds_imported WHERE video_id = ".$video_id." LIMIT 1");
            
$db->query("DELETE FROM #__video_csv_imported WHERE video_id = ".$video_id." LIMIT 1");
            
$db->query("DELETE FROM #__video_queue WHERE video_id = ".$video_id." LIMIT 1");

            if (
VModule::enabled('pornstar')) {
                
$db->query("SELECT model_id
                            FROM #__model_videos
                            WHERE video_id = "
.$video_id);
                if (
$db->affected_rows()) {
                    
$models     $db->fetch_rows();
                    
$model_ids  = array();
                    foreach (
$models as $model) {
                        
$model_ids[] = $model['model_id'];
                    }
                    
                    
$db->query("UPDATE #__model
                                      SET total_videos = total_videos-1
                                      WHERE model_id IN ("
.implode(','$model_ids).")");
                    
$db->query("DELETE FROM #__model_videos
                                      WHERE video_id = "
.$video_id);
                }
            }
            
            
$db->query("SELECT v.playlist_id
                        FROM #__playlist_videos AS v
                        WHERE v.video_id = "
.$video_id);
            if (
$db->affected_rows()) {
                  
$playlists    $db->fetch_rows();
                  foreach (
$playlist as $playlist) {
                      
$db->query("UPDATE #__playlist
                                  SET total_videos = total_videos-1
                                  WHERE playlist_id = "
.(int) $playlist['playlist_id']."
                                  LIMIT 1"
);
                  }
                  
                  
$db->query("DELETE FROM #_playlist_videos WHERE video_id = ".$video_id);
            }
            
            if (
$server !== 0) {
                
$db->query("UPDATE #__server
                            SET total_videos = total_videos-1
                            WHERE server_id = "
.$server."
                            LIMIT 1"
);
            }

            
$db->query("UPDATE #__user_activity SET total_videos = total_videos-1 WHERE user_id = ".$user_id." LIMIT 1");

            
$thumb_dir MEDIA_DIR.'/videos/tmb/'.path($video_id);
            for (
$i=1$i<=$thumbs$i++) {
                
VFile::delete($thumb_dir.'/'.$i.'.jpg');
            }
            
            
// separate thumb server can be either separate server or CDN
            
if (VF::cfg_item('module.video.thumb_server') == '1') {
                
VHelper::load('module.video.thumb');
                
VHelper_video_thumb::delete($video_id$thumbs);
            }
            
            
VFile::delete(MEDIA_DIR.'/videos/flv/'.$video_id.'.flv');
            
VFile::delete(MEDIA_DIR.'/videos/mp4/'.$video_id.'.mp4');
            
VFile::delete(MEDIA_DIR.'/videos/mp4/'.$video_id.'_hd.mp4');
            
VFile::delete(MEDIA_DIR.'/videos/mobile/'.$video_id.'.mp4');

            if (
$server !== 0) {
                
VHelper::load('module.video.server');
                
VHelper_video_server::delete($server'/flv/'.$video_id.'.flv');
                
VHelper_video_server::delete($server'/mp4/'.$video_id.'.mp4');
                
VHelper_video_server::delete($server'/mp4/'.$video_id.'_hd.mp4');
                
VHelper_video_server::delete($server'/mobile/'.$video_id.'.mp4');
            }
            
            if (
$s3 !== 0) {
                
VHelper::load('module.video.s3');
                
VHelper_video_s3::delete('flv/'.$video_id.'.flv');
                
VHelper_video_s3::delete('mp4/'.$video_id.'.mp4');
                
VHelper_video_s3::delete('mp4/'.$video_id.'_hd.mp4');
                
VHelper_video_s3::delete('mobile/'.$video_id.'.mp4');
            }
            
            
$deleted BASE_DIR.'/deleted.txt';
            if (
file_exists($deleted) && is_file($deleted) && is_writable($deleted)) {
                  
VFile::write($deletedBASE_URL.'/'.$video_id.'/'.$slug.'/'."n"TRUE);
            }
        }    
    }
    
    
// delete files and keep database entry
    
public static function mark_deleted($video_id)
    {
        
//we need to initialize our database connection again here
        
VF::factory_remove('database');
        
$db VF::factory('database');

        
$db->query("SELECT user_id, slug, thumbs, server, s3
                          FROM #__video
                          WHERE video_id = "
.$video_id."
                          LIMIT 1"
);
        if (
$db->affected_rows()) {
            
$video      $db->fetch_assoc();
            
$user_id    = (int) $video['user_id'];
            
$slug        $video['slug'];
            
$thumbs     = (int) $video['thumbs'];
            
$server     = (int) $video['server'];
            
$s3         = (int) $video['s3'];

            
$db->query("SELECT GROUP_CONCAT(cat_id) AS categories
                              FROM #__video_category
                              WHERE video_id = "
.$video_id);
            if (
$db->affected_rows()) {
                
$categories $db->fetch_field('categories');
                if (!empty(
$categories)) {
                    
$db->query("UPDATE #__video_categories
                                SET total_videos = total_videos-1
                                WHERE cat_id IN ("
.$categories.")");
                }
            }
            
            
$db->query("DELETE FROM #__video_favorites WHERE video_id = ".$video_id);
            
$db->query("UPDATE #__video
                        SET user_id = 0,
                            status = 8
                        WHERE video_id = "
.$video_id."
                        LIMIT 1"
);

            if (
VModule::enabled('pornstar')) {
                
$db->query("SELECT model_id
                                  FROM #__model_videos
                                  WHERE video_id = "
.$video_id);
                if (
$db->affected_rows()) {
                    
$models     $db->fetch_rows();
                    
$video_ids  = array();
                    foreach (
$models as $model) {
                        
$video_ids[] = $model['model_id'];
                    }
                    
                    
$db->query("UPDATE #__model
                                      SET total_videos = total_videos-1
                                      WHERE model_id IN ("
.implode(','$video_ids).")");
                    
$db->query("DELETE FROM #__model_videos
                                      WHERE video_id = "
.$video_id);
                }
            }

            
$db->query("SELECT v.playlist_id
                        FROM #__playlist_videos AS v
                        WHERE v.video_id = "
.$video_id);
            if (
$db->affected_rows()) {
                  
$playlists    $db->fetch_rows();
                  foreach (
$playlist as $playlist) {
                      
$db->query("UPDATE #__playlist
                                  SET total_videos = total_videos-1
                                  WHERE playlist_id = "
.(int) $playlist['playlist_id']."
                                  LIMIT 1"
);
                  }
                  
                  
$db->query("DELETE FROM #_playlist_videos WHERE video_id = ".$video_id);
            }
            
            if (
$server !== 0) {
                
$db->query("UPDATE #__server
                            SET total_videos = total_videos-1
                            WHERE server_id = "
.$server."
                            LIMIT 1"
);
            }

            
$db->query("UPDATE #__user_activity SET total_videos = total_videos-1 WHERE user_id = ".$user_id." LIMIT 1");

            
$thumb_dir MEDIA_DIR.'/videos/tmb/'.path($video_id);
            for (
$i=1$i<=$thumbs$i++) {
                
VFile::delete($thumb_dir.'/'.$i.'.jpg');
            }
            
            
// separate thumb server can be either separate server or CDN
            
if (VF::cfg_item('module.video.thumb_server') == '1') {
                
VHelper::load('module.video.thumb');
                
VHelper_video_thumb::delete($video_id$thumbs);
            }
            
            
VFile::delete(MEDIA_DIR.'/videos/flv/'.$video_id.'.flv');
            
VFile::delete(MEDIA_DIR.'/videos/mp4/'.$video_id.'.mp4');
            
VFile::delete(MEDIA_DIR.'/videos/mp4/'.$video_id.'_hd.mp4');
            
VFile::delete(MEDIA_DIR.'/videos/mobile/'.$video_id.'.mp4');

            if (
$server !== 0) {
                
VHelper::load('module.video.server');
                
VHelper_video_server::delete($server'/flv/'.$video_id.'.flv');
                
VHelper_video_server::delete($server'/mp4/'.$video_id.'.mp4');
                
VHelper_video_server::delete($server'/mp4/'.$video_id.'_hd.mp4');
                
VHelper_video_server::delete($server'/mobile/'.$video_id.'.mp4');
            }
            
            if (
$s3 !== 0) {
                
VHelper::load('module.video.s3');
                
VHelper_video_s3::delete('flv/'.$video_id.'.flv');
                
VHelper_video_s3::delete('mp4/'.$video_id.'.mp4');
                
VHelper_video_s3::delete('mp4/'.$video_id.'_hd.mp4');
                
VHelper_video_s3::delete('mobile/'.$video_id.'.mp4');
            }
            
            
$deleted BASE_DIR.'/deleted.txt';
            if (
file_exists($deleted) && is_file($deleted) && is_writable($deleted)) {
                  
VFile::write($deletedBASE_URL.'/'.$video_id.'/'.$slug.'/'."n"TRUE);
            }
        }    
    }
    
    
    public static function 
duration($video_id)
    {
        
VF::factory_remove('database');
        
$db VF::factory('database');

        
$db->query("SELECT url, ext, server
                    FROM #__video
                    WHERE video_id = "
.$video_id."
                    LIMIT 1"
);
        if (
$db->affected_rows()) {
            
$video      $db->fetch_assoc();
            
$ext        $video['ext'];
            
$server_id  $video['server'];
            
$url        $video['url'];

            
$src        MEDIA_DIR.'/videos/'.$ext.'/'.$video_id.'.'.$ext;

            
// multi-server
            
if ($server_id != '0') {
                
$src    TMP_DIR.'/downloads/'.$video_id.'.'.$ext;

                
VHelper::load('module.video.server');
                
$server VHelper_video_server::get($server_idFALSE);
                if (
$server) {
                    if (
VHelper_video_server::download($server'/'.$ext.'/'.$video_id.'.'.$ext$src)) {
                        
$downloaded TRUE;
                    }
                }
            }

            
// hot-linked
            
if ($url != '') {
                
$src    TMP_DIR.'/downloads/'.basename($url);
                if (
$src) {
                    if (
VCurl::file($url$src)) {
                        
$downloaded TRUE;
                    }
                }
            }

            if (
file_exists($src) && is_file($src) && is_readable($src)) {
                
$conv   VF::factory('video');
                
$conv->log_setup($video_idTRUE);
                if (
$conv->load($src)) {
                    
VF::factory_remove('database');
                    
$db VF::factory('database');
                    
$db->query("UPDATE #__video
                                SET duration = "
.$conv->data['duration_seconds']."
                                WHERE video_id = "
.$video_id."
                                LIMIT 1"
);
                }
            }
            
            if (isset(
$downloaded)) {
                
VFile::delete($src);
            }
        }    
    }
    
    public static function 
thumbs($video_id$video = array(), $regen false)
    {
        if (!
$video) {
              
VF::factory_remove('database');
              
$db VF::factory('database');

              
$db->query("SELECT ext, hd, server, s3, url
                          FROM #__video
                          WHERE video_id = "
.$video_id."
                          LIMIT 1"
);
              if (
$db->affected_rows()) {
                  
$video    $db->fetch_assoc();
              }
        }
    
        if (!
$video) {
            return;
        }
        
        
$ext        $video['ext'];
        
$hd            = ($video['hd'] == '1') ? '_hd' '';
        
$server_id  $video['server'];
        
$s3            = (int) $video['s3'];
        
$url        $video['url'];
            
        
$src        MEDIA_DIR.'/videos/'.$ext.'/'.$video_id.$hd.'.'.$ext;
            
        
// multi server
        
if ($server_id != '0') {
            
VHelper::load('module.video.server');
            
$server VHelper_video_server::get($server_idFALSE);
            if (
$server) {
                if (
VHelper_video_server::download($server'/'.$ext.'/'.$video_id.$hd.'.'.$ext$src)) {
                    
$downloaded TRUE;
                }
            }
        }
        
        if (
$s3 0) {
              
VHelper::load('module.video.s3');
              if (
VHelper_video_s3::download('/'.$ext.'/'.$video_id.$hd.'.'.$ext$src)) {
                  
$downloaded    true;
              }
        }
            
        
// hot linked
        
if ($url != '') {
            
$src    TMP_DIR.'/downloads/'.basename($url);
            if (
$src) {
                if (
VCurl::file($url$src)) {
                    
$downloaded TRUE;
                }
            }
        }
            
        if (
file_exists($src) && is_file($src) && is_readable($src)) {
            
$conv   VF::factory('video');
            
$conv->log_setup($video_idTRUE);
            if (
$conv->load($src)) {
                
$thumbs $conv->extract_thumbs($src$video_id);
                if (
$thumbs !== 0) {
                      
$thumbs = ($thumbs 1) ? ($thumbs-1) : 0;
                      
                      
$sql_add    null;
                      if (
VCfg::get('video.thumb_slide')) {
                          
$conv->log('Extracting slide...');
                        
$slide $conv->extract_slide($src$video_id);
                        
                        if (
count($slide) === 3) {
                            
$sql_add    ", slideversion= '".$slide['2']."', slidenum = '".$slide['0']."', slideoffset = '".$slide['1']."'";
                        }
                      }
                      
                    
VF::factory_remove('database');
                    
$db VF::factory('database');                    
                    
$db->query("UPDATE #__video
                                SET thumbs = "
.$thumbs.$sql_add."
                                WHERE video_id = "
.$video_id."
                                LIMIT 1"
);
                                
                    if (
$regen) {
                          
$db->query("
                              SELECT video_id
                              FROM #__video_cron
                              WHERE video_id = "
.$video_id."
                              LIMIT 1
                          "
);
                          
                          if (
$db->affected_rows()) {
                              
$db->query("
                                  UPDATE #__video_cron
                                  SET thumb = 1,
                                      player = 1
                                  WHERE video_id = "
.$video_id."
                                  LIMIT 1
                              "
);                                  
                          } else {
                              
$db->query("
                                  INSERT INTO #__video_cron
                                  SET video_id = "
.$video_id.",
                                      thumb = 1,
                                      player = 1
                              "
);
                          }          
                    }
                }
            }
        }
            
        if (isset(
$downloaded)) {
              
VFile::delete($src);
        }
    }

    public static function 
thumb_player($video_id$video = array(), $regen false)
    {
        if (!
$video) {
              
VF::factory_remove('database');
              
$db VF::factory('database');

              
$db->query("SELECT ext, hd, server, s3, url
                          FROM #__video
                          WHERE video_id = "
.$video_id."
                          LIMIT 1"
);
              if (
$db->affected_rows()) {
                  
$video    $db->fetch_assoc();
              }
        }
    
        if (!
$video) {
            return;
        }
        
        
$ext        $video['ext'];
        
$hd            = ($video['hd'] == '1') ? '_hd' '';
        
$server_id  $video['server'];
        
$s3            = (int) $video['s3'];
        
$url        $video['url'];
            
        
$src        MEDIA_DIR.'/videos/'.$ext.'/'.$video_id.$hd.'.'.$ext;
            
        
// multi server
        
if ($server_id != '0') {
            
VHelper::load('module.video.server');
            
$server VHelper_video_server::get($server_idFALSE);
            if (
$server) {
                if (
VHelper_video_server::download($server'/'.$ext.'/'.$video_id.$hd.'.'.$ext$src)) {
                    
$downloaded TRUE;
                }
            }
        }
        
        if (
$s3 0) {
              
VHelper::load('module.video.s3');
              if (
VHelper_video_s3::download('/'.$ext.'/'.$video_id.$hd.'.'.$ext$src)) {
                  
$downloaded    true;
              }
        }
            
        
// hot linked
        
if ($url != '') {
            
$src    TMP_DIR.'/downloads/'.basename($url);
            if (
$src) {
                if (
VCurl::file($url$src)) {
                    
$downloaded TRUE;
                }
            }
        }
            
        if (
file_exists($src) && is_file($src) && is_readable($src)) {
            
$conv   VF::factory('video');
            
$conv->log_setup($video_idTRUE);
            if (
$conv->load($src)) {
                
$thumbs $conv->extract_player_thumb($src$video_id);
                if (
$thumbs !== 0) {
                    if (
$regen) {
                          
VF::factory_remove('database');
                          
$db VF::factory('database');                    
                        
                          
$db->query("
                              SELECT video_id
                              FROM #__video_cron
                              WHERE video_id = "
.$video_id."
                              LIMIT 1
                          "
);
                          
                          if (
$db->affected_rows()) {
                              
$db->query("
                                  UPDATE #__video_cron
                                  SET player = 1
                                  WHERE video_id = "
.$video_id."
                                  LIMIT 1
                              "
);                                  
                          } else {
                              
$db->query("
                                  INSERT INTO #__video_cron
                                  SET video_id = "
.$video_id.",
                                      thumb = 0,
                                      player = 1
                              "
);
                          }          
                    }
                }
            }
        }
            
        if (isset(
$downloaded)) {
              
VFile::delete($src);
        }
    }
}
Онлайн: 0
Реклама