feat: support itunes namespace in top channel feed (#3776)

Also preserves other properties.
This commit is contained in:
Dag 2024-01-09 20:18:33 +01:00 committed by GitHub
parent ea58c8d2bc
commit 3ce94409ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 298 additions and 203 deletions

View file

@ -9,10 +9,43 @@ abstract class FormatAbstract
protected string $charset = 'UTF-8';
protected array $items = [];
protected int $lastModified;
protected array $extraInfos = [];
protected array $feed = [];
abstract public function stringify();
public function setFeed(array $feed)
{
$default = [
'name' => '',
'uri' => '',
'icon' => '',
'donationUri' => '',
];
$this->feed = array_merge($default, $feed);
}
public function getFeed(): array
{
return $this->feed;
}
/**
* @param FeedItem[] $items
*/
public function setItems(array $items): void
{
$this->items = $items;
}
/**
* @return FeedItem[] The items
*/
public function getItems(): array
{
return $this->items;
}
public function getMimeType(): string
{
return static::MIME_TYPE;
@ -32,44 +65,4 @@ abstract class FormatAbstract
{
$this->lastModified = $lastModified;
}
/**
* @param FeedItem[] $items
*/
public function setItems(array $items): void
{
$this->items = $items;
}
/**
* @return FeedItem[] The items
*/
public function getItems(): array
{
return $this->items;
}
public function setExtraInfos(array $infos = [])
{
$extras = [
'name',
'uri',
'icon',
'donationUri',
];
foreach ($extras as $extra) {
if (!isset($infos[$extra])) {
$infos[$extra] = '';
}
}
$this->extraInfos = $infos;
}
public function getExtraInfos(): array
{
if (!$this->extraInfos) {
$this->setExtraInfos();
}
return $this->extraInfos;
}
}