Создание собственных парсеров

Seopirat

Admin
Команда форума
Приватовец
VIP
Прошёл марафон
Регистрация
21 Фев 2017
Сообщения
2.168
Реакции
1.556
Баллы
113
Небольшая инструкция по созданию собственных парсеров MSE-Script.
Парсер представляет собой класс, соответствующий интерфейсу:
PHP:
namespace liw\App;

interface parserInterface
{
   public static function getTracksList($list, $offset);
   public static function searchTrack($query, $page);
}
2 обязательных статических метода для поиска треков и парсинга плейлистов. Соответственно:

$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
    }
}
Так же, вы можете добавлять свои собственные свойства трека (например год выхода), которые автоматически станут доступны в шаблоне. Для подключения нового парсера, достаточно положить его в папку App и указать в соответствующем параметре системного конфига config_system.php (находится в /libs/data/).
 
Сверху Снизу