myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> Скрипт для icecast

Теги
belradio
сообщение 28.5.2010, 12:13
Сообщение #1


Абсолютный новичок


Группа: Пользователи
Сообщений: 6
Регистрация: 26.4.2010
Пользователь №: 6 722
Спасибо сказали: 0 раз




Радио скрипт для сервера icecast.

Через заданный интервал выводит информацию о кол-ве слушателей, играющем треке и ссылка на радио

v1.0
Прикрепленные файлы
Прикрепленный файл  Icecast2_XSL_Parser_by_Nickolya.lua ( 4.28 килобайт ) Кол-во скачиваний: 271
 
Go to the top of the page
+Quote Post
 
Начать новую тему
Ответов
HackFresse
сообщение 28.5.2010, 19:05
Сообщение #2


Продвинутый участник
****

Группа: Пользователи
Сообщений: 155
Регистрация: 11.1.2009
Пользователь №: 1 772
Спасибо сказали: 29 раз




Тоже хотелось бы такую игрушку, чтобы по менюшке и через промежуток времени писала в чат инфу о радиостанциях... но в луа разобраться нету времени.. =(
Но вот сочинил небольшой код на пхп, вдруг регулярка пригодится (писать одной строкой)
Раскрывающийся текст
Код
<?php
$icecast_url='http://10.10.0.1:8000';

$output = file_get_contents($icecast_url);

$search='#<div class="newscontent">.*?Point /(.*?)<.*?href="(.*?)">M3U<.*?Listeners.*?class="streamdata">(.*?)<.*?Song:.*?class="streamdata">(.*?)<.*?</div>#si';
preg_match_all($search, $output, $matches);

$j=count($matches[0]);
for ($i=0;$i<$j; $i++) {

    $point_name=$matches[1][$i];
    $pount_m3u=$icecast_url.$matches[2][$i];
    $point_listners_count=$matches[3][$i];
    $point_current_song=$matches[4][$i];
//
    echo 'mount point: <b>'.$point_name.'</b><br>';
    echo 'm3u: <a href="'.$pount_m3u.'">'.$pount_m3u.'</a><br>';
    echo 'listners_count: <b>'.$point_listners_count.'</b><br>';
    echo 'point_current_song: <b>'. $point_current_song.'</b><br><br><br>';
}
?>
Показывает только название точки, ссылку на неё, количество слушающих сейчас и название песни.

Названия песни может отсутствовать (если слушателей нету и трансляция радио только по запросу, или просто не транслируется), + есть нюансы с кодировкой ( в зависимости от настройки icecast).
Go to the top of the page
+Quote Post
belradio
сообщение 29.5.2010, 11:40
Сообщение #3


Абсолютный новичок


Группа: Пользователи
Сообщений: 6
Регистрация: 26.4.2010
Пользователь №: 6 722
Спасибо сказали: 0 раз




вот теперь бы на луа организовать такое. Или может есть уже?
Go to the top of the page
+Quote Post
Nickolya
сообщение 29.5.2010, 12:19
Сообщение #4


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 772 раза




Конкретно под эту систему нету, было для SHOUTcast тут и тут что-то. Если дадите ссылку конкретно на страницу работающего плеера - подскажем как сделать. Либо в архиве приложите сохраненную старницу. И еще какой апи?
Go to the top of the page
+Quote Post
belradio
сообщение 30.5.2010, 12:02
Сообщение #5


Абсолютный новичок


Группа: Пользователи
Сообщений: 6
Регистрация: 26.4.2010
Пользователь №: 6 722
Спасибо сказали: 0 раз




вообщем задача такая!
Для API2 сделать парсер с этой страницы:
http://94.232.9.222:8000/status2.xsl?mount=/nonstop

в настройках:

ip = "94.232.9.212"
port = "8000"
mount = "nonstop"

вот пример парсинга на пхп:

Код
fputs($fp,"GET /status2.xsl?mount=/$serverpoint HTTP/1.0\r\nUser-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r\n\r\n"); //get status2.xsl
while(!feof($fp)) {
  $page .= fgets($fp, 1000);
}
fclose($fp); //close connection

$numbers = explode(",",$page); //начала проверки пунктов
$mount = $numbers[0];
$connections = $numbers[1];
$stream_n = $numbers[2];
$listeners = $numbers[3];
$desc = $numbers[4];
$cur_song = $numbers[5];
$str_url = $numbers[6];
$client_info = $numbers[7];
$test1 = $numbers[8];   //Не понял что это
$mount = $numbers[11];
$connections = $numbers[12];
$station =$numbers[13];
$listeners = $numbers[14];
$description = $numbers[15];
$cur_song = $numbers[16];
$www_url  = $numbers[17];
$listfake = $listeners + $random;
Go to the top of the page
+Quote Post
Nickolya
сообщение 30.5.2010, 23:37
Сообщение #6


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 772 раза




В пхп коде разбираться не охота, но такую страницу пропарсить - плевое дело. Вот пример кода который выдает в чат с заданными интервалом информацию о станции в виде
Цитата
<PtokaX> *** 0 человек сейчас слушают на BelRadio [ http://94.232.9.212:8000/nonstop.m3u ] - Alesha Dixon - The Boy Does Nothing


Учел возможность данных в утф и еще кое-какие приятные мелочи, смотрите в настройках big_smile.gif Для работы понадобится библиотека LuaSocket.

Сейчас заметил что количество слушателей не показыватся, поэтому это можно опустить заменив
Код
Core.SendToAll(sBot..""..iListeners.." человек сейчас слушают на "..sServer.." [ "..sSendUrl.." ] "..sWeListen)
на
Код
Core.SendToAll(sBot.."На "..sServer.." [ "..sSendUrl.." ] сейчас играет: "..sWeListen)


И еще вижу что русские буквы выводятся в непоймикакой кодировке... :( Скрипт выводит их как нижнее подчеркивание.

У вас там вывод идет в CP1252 вместо CP1251, хотя вообще должно быть в утф, с этой кодировкой мы вообще не работали, может кто скажет как перевести средствами скрипта по аналогии с этими функциями? Вот таблицы кодировок: CP1252 и CP1251. Или может собрать iconv под птоку?

Прикрепленные файлы
Прикрепленный файл  Icecast2_XSL_Parser_by_Nickolya.lua ( 4.28 килобайт ) Кол-во скачиваний: 72
 


Спасибо сказали:
Go to the top of the page
+Quote Post
belradio
сообщение 1.6.2010, 18:23
Сообщение #7


Абсолютный новичок


Группа: Пользователи
Сообщений: 6
Регистрация: 26.4.2010
Пользователь №: 6 722
Спасибо сказали: 0 раз




можно ли добавить меню - для админов
а там кнопки показать слушателей и прочее?
Go to the top of the page
+Quote Post
Nickolya
сообщение 2.6.2010, 12:27
Сообщение #8


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 772 раза




А... В принципе можно сделать команду вывода того что выводится по таймеру. Не более, для остального просто нет информации. Как будет возможность - добавлю.


Спасибо сказали:
Go to the top of the page
+Quote Post
Nickolya
сообщение 6.6.2010, 14:42
Сообщение #9


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 772 раза




Выкладываю, пусть чуть позже чем обещал, скрипт с дополнением - командой для отсылки информации по запросу.
Прикрепленные файлы
Прикрепленный файл  Icecast2_XSL_Parser_by_Nickolya.lua ( 6.49 килобайт ) Кол-во скачиваний: 68
 
Go to the top of the page
+Quote Post
belradio
сообщение 14.6.2010, 16:15
Сообщение #10


Абсолютный новичок


Группа: Пользователи
Сообщений: 6
Регистрация: 26.4.2010
Пользователь №: 6 722
Спасибо сказали: 0 раз




отлично! можешь эту команду прикрепить к меню - кнопкой
и еще параметр в конфиге кому показывать эту инфу (оп, мастер и т.д)
и так же сделать вывод информации в личку или в чат

п.с. и еще возможность отключения автоматического отправления в чат
Go to the top of the page
+Quote Post
Nickolya
сообщение 17.6.2010, 19:45
Сообщение #11


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 772 раза




Обновил скрипт по запросу выше, теперь
CODE
----------------------------------------------------------------------------------------------------
-- Конфиг скрипта:
----------------------------------------------------------------------------------------------------

-- Таймаут подключения к серверу (время на ожидание),
-- столько может висеть скрипт при запросе баланса, в секундах:
iScriptTimeout = 1

-- Отсылать ли в чат информацию по таймеру:
bSendDataOnTimer = true

-- Интервал для отправки сообщений о сервере в чат, в секундах:
iTimerInterval = 30

-- Отправлять ли в чат сообщения если получить информацию не удалось:
bSendBadMsg = false

-- Наша страница в UTF-8:
bUTF = true

-- Параметры подключения:
ip = "94.232.9.212"
port = "8000"
mount = "nonstop"

-- Команда для вывода в чат сообщения:
sSendCmd = "showradio"

-- Путь в меню для команды:
sMenuWay = "Показать информацию о радио"

-- Кому разрешено пользоваться командой:
tAllowCmd = {
[0] = true,
[1] = true,
[2] = true,
[3] = true,
[-1] = false,
}

-- Посылать информацию в ЛС (true) или чат (false):
bSendOnCmdToPm = false

Прикрепленные файлы
Прикрепленный файл  Icecast2_XSL_Parser_by_Nickolya.lua ( 7.46 килобайт ) Кол-во скачиваний: 138
 
Go to the top of the page
+Quote Post
kirk
сообщение 7.8.2012, 7:20
Сообщение #12


Абсолютный новичок


Группа: Пользователи
Сообщений: 1
Регистрация: 7.8.2012
Пользователь №: 10 765
Спасибо сказали: 0 раз




Добрый день, уважаемые.
Установил скрипт HackFresse.
Кое что поправил, все работает. Есть только 1 "но": не обновляется инфа.
Делаешь рефрешь - все показывает.
На странице сервера и в плейере все показывается. То есть проблема не в выдаче инфы.

Прошу помочь, ибо полный профан в данном вопросе(поправлял элементарные вещи, для которых не знания нужны, а просто голова)
Go to the top of the page
+Quote Post
aleksei1122
сообщение 3.12.2012, 13:53
Сообщение #13


Начинающий
*

Группа: Пользователи
Сообщений: 12
Регистрация: 28.2.2012
Пользователь №: 10 342
Спасибо сказали: 0 раз




может кто подскажет,как вытащить общую статистику по количеству слушающих,а не отдельно по точкам.
Go to the top of the page
+Quote Post
RoL
сообщение 8.12.2013, 17:07
Сообщение #14


Начинающий
*

Группа: Пользователи
Сообщений: 26
Регистрация: 17.11.2009
Пользователь №: 5 090
Спасибо сказали: 0 раз




Скажите как устронить эту проблему http://f3.s.qip.ru/17hKVg80N.png ?? Дело в том что ввеблоги магнет сылка отоброжаеться не правильно





Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts А бывают такой скрипт бота?
Скрипт который создает виртуалных юзеров, но с реальными шарами
5 MarkDark 669 26.12.2017, 10:47 Посл. сообщение: мамин_парень
No New Posts Скрипт: Бот который отвечает в лс
4 мамин_парень 700 11.11.2017, 5:57 Посл. сообщение: мамин_парень
No New Posts как сделать вот этот скрипт
12 мамин_парень 1 240 13.9.2017, 10:51 Посл. сообщение: dimetro
No New Posts Topic has attachmentsИщу скрипт переадресации (redirect)
Переадресация интернет-юзеров
3 AS_Com 1 029 27.8.2017, 8:05 Посл. сообщение: Ksan
No New Posts Topic has attachmentsСкрипт Thunder.lua
7 Евген76 6 900 9.8.2017, 11:48 Посл. сообщение: Ksan
No New Posts Требуется скрипт
Нужен скрипт запрета на подключение
5 Nikolaevich 2 487 20.8.2016, 19:52 Посл. сообщение: Ksan
No new Topic has attachmentsMagneto - Бесплатный Скрипт Портала Обмена Dc-ссылками Для Локальной Сети
25 UserSide 19 611 17.3.2016, 5:21 Посл. сообщение: dimazikpk
No new ВАЖНО: Topic has attachmentsСкрипт банов для RusHub
тестим и комменьтруем
79 Wariner 52 717 28.9.2015, 13:34 Посл. сообщение: NeirRon
No New Posts Скрипт загрузки файла
1 FreeNas 2 087 21.7.2015, 10:58 Посл. сообщение: HackFresse
No new Как вызвать bash скрипт из Lua
14 Iskandark 5 261 3.3.2015, 12:42 Посл. сообщение: Iskandark
No new Topic has attachmentsНовогодний Скрипт
API2
22 Tsd 18 998 12.12.2014, 16:28 Посл. сообщение: Tsd
No New Posts Скрипт запрета видеть чат
запрет видеть чат
2 dimetro 2 582 5.12.2014, 17:37 Посл. сообщение: dimetro
No New Posts Topic has attachmentsпеределать скрипт kinozal.tv
6 BOKOREZ 5 634 30.10.2014, 18:29 Посл. сообщение: Dani_Filth
No New Posts Нужен скрипт
mysql, ip filter
2 shadow3c 3 264 20.8.2014, 20:30 Посл. сообщение: shadow3c
No new votes Опрос: Topic has attachmentsСкрипт онлайн-погоды
скрипт погоды сейчас
57 Perspect 36 932 17.7.2014, 11:52 Посл. сообщение: Ksan

 



RSS Сейчас: 24.6.2018, 15:41