<?php
/*
------------------------------------------------
3020.ru - скрипты тут
------------------------------------------------
*/
FOREACH (ARRAY('config', 'connect', 'users') AS $connect) {
INCLUDE_ONCE ("../../system/connections/global/$connect.php");
}
ACCESS('users');
IF (ISSET($_FILES['file']) && AJAX() == TRUE){
IF (GET('dir') > 0){
$dir = DB::GET_STRING("SELECT * FROM `VIDEOS_DIR` WHERE `ID` = '".INTVAL(GET('dir'))."' AND `USER_ID` = '".$user['ID']."' LIMIT 1");
$id = $dir['ID'];
$private = $dir['PRIVATE'];
}ELSE{
$id = 0;
$private = 0;
}
//Максимальный размер для выгрузки
$MaxFileSize = CONFIG('MAXFILESIZE');
//Разрешенные форматы для выгрузки
$AllowFileExtension = ARRAY('mp4', 'avi', '3gp', 'flv');
//Оригинальное название видео
$FileNameExp = $_FILES['file']['name'];
//Оригинальное название видео без расширения
$FileName = TEXT_PROCESSING(PREG_REPLACE('#\.[^\.]*$#', NULL, $FileNameExp));
//Расширение видео
$Exp = STRTOLOWER(PREG_REPLACE('#^.*\.#', NULL, $FileNameExp));
//Временный файл
$TempName = $_FILES['file']['tmp_name'];
//Папка куда будут загружаться видео
$UploadDir = ROOT."/files/upload/videos/source/";
//Проверка расширения видео
$FileExtension = PATHINFO(STRTOLOWER($FileNameExp), PATHINFO_EXTENSION);
$err_data = 0;
//Настройки видео
$videos_settings = @PARSE_INI_FILE(ROOT."/system/config/videos.ini", FALSE);
IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `VIDEOS` WHERE `USER_ID` = '".$user['ID']."'") >= $videos_settings['VIDEOS_LIMIT']){
$error = "Вы исчерпали лимит на добавление видео";
$err_data = 1;
}
IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `VIDEOS` WHERE `USER_ID` = '".$user['ID']."' AND `NAME` = '".$FileName."' AND `ID_DIR` = '".$id."' LIMIT 1") == 1){
$error = "Видео с таким названием уже есть в этом альбоме";
$err_data = 1;
}
IF (ISSET($dir) && !$dir['ID'] && GET('dir') > 0){
$error = "Директории не существует";
$err_data = 1;
}
IF (CONFIG('FILE_ACCESS') == 0) {
$error = "Выгрузка файлов на сайте приостановлена администрацией";
$err_data = 1;
}
IF (!IN_ARRAY($FileExtension, $AllowFileExtension)) {
$error = "Неверный формат видео";
$err_data = 1;
}
//Проверка размера видео
IF (FILESIZE($TempName) > $MaxFileSize) {
$error = "Размер загружаемого видео превышает установленные ограничения";
$err_data = 1;
}
IF (STR($FileName) < 1) {
$error = "Имя загружаемого видео не должно быть менее 1 символа";
$err_data = 1;
}
IF (STR($FileName) > 200) {
$error = "Имя загружаемого видео не должно быть более 200 символов";
$err_data = 1;
}
IF ($err_data == 1){
ECHO "<div class='file-upload-progress' style='color: red;'><i class='fa fa-exclamation-triangle fa-fw'></i> ".LG($error)."</div>";
}ELSE{
$ID = DB::GET_ADD("INSERT INTO `VIDEOS` (`NAME`, `USER_ID`, `EXT`, `SIZE`, `TIME`, `ID_DIR`) VALUES ('".$FileName."', '".$user['ID']."', '".$Exp."', '".FILESIZE($TempName)."', '".TIME()."', '".$id."')");
//Начисление баллов
BALLS_ADD('VIDEOS');
//Начисление рейтинга
RATING_ADD('VIDEOS_COMMENTS');
//Сохраняем видео если все хорошо
$CopyFile = COPY($TempName, "".$UploadDir."".$ID.".".$Exp."");
IF (!$CopyFile) {
ECHO "<div class='file-upload-progress' style='color: red;'><i class='fa fa-exclamation-triangle fa-fw'></i> ".LG('Неизвестная ошибка')."</div>";
DB::GET_SET("DELETE FROM `VIDEOS` WHERE `ID` = '".$ID."' LIMIT 1");
}ELSE{
/*
---------------------------
Получаем длительность видео
---------------------------
*/
$d = FFMPEG::DURATION(ROOT.'/files/upload/videos/source/'.$ID.'.'.$Exp.'');
DB::GET_SET("UPDATE `VIDEOS` SET `DURATION` = '".$d."' WHERE `ID` = '".$ID."' LIMIT 1");
/*
------------------------------
Отправляем подписчикам в ленту
------------------------------
*/
IF ($private == 0){
$data = DB::GET_STRING_ALL("SELECT * FROM `SUBSCRIBERS` WHERE `USER_ID` = '".$user['ID']."'");
WHILE ($list = $data->FETCH()){
DB::GET_ADD("INSERT INTO `TAPE` (`USER_ID`, `OBJECT_ID`, `OBJECT_ID_LIST`, `TIME`, `TYPE`) VALUES ('".$list['MY_ID']."', '".$ID."', '".$list['USER_ID']."', '".TIME()."', 'user_video')");
}
}
/*
---------------------
Делаем скриншот кадра
---------------------
*/
FFMPEG::SCREEN(ROOT.'/files/upload/videos/source/'.$ID.'.'.$Exp.'', ROOT.'/files/upload/videos/screen/'.$ID.'.jpg', '00:00:02');
IF (IS_FILE(ROOT.'/files/upload/videos/screen/'.$ID.'.jpg')){
CROP_IMAGE(ROOT.'/files/upload/videos/screen/'.$ID.'.jpg', ROOT.'/files/upload/videos/screen/240x240/'.$ID.'.jpg', 240, 240);
}
/*--------------------------*/
//Отправляем запрос на обновление листа если успешно
?>
<script>
var data = "/modules/?path=videos§ion=users&id=<?=$user['ID']?>&dir=<?=$id?>";
var toLoad = data+' #video_upgrade';
open_modal = 0;
$("#video_upgrade").load(toLoad);
$("#add_video").removeClass("open");
setTimeout( function(){
$("#add_video").parents(".overlay").removeClass("open");
}, 5);
$('#upload2').html('');
</script>
<?
}
}
}ELSE{
ECHO LG('Не удалось установить соединение с ресивером.');
}
?>