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
class FeedEnclosure {
function __construct(
public string $link = '',
public string $type = '',
public string $length = '',
public string $title = '',
public string $height = '',
public string $width = '',
) {}
public string $link;
public string $type;
public string $length;
public string $title;
public string $height;
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);
if ($link->getAttribute("rel") == "enclosure") {
$enc = new FeedEnclosure(
type: clean($link->getAttribute('type')),
length: clean($link->getAttribute('length')),
link: clean($link->getAttribute('href')),
);
$enc = new FeedEnclosure();
$enc->type = clean($link->getAttribute('type'));
$enc->length = clean($link->getAttribute('length'));
$enc->link = clean($link->getAttribute('href'));
if (!empty($base)) {
$enc->link = UrlHelper::rewrite_relative($base, $enc->link);

View File

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

View File

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

View File

@@ -784,8 +784,9 @@ class PluginHost {
/**
* 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 ($cat as $feed) {
if ($feed['id'] == $pfeed_id) {