48 lines
966 B
PHP
48 lines
966 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace OCA\GPodderSync\Core\PodcastData;
|
|
|
|
use Exception;
|
|
use JsonSerializable;
|
|
|
|
interface PodcastData extends JsonSerializable
|
|
{
|
|
/**
|
|
* @return PodcastData
|
|
* @throws Exception if the XML data could not be parsed.
|
|
*/
|
|
public static function parseRssXml(string $xmlString, ?int $fetchedAtUnix = null): PodcastData;
|
|
|
|
public function getTitle(): ?string;
|
|
|
|
public function getAuthor(): ?string;
|
|
|
|
public function getLink(): ?string;
|
|
|
|
public function getDescription(): ?string;
|
|
|
|
public function getImageUrl(): ?string;
|
|
|
|
public function getFetchedAtUnix(): ?int;
|
|
|
|
public function getImageBlob(): ?string;
|
|
|
|
public function setImageBlob(?string $blob): void;
|
|
|
|
public function __toString() : string;
|
|
|
|
/**
|
|
* @return array<string,mixed>
|
|
*/
|
|
public function toArray(): array;
|
|
|
|
/**
|
|
* @return array<string,mixed>
|
|
*/
|
|
public function jsonSerialize(): array;
|
|
|
|
public static function fromArray(array $data): PodcastData;
|
|
}
|