Описание:
Полностью готовая система выкладывание демок с Ваших серверов на сайт.
Система включает в себя красивый дизайн, удобный поиск, поиск демок с участием только Вас (Steam API), подробную статистику и лог чата каждой демки.
Система работает только для CS:GO
Требуется:
• Установленный - Sourcemod/Metamod
• Сайт с поддержкой - PHP/MySQL
• Расширение - cURL & Hash
Установка:
Шаг 1:
1. Скачиваем архив demos.rar или demos_myarena.zip под хостинг MyArena
2. Распределяем файлы по папкам
Шаг 2: Настройка autodemo.txt
Шаг 3: Установка веб-части
Настройка config.php
SQL запрос для создания базы (или уже готовый дамп в архиве)
Настройка sql_login.php
Шаг 4: Удаление демок и записей с сайта Оффтоп
Команда cron
Настройка demormv.sh
Шаг 5: Для тех кто использует nginx необходимо в настройках в общую локацию добавить rewrite:
Полностью готовая система выкладывание демок с Ваших серверов на сайт.
Система включает в себя красивый дизайн, удобный поиск, поиск демок с участием только Вас (Steam API), подробную статистику и лог чата каждой демки.
Система работает только для CS:GO
Требуется:
• Установленный - Sourcemod/Metamod
• Сайт с поддержкой - PHP/MySQL
• Расширение - cURL & Hash
Установка:
Шаг 1:
1. Скачиваем архив demos.rar или demos_myarena.zip под хостинг MyArena
2. Распределяем файлы по папкам
Форматирование (BB-код):
1. Положить autodemo.smx в addons\sourcemod\plugins
2. Расширения curl в addons\sourcemod\extensiosn
3. Конфиг autodemo.txt в addons\sourcemod\configs
"AutoDemo"
{
// ftp путь до папки со stage
"ftp" "ftp://csserv.su/ /stage"
// данные от ftp
"username" ""
"password" ""
// ссылка сайта с демками
"site" "http://demos.powerhns.ru"
// ключ от api сайта (запоминаем)
"key" "demos"
// название сервера (без пробелов)
"server" "Classic"
}
{
// ftp путь до папки со stage
"ftp" "ftp://csserv.su/ /stage"
// данные от ftp
"username" ""
"password" ""
// ссылка сайта с демками
"site" "http://demos.powerhns.ru"
// ключ от api сайта (запоминаем)
"key" "demos"
// название сервера (без пробелов)
"server" "Classic"
}
Форматирование (BB-код):
1. Файлы из папки demos заливаем на сайт
2. Создаем вручную две папки с именами demos и logs в главном каталоге (рядом с папкой stage)
3. Настраиваем и переименовываем config.example.php в config.php
4. Делаем SQL запрос для создания базы на сайте через PhpMyAdmin
5. Настраиваем и переименовываем sql_login.example.php в sql_login.php
<?php
$apikey = ""; // ключ от api сайта (копируем,то что вставляли в autodemo.cfg
$steamapikey = ""; // [Steam Community]
date_default_timezone_set( "Europe/Moscow" ); // время по МСК
$admins = array(
array (
"name" => "pray and spray", // ник администратора
"id" => "76561198069264171" // id профиля
)
);
?>
$apikey = ""; // ключ от api сайта (копируем,то что вставляли в autodemo.cfg
$steamapikey = ""; // [Steam Community]
date_default_timezone_set( "Europe/Moscow" ); // время по МСК
$admins = array(
array (
"name" => "pray and spray", // ник администратора
"id" => "76561198069264171" // id профиля
)
);
?>
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `demos`
--
-- --------------------------------------------------------
--
-- Table structure for table `INFO`
--
CREATE TABLE IF NOT EXISTS `INFO` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`SERVER` int(11) NOT NULL,
`GAME` varchar(16) NOT NULL,
`FILE` varchar(128) NOT NULL,
`MAP` varchar(64) NOT NULL,
`TIME` int(10) unsigned NOT NULL,
`DURATION` float unsigned NOT NULL,
`TICKS` int(10) unsigned NOT NULL,
`SCORE1` int(11) NOT NULL,
`SCORE2` int(11) NOT NULL,
`NAMES` text NOT NULL,
`CHAT` text NOT NULL,
`NOTES` text,
PRIMARY KEY (`ID`),
KEY `TIME` (`TIME`),
FULLTEXT KEY `PLAYERS` (`NAMES`,`CHAT`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7516 ;
-- --------------------------------------------------------
--
-- Table structure for table `PLAYERS`
--
CREATE TABLE IF NOT EXISTS `PLAYERS` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`MATCHID` int(11) NOT NULL,
`ACCOUNT` int(10) unsigned NOT NULL,
`BIGSTREAK` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `MATCH` (`MATCHID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=102291 ;
-- --------------------------------------------------------
--
-- Table structure for table `SERVERS`
--
CREATE TABLE IF NOT EXISTS `SERVERS` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(64) NOT NULL,
`GAME` varchar(16) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `demos`
--
-- --------------------------------------------------------
--
-- Table structure for table `INFO`
--
CREATE TABLE IF NOT EXISTS `INFO` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`SERVER` int(11) NOT NULL,
`GAME` varchar(16) NOT NULL,
`FILE` varchar(128) NOT NULL,
`MAP` varchar(64) NOT NULL,
`TIME` int(10) unsigned NOT NULL,
`DURATION` float unsigned NOT NULL,
`TICKS` int(10) unsigned NOT NULL,
`SCORE1` int(11) NOT NULL,
`SCORE2` int(11) NOT NULL,
`NAMES` text NOT NULL,
`CHAT` text NOT NULL,
`NOTES` text,
PRIMARY KEY (`ID`),
KEY `TIME` (`TIME`),
FULLTEXT KEY `PLAYERS` (`NAMES`,`CHAT`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7516 ;
-- --------------------------------------------------------
--
-- Table structure for table `PLAYERS`
--
CREATE TABLE IF NOT EXISTS `PLAYERS` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`MATCHID` int(11) NOT NULL,
`ACCOUNT` int(10) unsigned NOT NULL,
`BIGSTREAK` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `MATCH` (`MATCHID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=102291 ;
-- --------------------------------------------------------
--
-- Table structure for table `SERVERS`
--
CREATE TABLE IF NOT EXISTS `SERVERS` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(64) NOT NULL,
`GAME` varchar(16) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
<?php
$sql_addr = ''; // адрес SQL сервера
$sql_user = ''; // пользователь от SQL базы
$sql_password = ''; // пароль от SQL базы
$sql_database = ''; // имя SQL базы
?>
$sql_addr = ''; // адрес SQL сервера
$sql_user = ''; // пользователь от SQL базы
$sql_password = ''; // пароль от SQL базы
$sql_database = ''; // имя SQL базы
?>
Форматирование (BB-код):
1. Настраиваем и заливаем файл demormv.sh на ваш сайт
2. Создаем новое задание cron на период - "каждый день"
#!/bin/sh
mysql -B -T --user=пользователь_базы --password=пароль_от_базы --database=имя_базы --execute='DELETE FROM `INFO` WHERE `TIME` < UNIX_TIMESTAMP(NOW() - INTERVAL 4 DAY);'
find /var/www/user1111/data/www/yoursite.ru/logs -type f -mtime +4 -delete //Путь до папки logs
find /var/www/user1111/data/www/yoursite.ru/logs -type d -mtime +4 -delete //Путь до папки logs
find /var/www/user1111/data/www/yoursite.ru/demos -type f -mtime +4 -delete //Путь до папки demos
find /var/www/user1111/data/www/yoursite.ru/demos -type d -mtime +4 -delete //Путь до папки demos
mysql -B -T --user=пользователь_базы --password=пароль_от_базы --database=имя_базы --execute='DELETE FROM `INFO` WHERE `TIME` < UNIX_TIMESTAMP(NOW() - INTERVAL 4 DAY);'
find /var/www/user1111/data/www/yoursite.ru/logs -type f -mtime +4 -delete //Путь до папки logs
find /var/www/user1111/data/www/yoursite.ru/logs -type d -mtime +4 -delete //Путь до папки logs
find /var/www/user1111/data/www/yoursite.ru/demos -type f -mtime +4 -delete //Путь до папки demos
find /var/www/user1111/data/www/yoursite.ru/demos -type d -mtime +4 -delete //Путь до папки demos
Настройка demormv.sh
sh /var/www/user3453/data/www/yoursite.ru/demormv.sh >/dev/null 2>&1 //путь до файла demormv.sh
JavaScript:
location / {
rewrite ^/([0-9]+)$ /view.php?demo=$1 last;
}
Отличие архива для установки на MyArena:
Установка завершена!
Благодарность
Спасибо автору данной системы - pray'n'spray!
Отдельная благодарность @Tallanvor , @Hejter , @Forever Alone , @kolobok66rus (авторы с hlmoda)!
Перевел WEB и выложил тему ThreshHNS
Итак, фикс вебчасти для Арены.
В аттаче уже архив с прописанными правками - просто заливаем на веб, как указано в мане.
Вся соль в том, что на говнохосте арены нет расширения zip для php, которое скрипты по-умолчанию юзают.
Вывод - выпиливаем архивацию и оставляем демки в свободном полёте.
Дальше - сами правки:
register.php - комментируем блок
было
PHP:
// zip file to archive and delete
$zip = new ZipArchive;
$zip->open( "demos/$folder/$param_demo.zip", ZipArchive::CREATE );
$zip->addFile( "stage/$param_demo.dem", "$param_demo.dem" );
$zip->close();
стало:
PHP:
// zip file to archive and delete
//$zip = new ZipArchive;
//$zip->open( "demos/$folder/$param_demo.zip", ZipArchive::CREATE );
//$zip->addFile( "stage/$param_demo.dem", "$param_demo.dem" );
//$zip->close();
после
PHP:
// copy log file
copy( "stage/$param_demo.log", "logs/$folder/$param_demo.log" );
добавляем
PHP:
// copy demo file
copy( "stage/$param_demo.dem", "demos/$folder/$param_demo.dem" );
view.php
меняем
PHP:
'<div class="viewdemo downloadbutton"><a href="demos/' . $row['FILE'] . '.zip">Download</a></div><br>';
на
PHP:
'<div class="viewdemo downloadbutton"><a href="demos/' . $row['FILE'] . '.dem">Download</a></div><br>';
search.php
точно так же - меняем
PHP:
<td class="downloadlink" style="width:32px" ><a class="fastdl_link" href="demos/'.$row['FILE'].'.zip"><div></div></a></td>
на
PHP:
<td class="downloadlink" style="width:32px" ><a class="fastdl_link" href="demos/'.$row['FILE'].'.dem"><div></div></a></td>
Профит.
В аттаче уже архив с прописанными правками - просто заливаем на веб, как указано в мане.
Вся соль в том, что на говнохосте арены нет расширения zip для php, которое скрипты по-умолчанию юзают.
Вывод - выпиливаем архивацию и оставляем демки в свободном полёте.
Дальше - сами правки:
register.php - комментируем блок
было
PHP:
// zip file to archive and delete
$zip = new ZipArchive;
$zip->open( "demos/$folder/$param_demo.zip", ZipArchive::CREATE );
$zip->addFile( "stage/$param_demo.dem", "$param_demo.dem" );
$zip->close();
стало:
PHP:
// zip file to archive and delete
//$zip = new ZipArchive;
//$zip->open( "demos/$folder/$param_demo.zip", ZipArchive::CREATE );
//$zip->addFile( "stage/$param_demo.dem", "$param_demo.dem" );
//$zip->close();
после
PHP:
// copy log file
copy( "stage/$param_demo.log", "logs/$folder/$param_demo.log" );
добавляем
PHP:
// copy demo file
copy( "stage/$param_demo.dem", "demos/$folder/$param_demo.dem" );
view.php
меняем
PHP:
'<div class="viewdemo downloadbutton"><a href="demos/' . $row['FILE'] . '.zip">Download</a></div><br>';
на
PHP:
'<div class="viewdemo downloadbutton"><a href="demos/' . $row['FILE'] . '.dem">Download</a></div><br>';
search.php
точно так же - меняем
PHP:
<td class="downloadlink" style="width:32px" ><a class="fastdl_link" href="demos/'.$row['FILE'].'.zip"><div></div></a></td>
на
PHP:
<td class="downloadlink" style="width:32px" ><a class="fastdl_link" href="demos/'.$row['FILE'].'.dem"><div></div></a></td>
Профит.
Установка завершена!
Благодарность
Спасибо автору данной системы - pray'n'spray!
Отдельная благодарность @Tallanvor , @Hejter , @Forever Alone , @kolobok66rus (авторы с hlmoda)!
Перевел WEB и выложил тему ThreshHNS