WEB HLTV Downloader

Vesuvius

НЕ СКРИПТЕР!!!
Команда форума
Администратор
Регистрация
8 Июн 2017
Сообщения
1.521
Симпатии
523
Пол
Мужской
#1
Описание:
Данный 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.png Demo.png
Источник c-s.net.ua
 

Вложения

Wolf228

Пользователь
Регистрация
13 Июл 2017
Сообщения
180
Симпатии
14
Пол
Мужской
#2
Правильно? 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.521
Симпатии
523
Пол
Мужской
#3
Wolf228, да...
проверить можно так
http://ваш сайт со скриптом/cron.php
если будет ошибка типа пака не найдена...
значит что то указали не верно!
 

Wolf228

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

Vesuvius

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

Wolf228

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

Vesuvius

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

Vesuvius

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

Vesuvius

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

ReGIoN

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

Wolf228

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

Vesuvius

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

resobatata

Пользователь
Регистрация
8 Июн 2017
Сообщения
14
Симпатии
3
Пол
Мужской
#16
приветствую. кто может помочь. качает демку которая записывается в тот момент :(
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
Сообщения
459
Симпатии
224
#19
resobatata, Ошибка не связана с текущей демкой.
Попробуйте уменьшить $etime = 180; до 60
Запустите cron вручную, посмотрите что стало с текущей демкой.
 

Вложения

resobatata

Пользователь
Регистрация
8 Июн 2017
Сообщения
14
Симпатии
3
Пол
Мужской
#20
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