View Sidebar
Яндекс.Метрика
 
Скрипт PHP мониторинга трансляции TSlab с автосохранением

Скрипт PHP мониторинга трансляции TSlab с автосохранением

17.04.2016 23:430 comments

Сервис трансляции TSlab позволяет удаленно наблюдать работу агентов или роботов, но не имеет возможности сохранять историю трансляции для последующего анализа. А такая возможность кажется не лишней.

tslab-monitor

Например, при смене очередного фьючерса, статистика в агенте теряется, а взглянуть как торговали роботы в прошлом, хотя бы на скриншоте торгов, хочется.

Предлагаю вашему вниманию очень простой PHP скрипт. Он с заданной периодичностью сохраняет картинки указанной трансляции с http://www.comon.ru/tslab/, при этом не важно, закрыта трансляция паролем или нет.

Вот код скрипта:


// Настройки скрипта

//Публичный ключ
$public_key = "698D51A19D8A121CE581499D7B701668";

//Время сохранения картинок
//Сохранение картинок будем производить три раза в день в 10, 15 и 20 часов
$arr_hour[] = 10;
$arr_hour[] = 15;
$arr_hour[] = 20;

date_default_timezone_set("Europe/Moscow"); //Часовой пояс

//Путь к папке, куда будем сохранять картинки
//папка должна сущесвовать и быть доступной на запись
$dir_img = $_SERVER['DOCUMENT_ROOT'] . "/img/" ; 

////////////////////////

ignore_user_abort(1);

////////////////////////

$hour = date("H"); //Текущий час
if ( !in_array($hour, $arr_hour) ) {
    exit('Этот час не работаем, т.к. он не задан в настройках');
}

////////////////////////

$time = date("YmdH"); //Текущая дата и времени с точностью до часа

$cron_time=@file_get_contents('cron_time.txt'); //Считываем дату и время последнего исполнения скрипта

if ($cron_time !== FALSE) {
    //Если скрипт уже выполнялся в этом часе, то выходим
    if ($cron_time == $time) {
        exit('Этот час уже был отработан скриптом');
    }
}

file_put_contents('cron_time.txt', $time);  //перезаписываем файл cron_time с текущем временем

////////////////////////

//Копируем картинку себе

//$url_img = "http://tslab.comon.ru/translations/$public_key/1.jpg"; до 19.04.2016
$url_img = "http://tslab.comon.ru/image.ashx?id=$public_key";
$save_img = $dir_img . $time . '.jpg';

copy($url_img, $save_img);


echo 'Скрипт выполнен!';

Рассматривайте скрипт как пример. Код можно совсем упростить, или наоборот, докрутить дополнительные фишки.

У меня скрипт вызывается кроном каждый час, а периодичность сохранения картинок прописана в самом скрипте в массиве $arr_hour. Я делаю снимки каждый день в 10, 15 и 20 часов, думаю, этого достаточно.

Если на хостинге нет крона, то скрипт можно внедрить в страницу посещаемого сайт (при наличии).
Время последнего сделанного снимка сохраняется в файле cron_time.txt. Это позволяет не делать лишних снимков.

Можно из скрипта удалить код с «расписанием», а периодичность сохранения снимков определять расписанием cron хостинга.

На http://www.comon.ru/tslab/ некоторые трансляции защищены паролем, но из-за огрехов безопасности, такие закрытые трансляции тоже будут мониториться скриптом. Про эксперимент с закрытыми трансляциями читайте тут.

Процесс создания трансляций TSlab описан на сайте проекта:

Создание новой трансляции - http://www.comon.ru/info/codex/?id=48

Настройка программы TSLab - http://www.comon.ru/info/codex/default.aspx?id=49

 

Скачать скрипт мониторинга трансляции TSLab в архиве.

Дополнение к посту от 19 апреля 2016

На comon.ru изменили адрес картинки. Строку в скрипте
$url_img = "http://tslab.comon.ru/translations/$public_key/1.jpg";

надо заменить на

$url_img = "http://tslab.comon.ru/image.ashx?id=$public_key";

Дырку с доступом к закрытым трансляциям закрыли.

 

Понравился пост и скрипт? – оставь комментарий.

Добавить комментарий


css.php