Скрипт для icecast |
Здравствуйте, гость ( Вход | Регистрация )
Скрипт для icecast |
28.5.2010, 12:13
Сообщение
#1
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 6 Регистрация: 26.4.2010 Пользователь №: 6 722 Спасибо сказали: 0 раз |
Радио скрипт для сервера icecast.
Через заданный интервал выводит информацию о кол-ве слушателей, играющем треке и ссылка на радио v1.0
Прикрепленные файлы
|
|
|
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). |
|
|
29.5.2010, 11:40
Сообщение
#3
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 6 Регистрация: 26.4.2010 Пользователь №: 6 722 Спасибо сказали: 0 раз |
вот теперь бы на луа организовать такое. Или может есть уже?
|
|
|
29.5.2010, 12:19
Сообщение
#4
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Конкретно под эту систему нету, было для SHOUTcast тут и тут что-то. Если дадите ссылку конкретно на страницу работающего плеера - подскажем как сделать. Либо в архиве приложите сохраненную старницу. И еще какой апи?
|
|
|
30.5.2010, 12:02
Сообщение
#5
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 6 Регистрация: 26.4.2010 Пользователь №: 6 722 Спасибо сказали: 0 раз |
вообщем задача такая!
Для API2 сделать парсер с этой страницы: в настройках: 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; |
|
|
30.5.2010, 23:37
Сообщение
#6
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
В пхп коде разбираться не охота, но такую страницу пропарсить - плевое дело. Вот пример кода который выдает в чат с заданными интервалом информацию о станции в виде
Цитата <PtokaX> *** 0 человек сейчас слушают на BelRadio [ Учел возможность данных в утф и еще кое-какие приятные мелочи, смотрите в настройках Для работы понадобится библиотека LuaSocket. Сейчас заметил что количество слушателей не показыватся, поэтому это можно опустить заменив Код Core.SendToAll(sBot..""..iListeners.." человек сейчас слушают на "..sServer.." [ "..sSendUrl.." ] "..sWeListen) на Код Core.SendToAll(sBot.."На "..sServer.." [ "..sSendUrl.." ] сейчас играет: "..sWeListen) И еще вижу что русские буквы выводятся в непоймикакой кодировке... :( Скрипт выводит их как нижнее подчеркивание. У вас там вывод идет в CP1252 вместо CP1251, хотя вообще должно быть в утф, с этой кодировкой мы вообще не работали, может кто скажет как перевести средствами скрипта по аналогии с этими функциями? Вот таблицы кодировок:
Прикрепленные файлы
|
|
|
1.6.2010, 18:23
Сообщение
#7
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 6 Регистрация: 26.4.2010 Пользователь №: 6 722 Спасибо сказали: 0 раз |
можно ли добавить меню - для админов
а там кнопки показать слушателей и прочее? |
|
|
2.6.2010, 12:27
Сообщение
#8
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
А... В принципе можно сделать команду вывода того что выводится по таймеру. Не более, для остального просто нет информации. Как будет возможность - добавлю.
|
|
|
6.6.2010, 14:42
Сообщение
#9
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Выкладываю, пусть чуть позже чем обещал, скрипт с дополнением - командой для отсылки информации по запросу.
Прикрепленные файлы
|
|
|
14.6.2010, 16:15
Сообщение
#10
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 6 Регистрация: 26.4.2010 Пользователь №: 6 722 Спасибо сказали: 0 раз |
отлично! можешь эту команду прикрепить к меню - кнопкой
и еще параметр в конфиге кому показывать эту инфу (оп, мастер и т.д) и так же сделать вывод информации в личку или в чат п.с. и еще возможность отключения автоматического отправления в чат |
|
|
17.6.2010, 19:45
Сообщение
#11
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Обновил скрипт по запросу выше, теперь
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
Прикрепленные файлы
|
|
|
7.8.2012, 7:20
Сообщение
#12
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 1 Регистрация: 7.8.2012 Пользователь №: 10 765 Спасибо сказали: 0 раз |
Добрый день, уважаемые.
Установил скрипт HackFresse. Кое что поправил, все работает. Есть только 1 "но": не обновляется инфа. Делаешь рефрешь - все показывает. На странице сервера и в плейере все показывается. То есть проблема не в выдаче инфы. Прошу помочь, ибо полный профан в данном вопросе(поправлял элементарные вещи, для которых не знания нужны, а просто голова) |
|
|
3.12.2012, 13:53
Сообщение
#13
|
|
Начинающий Группа: Пользователи Сообщений: 12 Регистрация: 28.2.2012 Пользователь №: 10 342 Спасибо сказали: 0 раз |
может кто подскажет,как вытащить общую статистику по количеству слушающих,а не отдельно по точкам.
|
|
|
8.12.2013, 17:07
Сообщение
#14
|
|
Начинающий Группа: Пользователи Сообщений: 26 Регистрация: 17.11.2009 Пользователь №: 5 090 Спасибо сказали: 0 раз |
Скажите как устронить эту проблему
|
|
|
Похожие темы
|
Сейчас: 23.12.2024, 4:01 |