RePod-Nextcloud-App/stubs/OCA/GPodderSync/Core/PodcastData/PodcastData.php

114 lines
1.5 KiB
PHP
Raw Normal View History

2023-08-02 12:13:16 +02:00
<?php
declare(strict_types=1);
namespace OCA\GPodderSync\Core\PodcastData;
/**
* @psalm-type PodcastDataType = array{
* title: ?string,
* author: ?string,
* link: ?string,
* description: ?string,
* imageUrl: ?string,
* fetchedAtUnix: int,
* imageBlob: ?string
* }
*/
2023-08-04 00:23:59 +02:00
class PodcastData implements \JsonSerializable
2023-08-02 12:13:16 +02:00
{
2023-08-22 19:41:17 +02:00
public function __construct(
private ?string $title,
private ?string $author,
private ?string $link,
private ?string $description,
private ?string $imageUrl,
private int $fetchedAtUnix,
private ?string $imageBlob = null
) {
}
2023-08-02 12:13:16 +02:00
/**
2023-08-04 00:23:59 +02:00
* @return PodcastData
* @throws \Exception if the XML data could not be parsed
2023-08-02 12:13:16 +02:00
*/
2023-08-04 00:23:59 +02:00
public static function parseRssXml(string $xmlString, ?int $fetchedAtUnix = null)
{
}
2023-08-02 12:13:16 +02:00
2023-08-04 00:23:59 +02:00
/**
* @return ?string
*/
public function getTitle()
{
}
2023-08-02 12:13:16 +02:00
2023-08-04 00:23:59 +02:00
/**
* @return ?string
*/
public function getAuthor()
{
}
2023-08-02 12:13:16 +02:00
2023-08-04 00:23:59 +02:00
/**
* @return ?string
*/
public function getLink()
{
}
2023-08-02 12:13:16 +02:00
2023-08-04 00:23:59 +02:00
/**
* @return ?string
*/
public function getDescription()
{
}
2023-08-02 12:13:16 +02:00
2023-08-04 00:23:59 +02:00
/**
* @return ?string
*/
public function getImageUrl()
{
}
2023-08-02 12:13:16 +02:00
2023-08-04 00:23:59 +02:00
/**
* @return ?int
*/
public function getFetchedAtUnix()
{
}
2023-08-02 12:13:16 +02:00
2023-08-04 00:23:59 +02:00
/**
* @return ?string
*/
public function getImageBlob()
{
}
2023-08-02 12:13:16 +02:00
2023-08-04 00:23:59 +02:00
public function setImageBlob(?string $blob): void
{
}
2023-08-02 12:13:16 +02:00
/**
* @return PodcastDataType
*/
2023-08-04 00:23:59 +02:00
public function toArray()
{
}
2023-08-02 12:13:16 +02:00
/**
* @return PodcastDataType
*/
2023-08-04 00:23:59 +02:00
public function jsonSerialize(): mixed
{
}
2023-08-02 12:13:16 +02:00
/**
2023-08-04 00:23:59 +02:00
* @param PodcastDataType $data
* @return PodcastData
2023-08-02 12:13:16 +02:00
*/
2023-08-04 00:23:59 +02:00
public static function fromArray(array $data)
{
}
2023-08-02 12:13:16 +02:00
}