2022-09-01 11:54:43 +00:00
|
|
|
|
<?php
|
|
|
|
|
|
2022-12-04 15:19:40 +00:00
|
|
|
|
declare(strict_types=1);
|
2022-09-01 11:54:43 +00:00
|
|
|
|
|
|
|
|
|
namespace App\Core;
|
|
|
|
|
|
2022-12-04 15:19:40 +00:00
|
|
|
|
use Exception;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Плейлист без редиректа
|
|
|
|
|
*/
|
2022-09-01 11:54:43 +00:00
|
|
|
|
class Playlist extends BasicPlaylist
|
|
|
|
|
{
|
2022-12-04 15:19:40 +00:00
|
|
|
|
/**
|
|
|
|
|
* @var string|null Название плейлиста
|
|
|
|
|
*/
|
2022-09-01 11:54:43 +00:00
|
|
|
|
public ?string $name;
|
|
|
|
|
|
2022-12-04 15:19:40 +00:00
|
|
|
|
/**
|
|
|
|
|
* @var string|null Описание плейлиста
|
|
|
|
|
*/
|
2022-09-01 11:54:43 +00:00
|
|
|
|
public ?string $desc;
|
|
|
|
|
|
2022-12-04 15:19:40 +00:00
|
|
|
|
/**
|
|
|
|
|
* @var string Прямой URL до файла плейлиста на третьей стороне
|
|
|
|
|
*/
|
2022-09-01 11:54:43 +00:00
|
|
|
|
public string $pls;
|
|
|
|
|
|
2022-12-04 15:19:40 +00:00
|
|
|
|
/**
|
|
|
|
|
* @var string|null Источник плейлиста
|
|
|
|
|
*/
|
2022-09-01 11:54:43 +00:00
|
|
|
|
public ?string $src;
|
|
|
|
|
|
2022-12-04 15:19:40 +00:00
|
|
|
|
/**
|
|
|
|
|
* @var string Ссылка на плейлист в рамках проекта
|
|
|
|
|
*/
|
2022-09-01 11:54:43 +00:00
|
|
|
|
public string $url;
|
|
|
|
|
|
|
|
|
|
/**
|
2022-12-04 15:19:40 +00:00
|
|
|
|
* Конструктор
|
|
|
|
|
*
|
|
|
|
|
* @param string $id
|
|
|
|
|
* @param array $params
|
|
|
|
|
* @throws Exception
|
2022-09-01 11:54:43 +00:00
|
|
|
|
*/
|
|
|
|
|
public function __construct(public string $id, array $params)
|
|
|
|
|
{
|
2022-12-04 15:19:40 +00:00
|
|
|
|
empty($params['pls']) && throw new Exception(
|
2022-09-01 11:54:43 +00:00
|
|
|
|
"Плейлист с ID=$id обязан иметь параметр pls или redirect"
|
|
|
|
|
);
|
2022-10-22 14:57:28 +00:00
|
|
|
|
$this->url = base_url($id);
|
2022-09-02 15:45:54 +00:00
|
|
|
|
$this->name = empty($params['name']) ? "Плейлист #$id" : $params['name'];
|
|
|
|
|
$this->desc = empty($params['desc']) ? null : $params['desc'];
|
2022-10-22 14:57:28 +00:00
|
|
|
|
$this->pls = $params['pls'];
|
2022-09-02 15:45:54 +00:00
|
|
|
|
$this->src = empty($params['src']) ? null : $params['src'];
|
2022-09-01 11:54:43 +00:00
|
|
|
|
}
|
|
|
|
|
|
2022-12-04 15:19:40 +00:00
|
|
|
|
/**
|
|
|
|
|
* @inheritDoc
|
|
|
|
|
*/
|
2022-09-01 11:54:43 +00:00
|
|
|
|
public function toArray(): array
|
|
|
|
|
{
|
|
|
|
|
return [
|
|
|
|
|
'id' => $this->id,
|
|
|
|
|
'url' => $this->url,
|
|
|
|
|
'name' => $this->name,
|
|
|
|
|
'desc' => $this->desc,
|
|
|
|
|
'pls' => $this->pls,
|
|
|
|
|
'src' => $this->src,
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
}
|