WEB HLTV Downloader

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.592
Симпатии
543
Пол
Мужской
Описание:
Данный PHP скрипт служит для автоматической загрузки демо записей на сайт. Возможна поддержка нескольких серверов.

Установка:
  • Загрузите все файлы на веб-сервер
  • Откройте файл "inc/config.php" и отредактируйте.
  • Например:
PHP:
$main['sitename'] = 'Демо записи нашего сервера';

$server[1] = array('ip'=>'127.0.0.1', 'port'=>'27015', 'patch'=>'E:/games/cs/server_1/cstrike/', 'name'=>'Test Server');
или
$server[1] = array('ip'=>'127.0.0.1', 'port'=>'27015', 'patch'=>'ftp://user:pass@myserv.ru/server1/cstrike/', 'name'=>'Test Server');
  • Поставьте Cron задачу на выполнение скрипта cron.php
За протокол игры спасибо сайту GreyCube.Com и их движку LGSL.
server.pngDemo.png
Источник c-s.net.ua
 

Вложения

Wolf228

Пользователь
Регистрация
13 Июл 2017
Сообщения
180
Симпатии
14
Пол
Мужской
Правильно? user и pass сам укажу.
PHP:
$server[1] = array('ip'=>'37.230.162.195', 'port'=>'27015', 'patch'=>'ftp://user:pass@37.230.162.195/cstrike/', 'name'=>'pub');
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.592
Симпатии
543
Пол
Мужской
Wolf228, да...
проверить можно так
http://ваш сайт со скриптом/cron.php
если будет ошибка типа пака не найдена...
значит что то указали не верно!
 

Wolf228

Пользователь
Регистрация
13 Июл 2017
Сообщения
180
Симпатии
14
Пол
Мужской

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.592
Симпатии
543
Пол
Мужской
Wolf228, ето не ошибка! ето правильно!
значит что скрипт нашел папку. но в ней пока нету демок
 

Wolf228

Пользователь
Регистрация
13 Июл 2017
Сообщения
180
Симпатии
14
Пол
Мужской
Wolf228, ето не ошибка! ето правильно!
значит что скрипт нашел папку. но в ней пока нету демок
Понял.
А что я сам получается должен закидывать демки в files/server_ и только тогда я смогу скачать?[DOUBLEPOST=1523102376][/DOUBLEPOST]
Wolf228, ето не ошибка! ето правильно!
значит что скрипт нашел папку. но в ней пока нету демок
Только что проверил и залил демку по пути files/server_1/ и она отобразилась на сайте.
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.592
Симпатии
543
Пол
Мужской
Wolf228, ненадо ето делать... скрипт делает ето за вас!
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.592
Симпатии
543
Пол
Мужской
Wolf228, Cron задачу установили?
надо подождать... он не загрузит ту демку которую пишет в данний момент
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.592
Симпатии
543
Пол
Мужской
Wolf228, тут не скажу... на многих хостах свой способ...
 

ReGIoN

Пользователь
Регистрация
21 Фев 2018
Сообщения
186
Симпатии
23
да примерно через 20 минут демо поевляется[DOUBLEPOST=1523111330][/DOUBLEPOST]
http://region-game.top/tv/
 

Wolf228

Пользователь
Регистрация
13 Июл 2017
Сообщения
180
Симпатии
14
Пол
Мужской
Нашел свою ошибку. Надо было путь полностью указать к папке с FTP доступом.
 

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.592
Симпатии
543
Пол
Мужской
alex, вроде как в 1 посте написано.. что надо делать.. и как установить...
все что вам надо ето сервер HLTV и веб хост с Cron
 

resobatata

Пользователь
Регистрация
8 Июн 2017
Сообщения
14
Симпатии
3
Пол
Мужской
приветствую. кто может помочь. качает демку которая записывается в тот момент :(
PHP:
<?php
header('Content-type: text/html; charset=utf-8');
define('GUARD', true);
include 'inc/config.php';

try {
include 'inc/function_zipcompressfile.php';

for($i=1; $i<=sizeof($server); $i++)
{
$handle = @opendir($server[$i]['patch']);
if ($handle)
{
if(!file_exists('files/server_'.$i.'/')) mkdir('files/server_'.$i.'/', 0777);
$etime = 180; //проверка времени изменения файла-не закачивать текущую демку
while (false !== ($files = readdir($handle)))
if (preg_match("/(.*).dem/", $files) ) {

$stime=time();
$ftime = filemtime($server[$i]['patch'].$files);
$time=$stime-$ftime;
if ($time>$etime){
zipcompressfile($server[$i]['patch'], 'files/server_'.$i.'/', $files);
unlink($server[$i]['patch'].$files);
}
}
closedir($handle);
//echo 'Сервер #'.$i.' - '.$files.' демо.<br>';
} else {
throw new Exception('Папка "'.$server[$i]['patch'].'" не найдена');
}

for($n=1; $n<=sizeof($server); $n++)
{
$handle = @opendir('files/server_'.$n.'/');
if ($handle)
{   
//время в секундах- 259200 - 3 дня- срок хранения демо. все, что старше- удаляется
$etime = 259200;
while (false !== ($files = readdir($handle)))
if (preg_match("/(.*).dem/", $files) )
{

$stime=time();
$ftime = filemtime('files/server_'.$n.'/'.$files);
$time=$stime-$ftime;
if ($time>$etime)
{
unlink('files/server_'.$n.'/'.$files);
}
}
closedir($handle);
}
}
echo 'Старые файлы удалены<br>';
}

} catch (Exception $e) {
$error = $e->getMessage();   

$html = file_get_contents('template/error.tpl');
$html = str_replace('{title}', 'Ошибка', $html);
$html = str_replace('{error}', $error, $html);
echo $html;
}
?>
PHP Warning: filemtime(): stat failed for ftp://user:password@ip/cstrike/demos/cs-1904212006-de_nuke.dem in /public_html/hltv/cron.php
 

georgeml

Постоялец
Регистрация
12 Сен 2017
Сообщения
536
Симпатии
279
resobatata, А остальные нормально заливает?
* т.е. нет ошибок в логе?
 

resobatata

Пользователь
Регистрация
8 Июн 2017
Сообщения
14
Симпатии
3
Пол
Мужской
georgeml, да нормально нету ошибок
 

georgeml

Постоялец
Регистрация
12 Сен 2017
Сообщения
536
Симпатии
279
resobatata, Ошибка не связана с текущей демкой.
Попробуйте уменьшить $etime = 180; до 60
Запустите cron вручную, посмотрите что стало с текущей демкой.
 

Вложения

resobatata

Пользователь
Регистрация
8 Июн 2017
Сообщения
14
Симпатии
3
Пол
Мужской
georgeml, уменьшил и даже больше ставил но тоже самое (60,120,300,500) до этого тоже чекал
я решил уже проблему изменил скрипт спасибо за внимание. перекидываю демки в другую папку. демка которая записывается не перекидыват. дальше крон делает свою работу.
Bash:
#!/bin/sh
DIR="/ваш путь до веб-сервера/hltv/files/server_1/"
for i in $( ls -t *.dem |sed '1,1d'| cut -d . -f1); do mv "$i".dem $DIR; done
 
Сверху Снизу