Да что вы, спасибо. Полезная инфа не против правил.
Я даже сграбил картинки всех каналов в папку на сервер и теперь можно даже сделать так.
В разделе программы "Музыка" на папке "Подкасты" нажать правой клавишей мышки, выбрать "Добавить подкаст".
В поле заголовок вписываем название, которое будет у нас отображаться, а в поле "Ссылка" впишем путь до нашего плейлиста.
Значения могут быть такими:
http://diforfree.org/pls/di_hi.m3u
http://diforfree.org/pls/radiotunes_hi.m3u
http://diforfree.org/pls/jazzradio_hi.m3u
http://diforfree.org/pls/rockradio_hi.m3u
Нажав внизу вкладку "Скрипты", проставим:
- "Режим чтения списка ресурсов" в значение "Специальный (скрипт)";
- "Скрипт чтения списка ресурсов (Alt + 2)" в значение "Включен";
нажмём рядом кнопку, выберем язык скрипта "C++Script" и вставим следующий простой скрипт загрузки плейлистов из этой темы:
int gnTotal=0;
// ----------------------------------------------------------------------------
void LoadPlaylist() {
string sData, sLink, sName, sImg; THmsScriptMediaItem Item;
// Если ссылка плейлиста начинается на http, то скачиваем, если нет - загружаем как локальный файл
if (LeftCopy(mpFilePath, 4)=='http') sData = HmsDownloadUrl(mpFilePath, '', true); // Загрузка плейлиста из интернета
else sData = HmsStringFromFile(mpFilePath); // Загрузка плейлиста с локального диска
sData = HmsUtf8Decode(sData); // Декодируем из UTF-8 кодировки
// Создаём объект для поиска по регулярному выражению (в C++Script символ \ экранирует, поэтому двойной)
TRegExpr RE = TRegExpr.Create('#EXTINF:(.*?)[\\r\\n]+(.*?)([\\r\\n]|$)');
try {
if (RE.Search(sData)) do { // Запускаем поиск и создаём цикл, пока найдены совпадения
sName = Trim(RE.Match(1)); // Получаем значение первой группировки регулярного выражения (первая строка после #EXTINF:)
sLink = Trim(RE.Match(2)); // Получаем значение второй группировки регулярного выражения (вся вторая строка)
// В наименовании берём только ту часть, которая идёт после последней запятой
HmsRegExMatch('.*,(.*)', sName, sName);
// Пытаемся получить ссылку на картинку из служебного тега tvg-logo, если нету - то своё значение
if (!HmsRegExMatch('tvg-logo="(.*?)"', RE.Match, sImg)) sImg = 'http://wonky.lostcut.net/TVimg/'+HmsPercentEncode(sName, '"A-Z", "a-z", "0-9", "-", ".", "_", "~", "\'"')+'.png';
// Создаём ссылку
Item = HmsCreateMediaItem(sLink, FolderItem.ItemID);
Item[mpiTitle ] = sName; // Наименование
Item[mpiThumbnail] = sImg; // Картинка
gnTotal++; // Увеличиваем счетчик созданных ссылок
} while (RE.SearchAgain()); // Повторяем цикл, пока найдены следующие совпадения
} finally { RE.Free(); } // Освобождаем объект из памяти, что бы ни случилось
HmsLogMessage(1, mpTitle+': создано ссылок '+IntToStr(gnTotal));
}
///////////////////////////////////////////////////////////////////////////////
// Г Л А В Н А Я П Р О Ц Е Д У Р А //
// ----------------------------------------------------------------------------
{
FolderItem.DeleteChildItems(); // Удаляем созданные ранее ссылки
LoadPlaylist(); // Вызов процедуры загрузки плейлиста и создания из него ссылок
}
и нажмём ОК.
И у нас будет подкаст для данного плейлиста.
Каналы там не все, не знаю как с загруженностью - вещают через свой сервер.
Вот примерчик прикрепил.
Прикреплённые файлы сообщенияDi.fm premium.zip 1.98 kb, скачивалось 629 раз, начиная с 2015.08.19
Sony Bravia KDL-32CX523