Revert some stuff based upon feedback

This commit is contained in:
wn_
2024-12-15 13:39:54 +00:00
parent 57dd754e07
commit 18b17cbc83
5 changed files with 48 additions and 46 deletions

View File

@@ -1,11 +1,9 @@
<?php <?php
class FeedEnclosure { class FeedEnclosure {
function __construct( public string $link;
public string $link = '', public string $type;
public string $type = '', public string $length;
public string $length = '', public string $title;
public string $title = '', public string $height;
public string $height = '', public string $width;
public string $width = '',
) {}
} }

View File

@@ -184,11 +184,10 @@ class FeedItem_Atom extends FeedItem_Common {
$base = $this->xpath->evaluate("string(ancestor-or-self::*[@xml:base][1]/@xml:base)", $link); $base = $this->xpath->evaluate("string(ancestor-or-self::*[@xml:base][1]/@xml:base)", $link);
if ($link->getAttribute("rel") == "enclosure") { if ($link->getAttribute("rel") == "enclosure") {
$enc = new FeedEnclosure( $enc = new FeedEnclosure();
type: clean($link->getAttribute('type')), $enc->type = clean($link->getAttribute('type'));
length: clean($link->getAttribute('length')), $enc->length = clean($link->getAttribute('length'));
link: clean($link->getAttribute('href')), $enc->link = clean($link->getAttribute('href'));
);
if (!empty($base)) { if (!empty($base)) {
$enc->link = UrlHelper::rewrite_relative($base, $enc->link); $enc->link = UrlHelper::rewrite_relative($base, $enc->link);

View File

@@ -1,10 +1,14 @@
<?php <?php
abstract class FeedItem_Common extends FeedItem { abstract class FeedItem_Common extends FeedItem {
function __construct( protected readonly DOMElement $elem;
protected readonly DOMElement $elem, protected readonly DOMDocument $doc;
protected readonly DOMDocument $doc, protected readonly DOMXPath $xpath;
protected readonly DOMXPath $xpath,
) { function __construct(DOMElement $elem, DOMDocument $doc, DOMXPath $xpath) {
$this->elem = $elem;
$this->doc = $doc;
$this->xpath = $xpath;
try { try {
$source = $elem->getElementsByTagName("source")->item(0); $source = $elem->getElementsByTagName("source")->item(0);
@@ -88,13 +92,12 @@ abstract class FeedItem_Common extends FeedItem {
$enclosures = $this->xpath->query("media:content", $this->elem); $enclosures = $this->xpath->query("media:content", $this->elem);
foreach ($enclosures as $enclosure) { foreach ($enclosures as $enclosure) {
$enc = new FeedEnclosure( $enc = new FeedEnclosure();
type: clean($enclosure->getAttribute('type')), $enc->type = clean($enclosure->getAttribute('type'));
link: clean($enclosure->getAttribute('url')), $enc->link = clean($enclosure->getAttribute('url'));
length: clean($enclosure->getAttribute('length')), $enc->length = clean($enclosure->getAttribute('length'));
height: clean($enclosure->getAttribute('height')), $enc->height = clean($enclosure->getAttribute('height'));
width: clean($enclosure->getAttribute('width')), $enc->width = clean($enclosure->getAttribute('width'));
);
$medium = clean($enclosure->getAttribute("medium")); $medium = clean($enclosure->getAttribute("medium"));
if (!$enc->type && $medium) { if (!$enc->type && $medium) {
@@ -114,13 +117,12 @@ abstract class FeedItem_Common extends FeedItem {
$content = $this->xpath->query("media:content", $enclosure)->item(0); $content = $this->xpath->query("media:content", $enclosure)->item(0);
if ($content) { if ($content) {
$enc = new FeedEnclosure( $enc = new FeedEnclosure();
type: clean($content->getAttribute('type')), $enc->type = clean($content->getAttribute('type'));
link: clean($content->getAttribute('url')), $enc->link = clean($content->getAttribute('url'));
length: clean($content->getAttribute('length')), $enc->length = clean($content->getAttribute('length'));
height: clean($content->getAttribute('height')), $enc->height = clean($content->getAttribute('height'));
width: clean($content->getAttribute('width')), $enc->width = clean($content->getAttribute('width'));
);
$medium = clean($content->getAttribute("medium")); $medium = clean($content->getAttribute("medium"));
if (!$enc->type && $medium) { if (!$enc->type && $medium) {
@@ -142,12 +144,13 @@ abstract class FeedItem_Common extends FeedItem {
$enclosures = $this->xpath->query("media:thumbnail", $this->elem); $enclosures = $this->xpath->query("media:thumbnail", $this->elem);
foreach ($enclosures as $enclosure) { foreach ($enclosures as $enclosure) {
$encs[] = new FeedEnclosure( $enc = new FeedEnclosure();
type: 'image/generic', $enc->type = 'image/generic';
link: clean($enclosure->getAttribute('url')), $enc->link = clean($enclosure->getAttribute('url'));
height: clean($enclosure->getAttribute('height')), $enc->height = clean($enclosure->getAttribute('height'));
width: clean($enclosure->getAttribute('width')), $enc->width = clean($enclosure->getAttribute('width'));
);
array_push($encs, $enc);
} }
return $encs; return $encs;

View File

@@ -141,13 +141,14 @@ class FeedItem_RSS extends FeedItem_Common {
$encs = array(); $encs = array();
foreach ($enclosures as $enclosure) { foreach ($enclosures as $enclosure) {
$encs[] = new FeedEnclosure( $enc = new FeedEnclosure();
type: clean($enclosure->getAttribute('type')), $enc->type = clean($enclosure->getAttribute('type'));
link: clean($enclosure->getAttribute('url')), $enc->link = clean($enclosure->getAttribute('url'));
length: clean($enclosure->getAttribute('length')), $enc->length = clean($enclosure->getAttribute('length'));
height: clean($enclosure->getAttribute('height')), $enc->height = clean($enclosure->getAttribute('height'));
width: clean($enclosure->getAttribute('width')), $enc->width = clean($enclosure->getAttribute('width'));
);
array_push($encs, $enc);
} }
array_push($encs, ...parent::get_enclosures()); array_push($encs, ...parent::get_enclosures());

View File

@@ -784,8 +784,9 @@ class PluginHost {
/** /**
* convert feed_id (e.g. -129) to pfeed_id first * convert feed_id (e.g. -129) to pfeed_id first
* @return (Plugin&IVirtualFeed)|null
*/ */
function get_feed_handler(int $pfeed_id): (Plugin&IVirtualFeed)|null { function get_feed_handler(int $pfeed_id): ?Plugin {
foreach ($this->feeds as $cat) { foreach ($this->feeds as $cat) {
foreach ($cat as $feed) { foreach ($cat as $feed) {
if ($feed['id'] == $pfeed_id) { if ($feed['id'] == $pfeed_id) {