История плейлиста.

  • Автор темы Автор темы Rafik
  • Дата начала Дата начала

Rafik

Member
Здравствуйте , может у кого то есть готовый шаблон история плейлиста для сайта. Буду очень благодарен
 
Это понятно 😊
Шаблон же потом можно редактировать под себя
 
Не знаю как сделать и что делать поэтому нужен шаблон что бы понять что и как все сделано
 
Здравствуйте , может у кого то есть готовый шаблон история плейлиста для сайта. Буду очень благодарен
Самый простой вариант - использовать RadioBOSS Cloud, там есть готовый виджет с историей, который можно вставить на сайт:

Если делать для обычного RadioBOSS то как отправную точку можно использовать это: https://djsoft.net/community_ru/thr...ka-oblozhki-i-spiska-proigrannyx-trekov.4254/
Для истории нужно сохранять куда-то проигранные треки и затем показывать их оттуда.
 
Можно просто получать запросом список последних треков http://IP:Port/?pass=ПАРОЛЬ&action=getlastplayed (сюда бы еще параметр типа cnt - чтоб ограничить количество сразу и не грузить лишнего) и оформить себе как надо в виде списка или таблички или хоть как.. это самое простое..

А еще в отчеты добавить сохранение и отправку списка последних, картинки по ним тем более уже сохраняются и отправляются..
 
Есть такой вот ПХП код все работает. Но хочется что бы в истории что играло
перед названием песни показывал дата и время типа так. 10.11.2024 / 16:20 - Название песни.
Помогите пожалуйста

Код:
<?php

//max recent tracks to keep in the recently played tracks history
$max_recent = 50;

//secret key to access the script
$key = '1234';

//check access
if ($_REQUEST['key'] !== $key) {
    ReturnError(400, 'Invalid key');
}

//retrieve title info
$title = htmlspecialchars($_REQUEST['casttitle']);

//save current track title and update history
$file = 'nowplaying_title.txt';
$recent = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$recent = array_slice($recent, 0, $max_recent);

$r = fopen($file, 'wb');
if ($r !== false) {
    //current track
    fwrite($r, $title . "\n");
    //album cover
$artwork = isset($_REQUEST['artwork']) && ($_REQUEST['artwork'] !== '') ? $_REQUEST['artwork'] : false;
if ($artwork !== false) {
    $artwork = base64_decode($artwork);
    $r = fopen('nowplaying_artwork.png', 'wb');
    if ($r !== false) {
        fwrite($r, $artwork);
        fclose($r);
    } else {
        ReturnError(500, 'Failed to save track artwork');
    }
}
    //recent tracks
    foreach ($recent as $s) {
        fwrite($r, $s . "\n");
    }
    fclose($r);
} else {
    ReturnError(500, 'Failed to save track title');
}


function ReturnError($code, $text) {
    $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
    header($protocol . ' ' . $code . ' ' . $text);
    exit();
}
 
Есть такой вот ПХП код все работает. Но хочется что бы в истории что играло
перед названием песни показывал дата и время типа так. 10.11.2024 / 16:20 - Название песни.
Помогите пожалуйста
Из простых решений (если запрос к скрипту идет через http-уведомления) вот так..
Тут будет фиксироваться время обращения к скрипту, что по сути является временем запуска трека может с небольшим отклонением пару сек. Но возможно лучше использовать АПИ, ибо если какой сбой обращения по адресу скрипта то вообще может не зафиксироваться трек в историю, потому как запрос уходит в момент запуска.
PHP:
...
//recent tracks
foreach ($recent as $s) {
    fwrite($r, date("d.m.Y / H:i"). " - ". $s . "\n");
}
...
 
Последнее редактирование:
Из простых решений (если запрос к скрипту идет через http-уведомления) вот так..
Тут будет фиксироваться время обращения к скрипту, что по сути является временем запуска трека может с небольшим отклонением пару сек. Но возможно лучше использовать АПИ, ибо если какой сбой обращения по адресу скрипта то вообще может не зафиксироваться трек в историю, потому как запрос уходит в момент запуска.
PHP:
...
//recent tracks
foreach ($recent as $s) {
    fwrite($r, date("d.m.Y / H:i"). " - ". $s . "\n");
}
...
Спасибо большое но работает не корректно.
во первых время не правильно показывает во творых все повторяется как пирамида.
и каждый добавленный дублируется снизу

вот как это выглядит:
14.11.2024 / 22:00 - Название Трека 5
14.11.2024 / 21:56 - Название Трека 4. 14.11.2024 / 22:54 - Название Трека 3
14.11.2024 / 21:56 - Название Трека 4. 14.11.2024 / 22:54 - Название Трека 3. 14.11.2024 / 21:52 - Название Трека 2. 14.11.2024 / 22:50 - Название Трека 1
 
во первых время не правильно показывает во творых все повторяется как пирамида.
и каждый добавленный дублируется снизу
В чем некорректность времени? Там будет время сервера. Если не настроено ваше на сервере или отличается то будет неправильно. Это можно скорректировать, но уточните в чем отличие..
Или еще можно отправлять xml и обрабатывать его, там есть время старта, но я его дико не люблю, с ним возни много..

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

--------------
Дмитрий, добавьте, пожалуйста, в список переменных для уведомлений переменную вроде %started с временем запуска в милисекундах, чтоб для простых вот таких задач не играться с этим xml?
 
и каждый добавленный дублируется снизу

вот как это выглядит:
14.11.2024 / 22:00 - Название Трека 5
14.11.2024 / 21:56 - Название Трека 4. 14.11.2024 / 22:54 - Название Трека 3
14.11.2024 / 21:56 - Название Трека 4. 14.11.2024 / 22:54 - Название Трека 3. 14.11.2024 / 21:52 - Название Трека 2. 14.11.2024 / 22:50 - Название Трека 1
Аа.. малось ошибся.. не там надо, а вот тут
PHP:
...
    //current track
    fwrite($r, date("d.m.Y / H:i"). " - ". $title . "\n");
...
 
Дмитрий, добавьте, пожалуйста, в список переменных для уведомлений переменную вроде %started с временем запуска в милисекундах, чтоб для простых вот таких задач не играться с этим xml?
Если нужна точность, есть XML, если нет, системного времени сервера будет достаточно. Будет погрешность 1-5 секунд, никому до этого нет дела, все равно на сайтах время запуска треков обычно пишется с точностью до минуты.
 
Да никто не спорит, но если не сложно добавьте, пожалуйста. Это в разы удобнее чем играться с xml..
Переменные имели смысл, пока не было XML, сейчас вы все данные можно передать в одной переменной, т.е. запрос может выглядеть примерно так (не нужно каждое поле прописывать отдельно):


Пример данных XML (здесь видно какие есть поля и элементы):
Код:
<?xml version="1.0" encoding="utf-8"?>

<PLAYER name="RadioBOSS" version="7.0.8.0">

<TRACK ARTIST="Amy Steele" TITLE="The Wolves (Lenzman Remix)" ALBUM="UKF Summer Drum &amp; Bass Vol. 2" YEAR="" GENRE="" COMMENT="" FILENAME="C:\Muisic\Test\Amy Steele  The Wolves (Lenzman Remix).mp3" DURATION="05:46"  STARTED="2024-11-18 11:43:28" PLAYCOUNT="1" LASTPLAYED="2024-11-18 11:43:27" INTRO="0.00" OUTRO="0.00" LANGUAGE="" RATING="0" BPM="" TAGS="" PUBLISHER="" ALBUMARTIST="Various Artists" COMPOSER="" COPYRIGHT="" TRACKNUMBER="12" F1="" F2="" F3="" F4="" F5="" CASTTITLE="Amy Steele - The Wolves (Lenzman Remix)" LISTENERS="0" LYRICS="" />

<NEXTTRACK><TRACK ARTIST="Apex feat. Ayah Marar" TITLE="Space Between Us" ALBUM="" YEAR="" GENRE="Other" COMMENT="0" FILENAME="C:\Muisic\Test\Apex feat. Ayah Marar - Space Between Us.mp3" DURATION="06:46"  STARTED="2024-11-18 11:43:28" PLAYCOUNT="0" LASTPLAYED="" INTRO="0.00" OUTRO="0.00" LANGUAGE="" RATING="0" BPM="" TAGS="" PUBLISHER="" ALBUMARTIST="Apex feat. Ayah Marar" COMPOSER="" COPYRIGHT="" TRACKNUMBER="3" F1="" F2="" F3="" F4="" F5="" CASTTITLE="Apex feat. Ayah Marar - Space Between Us" /></NEXTTRACK>

<PREVTRACK><TRACK ARTIST="Alix Perez Feat. Specific" TITLE="Drive by" ALBUM="Alix Perez-PRG004 Vinyl" YEAR="2006" GENRE="Drum &amp; Bass" COMMENT="Straight.from.da.Underground" FILENAME="C:\Muisic\Test\Alix Perez Feat. Specific - Drive by.mp3" DURATION="05:47"  STARTED="2024-11-18 11:43:28" PLAYCOUNT="3" LASTPLAYED="2024-11-18 11:42:58" INTRO="0.00" OUTRO="0.00" LANGUAGE="" RATING="0" BPM="" TAGS="" PUBLISHER="" ALBUMARTIST="Alix Perez Feat. Specific" COMPOSER="" COPYRIGHT="" TRACKNUMBER="2" F1="" F2="" F3="" F4="" F5="" CASTTITLE="Alix Perez Feat. Specific - Drive by" /></PREVTRACK>

</PLAYER>

Получение данных (название трека):
Код:
$xml = simplexml_load_string($_REQUEST['xml']);
$casttitle = $xml->TRACK["CASTTITLE"];

Время запуска:
Код:
$started = $xml->TRACK["STARTED"];
 
Назад
Верх