Файл: 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($deleted, BASE_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($deleted, BASE_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_id, FALSE);
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_id, TRUE);
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_id, FALSE);
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_id, TRUE);
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_id, FALSE);
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_id, TRUE);
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);
}
}
}