1

Тема: получить название группы

Здравствуйте ребята, запустил сервер icecast2 + ices 0.4(надеюсь это не старые версии? )
нашел скрипт, который выводит мне информацию о играющем треке, но не выводит мне названия группы.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="xml2json.xslt"/>
<xsl:output indent="no" omit-xml-declaration="yes" method="text" encoding="UTF-8" media-type="application/json"/>
<xsl:strip-space elements="*"/>

<!-- override imported transform variable to enable output -->
<xsl:variable name="output">true</xsl:variable>

<!-- hide certain nodes from all sources -->
<xsl:template match="icestats/source/max_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/public"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/source_ip"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/slow_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/*[contains(name(), 'total_bytes')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/user_agent" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/listener" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>

<!-- hide certain global nodes -->
<xsl:template match="icestats/sources"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/clients"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/stats"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="node()[contains(name(), 'connections')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
</xsl:stylesheet>

Как добавить сюда вывод artist?

Отредактировано Sluchayno (09-08-2019 19:43:04)

2

Re: получить название группы

Да это же status-json обыкновенный, отдает он все. У Вас вещалка просто его не передает.

3

Re: получить название группы

gyurgin_ пишет:

Да это же status-json обыкновенный, отдает он все. У Вас вещалка просто его не передает.

Спасибо за ответ. Но не много не понятно, что значит вещалка его не отдает? ices 0.4 или icecast2? Как настроить чтоб она отдавала эти параметры?

4

Re: получить название группы

вот какой резултат я получаю

{"icestats":{"admin":"icemaster@localhost","host":"my host","location":"Ufa","server_id":"Icecast 2.4.2","server_start":"Sat, 10 Aug 2019 10:13:13 +0000","server_start_iso8601":"2019-08-10T10:13:13+0000","source":{"audio_info":"bitrate=128","bitrate":128,"genre":" ","listener_peak":2,"listeners":0,"listenurl":"http://myhost:8000/List","server_description":"Default description","server_name":"Radio Name","server_type":"audio/mpeg","server_url":"http://url.ru","stream_start":"Sat, 10 Aug 2019 10:17:11 +0000","stream_start_iso8601":"2019-08-10T10:17:11+0000","title":"Bestiality Business 2016 - Infant - Devil's Incarnate","dummy":null}}}

Подправил некоторые поля чтоб не посчитали за рекламу, но в целом выводится это.

5

Re: получить название группы

Дайте ну хоть в личку поток посмотреть. Тут просто artist не передается. У меня с Вашим файлом все выводит.

6

Re: получить название группы

Ices ну это не проф вариант совсем, а Вы чето еще хотите. Можно сделать, но нужно ли.

7

Re: получить название группы

И еще, ну дергайте вы icecast, метаданные на сайт надо отдавать как нибудь его каждый раз не передергивая. Способов вагон.

8

Re: получить название группы

НЕ могли бы вы рассказать хотя бы про 1 способ как правильно передавать метаданные? ) Я отписался вам в личные сообщения.

9

Re: получить название группы

Вообще на данный момент я получаю названия так

$('.playstop').click(function() {
      aud.src= adres + "/song";
      aud.play();
      getStats();
      timeout = 5;
      setInterval(getStats, timeout * 1000);
    });

function getStats(){
  $.ajax({
    url: adres+"/status-json.xsl",
    success: function(data){
        $('.song marquee').text(data.icestats.source.artist +" - " + data.icestats.source.title);
    }
  });
}

Это нормальный способ?

10

Re: получить название группы

$('.song marquee').text(data.icestats.source.yp_currently_playing); 

Не? Код конечно ужасен, да и давать слушателям дергать айскаст... Но не мое это дело.

11

Re: получить название группы

Так поделитесь секретом, как сделать лучше? Как выводить название песен не дергая все время icecast? Песни у меня играются рандомно ices 0.4 так что списка нет и заранее что играть будет я не знаю.