- Регистрация
- 21 Фев 2017
- Сообщения
- 2.168
- Реакции
- 1.556
- Баллы
- 113
Небольшая инструкция по созданию собственных парсеров MSE-Script.
Парсер представляет собой класс, соответствующий интерфейсу:
2 обязательных статических метода для поиска треков и парсинга плейлистов. Соответственно:
$list - ID плейлиста для парсинга
$offset - смещение выборки
$query - поисковый запрос
$page - номер страницы (смещение)
Каждый метод должен возвращать:
Объект трека:
Общая структура парсера:
Так же, вы можете добавлять свои собственные свойства трека (например год выхода), которые автоматически станут доступны в шаблоне. Для подключения нового парсера, достаточно положить его в папку App и указать в соответствующем параметре системного конфига config_system.php (находится в /libs/data/).
Парсер представляет собой класс, соответствующий интерфейсу:
PHP:
namespace liw\App;
interface parserInterface
{
public static function getTracksList($list, $offset);
public static function searchTrack($query, $page);
}
$list - ID плейлиста для парсинга
$offset - смещение выборки
$query - поисковый запрос
$page - номер страницы (смещение)
Каждый метод должен возвращать:
PHP:
$results['tracks']; // Коллекция треков
$results['hasNextPage'] = TRUE; // Существует ли следующая страница/диапазон смещения (bool)
PHP:
array(
'name' => 'Отражение', // Название трека
'artistNames' => array( // Массив исполнителей
0 => 'Король и шут'
),
'duration' => '2:30', // Длительность трека
'filelink' => 'https://domain.com/link_to_file.mp3', // Ссылка на mp3-файл
'poster_small' => 'https://domain.com/small_poster.jpg', // Маленький постер
'medium_small' => 'https://domain.com/medium_poster.jpg', // Средний постер
'big_small' => 'https://domain.com/big_poster.jpg', // Большой постер
'mid' => null, // Системная переменная
'tid' => null // Системная переменная
);
PHP:
<?php
namespace liw\App;
Class MyParser implements ParserInterface
{
# Парсинг треклистов
# Вход: ID плейлиста (int), смещение (int)
# Выход: Коллекция треков
#--------------------------------------
public static function getTracksList ($list, $offset = 0)
{
# ...
return $results
}
# Поиск треков
# Вход: Поисковый запрос (string), страница для смещения (int)
# Выход: Коллекция треков
#--------------------------------------
public static function searchTrack ($query, $page = 1)
{
# ...
return $results
}
}