[Сайт] Вывод названия трека, обложки и списка проигранных треков

  • Автор темы Автор темы djsoft
  • Дата начала Дата начала
scorp сказал(а):
rsv сказал(а):
Три страницы общения ни о чем, а ответа нет.
Вы меня извините, но это уже действительно не смешно. Спрашивать о таких вещах не имея ни малейшего понятия о том как обрабатывать XML или преобразовать его в JSON (что делается просто элементарно), как получить время уведомления, как сложить время старта и продолжительность трека, чтобы получить его время окончания и т.д. и не задействуя элементарную логику... это действительно не смешно...
Вы или нанимайте специалиста или не морочьте голову.. Вам уже дали как минимум 3 простых решения, но вы не сообразили ни одно из них... это уже не просто - не смешно, это печально...
Если у Вас нет конкретного ответа на вопрос, то лучше наверное удержаться от ответа. Очень тяжело что то найти на форуме. Вы же не разработчик, а размышлять я также умею. Все, кто пишет на форуме, хотят получить конкретные шаги или хотя бы понять логику работы программы. Не всегда есть возможность перечитывать большые мануалы, да иногда ответы в них изложены слишком лаконично, и надо спрашивать, как это использовать и где. Вы же также часто спрашиваете, и не получаете ответа, или получаете ответ, коротый Вас не удовлетворяет. И если то, о чем я спрашиваю, делается элементарно, тогда почему Вы не привели конкретного работающего примера? Описать то, как гипотетически это должно работать, легко. Перечитывая Ваши ответы, складывается впечатление, что Вы с этим не стыкались на практике еще. Спасибо, конечно за то, что хоть как то хотели помочь. То, что Вы предлагаете, я перепробовал. Я также пересмотрел весь англоязычный форум, кстати, там ответа также нет. Тот код, что приводится, не парсит xml данные. Значит, они или просто не передаются, или не правильно вытягиваются.
Нужно ли в уведомлениях описывать переменные, например, starttime=%starttime, и другие, которые вытигиваются из команды getplaylist2?

Сожержимое файла, в который передается плейлист:
$xmlgetplaylist2 = file_get_contents("http://ip?pass=...&action=getplaylist2");
file_put_contents("filex.xml", $xmlgetplaylist2);

$Playlist = new SimpleXMLElement($xmlgetplaylist2);
foreach ($Playlist->track as $track) {
  echo $track->casttitle, '.... ', $track->starttime, PHP_EOL;
}



Ошибка Notice: Undefined index: key in... также не решена на англоязычном форуме. Она зависит от версии php или чего?
 
rsv сказал(а):
Я спрашиваю через какую переменную передается время начала трека. Или как передать через уведомления.
Но ведь время начала трека равно времени получения уведомления, зачем это вообще передавать? Какой конечный результат требуется?

rsv сказал(а):
Если у Вас нет конкретного ответа на вопрос, то лучше наверное удержаться от ответа. Очень тяжело что то найти на форуме. Вы же не разработчик, а размышлять я также умею. Все, кто пишет на форуме, хотят получить конкретные шаги или хотя бы понять логику работы программы
А в чем суть вопроса, чтобы кто-то взял и сделал все за вас? Это уже не вопрос тогда. Программа выдает данные через API и уведомления, как их использловать - зависит от ваших нужд, и это целиком ваша задача. Создавать систему вам нужно или самостоятельно, или нанимать кого-то, кто это сделает вам.

rsv сказал(а):
Ошибка Notice: Undefined index: key in... также не решена на англоязычном форуме. Она зависит от версии php или чего?
Что не решено, можно ссылку? Этот вопрос вообще никак к программе не относится, если пишете на PHP, нужно разбираться в этом языке, как работать с данными и т.п. У вас ошибка, как минимум: вместо $track->casttitle должно быть $track['CASTTITLE'] - регистр символов имеет значение, плюс CASTTITLE это атрибут, а не вложенный элемент.
 
rsv сказал(а):
То, что Вы предлагаете, я перепробовал.
Если перепробовали, то что конкретно не получается?

rsv сказал(а):
Ошибка Notice: Undefined index: key in... также не решена на англоязычном форуме. Она зависит от версии php или чего?
Она зависит от того, что человек не изучил базовые функции языка прежде чем начинать писать код. И решается она не на англоязычном форуме, а с помощью гугла, как собственно и вся Ваша задача. От РБ требуется вообще минимум просто включить АПИ и посмотреть в справочнике команды и все. Остальное гуглить, изучать - или бесплатно или платить за курсы или платить кому-то...

Ладно, коль уж Вы такой лентяй, набросал вам тут за чашкой чаю код (простой как валенок)
https://paiza.io/projects/e/j2nU6K6dVgu10Nc3zTJ1Fw?theme=idle_fingers - надеюсь осилите

 
Большое спасибо за помощь. Попробую адаптировать код. У меня задание чуть отличается, но напрягать уже не хочу.
А то что Вы пишете,
scorp сказал(а):
человек не изучил базовые функции языка прежде чем начинать писать код.
я не изучал php вообще. И он мне не пригодится. Просто возникла задача, которую надо решить. Примеров в интернете много, а толковых нет.
 
rsv сказал(а):
Примеров в интернете много, а толковых нет.
Ну так любой пример нужно смотреть и наиболее подходящий адаптировать под себя. Все очень хорошо гуглится.

rsv сказал(а):
У меня задание чуть отличается
Ну уточните, что нужно и как, попробуем скорректировать...
 
scorp сказал(а):
Ну уточните, что нужно и как, попробуем скорректировать...

Вот что получилось...


$Playlist = new SimpleXMLElement($xmlgetplaylist2);

foreach ($Playlist->TRACK as $track) {
$data [] = array(
"show_id" => date('N').$STARTTIME = date("H", strtotime($track['STARTTIME'])).$ENDTIME = date("i", strtotime($track['STARTTIME'])),
"show_time" => date("H:i", strtotime($track['STARTTIME'])),
"show_time_end" => date("H:i", strtotime($track['STARTTIME'])+timeToSec($track['DURATION'])),
"show_title" => $track['CASTTITLE'],
);
}

file_put_contents($jFile, json_encode($data));

Выводится файл json, но ошибка в том, что $track['CASTTITLE'] - обьект, а надо перевести в строку.
"show_id" - получается от номера недели, часа и минут начала трека.
Нашел, что можна писать (string) $track['CASTTITLE'] - выдает строку, но правильно ли, не знаю.

С циклом for еще не разобрался(

 
rsv сказал(а):
С циклом for еще не разобрался(

А зачем он вам нужен этот for? И зачем вообще переводить в JSON? когда можно просто разобрать XML и получить те же данные, я ж вам привел по сути готовый рабочий пример.
Или вам принципиально нужно в JSON?

ок, можно так (добавил пример с выводом в JSON) - https://paiza.io/projects/j2nU6K6dVgu10Nc3zTJ1Fw
 
scorp сказал(а):
rsv сказал(а):
С циклом for еще не разобрался(

А зачем он вам нужен этот for? И зачем вообще переводить в JSON? когда можно просто разобрать XML и получить те же данные, я ж вам привел по сути готовый рабочий пример.
Или вам принципиально нужно в JSON?

ок, можно так (добавил пример с выводом в JSON) - https://paiza.io/projects/j2nU6K6dVgu10Nc3zTJ1Fw

Спасибо большое. Все выводится правильно, но проверяю на валидность и пишет, что хочет кодировку uff8.
 
rsv сказал(а):
что хочет кодировку uff8
Ну попробуйте поставите в скрипт в самом верху сразу после открывающего тега <?php указание кодировки, вот так:
header('Content-Type: text/html; charset=utf-8');
 
rsv сказал(а):
я не изучал php вообще. И он мне не пригодится. Просто возникла задача, которую надо решить. Примеров в интернете много, а толковых нет.
Знание языка необходимо, хотя бы на базовом уровне, иначе ничего хорошего не выйдет. Даже если получится "методом тыка" заставить работать код "из интернета", остается вопрос безопасности - через плохо написанный скрипт ваш сайт могут взломать и начать делать что-то нехорошее.
 
Здравствуйте.
У меня сайт на конструкторе reg.ru там можно только html code поставить. Поставил коды плеера и название треков из вкладки Integration, обе работают. Но код Album cover не показывает картинку. Что можно делать в такой ситуации? Помогите советами.
Спасибо.
 
 
Думаю, вам стоит с этим вопросом обратиться к вашему хостеру. Также проверьте, работает ли виджет если тестировать его из панели управления в RadioBOSS Cloud.
 
На редких радиостанциях я видел вместо названия песни - бегущая строка с новостями или погодой. Как самому добавить подобную инфу?

И еще. В скрытой папке user/AppData/Roaming/djsoft.net/RadioBOSS_4240059799 множество (сотни) текстовых файлов типа bugreport_20180821-160627.txt Я так понимаю, это файлы отчета. Если они не нужны, я могу отключить их накопление в этой папке или без них Босс не будет работать?
 
Эти файлы не нужны для работы и их можно удалить. Отключить их создание нельзя, но они у вас создаются из-за пиратской версии у которой масса проблем :)
 
Скрипт обновлен: для названия трека используется переменная %casttitle вместо отдельных переменных %artist/%title, это позволяет показывать в скрипте то название трека, которое отправляется на сервера вещания.
 
Зачастую, то, что играет в данный момент в прямом эфире не соответствует тому, что выводится на сайте. Не могу понять, где причина.
В настройках вот так.
Снимок.JPG

Может стоит artist - title поменять на %casttitle ? И что за чекбокс - произвольный формат названия?
 
Может стоит artist - title поменять на %casttitle
В этом окне %casttitle не используется. Если название неправильное на сайте, проверьте, откуда сайт берет название трека. Также проверьте название на сервере вещания, правильное ли оно там.
 
Большое спасибо за скрипт!

Здесь спрашивали, как передать время. Если нужно текущее время (в момент старта трека), то достаточно прописать это в настройках HTTP запроса. Например, так: http://www.yoursite.com/nowplaying/nowplaying.php?casttitle=[%hh:%nn] %casttitle&artwork=%artwork&key=TB21Dr3km

И тогда на скрипт будет передаваться примерно следующее: [21:44] ABBA - Happy New Year
Причём время будет как в названии текущего трека, так и в истории проигрывания.

А вот что сделать самому у меня не получилось - так это добавить в скрипт вывод следующего трека. Прошу помощи автора скрипта. RadioBoss умеет передавать и эту информацию (переменная %nextsong). Но не могу понять, как её обработать и вывести на странице nowplaying.html...
 
Но не могу понять, как её обработать и вывести на странице nowplaying.html...
Вывод делается аналогично выводу текущего трека. Или, как более простой вариант - добавить следующий трек к текущему в скобках.
 
Назад
Верх