Просмотр файла 2/3020.ru/files/receiver/music.php

Размер файла: 6.48Kb
<?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 `MUSIC_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('mp3');
  
  //Оригинальное название аудио
  $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/music/source/";
  
  //Проверка расширения аудио
  $FileExtension = PATHINFO(STRTOLOWER($FileNameExp), PATHINFO_EXTENSION);
  
  $err_data = 0;
  
  //Настройки музыки
  $music_settings = @PARSE_INI_FILE(ROOT."/system/config/music.ini", FALSE);
  
  IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `MUSIC` WHERE `USER_ID` = '".$user['ID']."'") >= $music_settings['MUSIC_LIMIT']){

    $error = "Вы исчерпали лимит на добавление аудио";
    $err_data = 1;
    
  }

  IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `MUSIC` WHERE `USER_ID` = '".$user['ID']."' AND `FACT_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 `MUSIC` (`FACT_NAME`, `USER_ID`, `EXT`, `SIZE`, `TIME`, `ID_DIR`) VALUES ('".$FileName."', '".$user['ID']."', '".$Exp."', '".FILESIZE($TempName)."', '".TIME()."', '".$id."')");
    
    //Начисление баллов
    BALLS_ADD('MUSIC');
    
    //Начисление рейтинга
    RATING_ADD('MUSIC');
    
    //Сохраняем аудио если все хорошо
    $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 `MUSIC` WHERE `ID` = '".$ID."' LIMIT 1");
    
    }ELSE{
      
      /*
      ------------------------------
      Отправляем подписчикам в ленту
      ------------------------------
      */
      
      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_music')");
        
        } 
        
      }
      
      /*--------------------------*/
      
      $file = ROOT.'/files/upload/music/source/'.$ID.'.mp3';      
      $ID3 = NEW ID3;
      $aTags = $ID3->getTagsInfo($file);
      
      $id3_name2 = ADSL($aTags['Title']);
      $id3_artist2 = ADSL($aTags['Author']);
      $id3_genre2 = ADSL($aTags['Genre']);
      $id3_album2 = ADSL($aTags['Album']);
      
      IF (STR($id3_name2) == 0){ $id3_name = "Неизвестная композиция"; }ELSE{ $id3_name = $id3_name2; }      
      IF (STR($id3_artist2) == 0){ $id3_artist = "Неизвестный"; }ELSE{ $id3_artist = $id3_artist2; }      
      IF (STR($id3_genre2) == 0){ $id3_genre = "Неизвестный жанр"; }ELSE{ $id3_genre = $id3_genre2; }      
      IF (STR($id3_album2) == 0){ $id3_album = "Без альбома"; }ELSE{ $id3_album = $id3_album2; }
      
      DB::GET_SET("UPDATE `MUSIC` SET `NAME` = '".$id3_name."', `ARTIST` = '".$id3_artist."', `GENRE` = '".$id3_genre."' WHERE `ID` = '".$ID."' LIMIT 1");
      
      //Отправляем запрос на обновление списка
      ?>
      <script>  
        
      var data = "/modules/?path=music&section=users&id=<?=$user['ID']?>&dir=<?=$id?>";
      var toLoad = data+' #music_upgrade';
      
      open_modal = 0;
      
      $("#music_upgrade").load(toLoad); 
      
      $("#add_music").removeClass("open");
      
      setTimeout( function(){	
        
        $("#add_music").parents(".overlay").removeClass("open");
      
      }, 5);
      
      $('#upload2').html('');
      
      </script>  
      <?
    
    }
  
  }
  
}ELSE{
  
  ECHO LG('Не удалось установить соединение с ресивером.');

}
 
?>