mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2025-04-09 16:38:50 +00:00
[PicnobBridge] fix missing images (#3506)
* [PicnobBridge] fix missing images * [PicnobBridge] handle invalid relative date (e.g.: 'Just now') * [PicnobBridge] fix code indent
This commit is contained in:
parent
d49ea235f0
commit
ef0b86968c
@ -47,37 +47,36 @@ class PicnobBridge extends BridgeAbstract
|
|||||||
$html = getSimpleHTMLDOM($this->getURI());
|
$html = getSimpleHTMLDOM($this->getURI());
|
||||||
foreach ($html->find('.items') as $part) {
|
foreach ($html->find('.items') as $part) {
|
||||||
foreach ($part->find('.item') as $element) {
|
foreach ($part->find('.item') as $element) {
|
||||||
$url = urljoin(self::URI, $element->find('a', 0)->href);
|
$url = urljoin(self::URI, $element->find('a', 0)->href);
|
||||||
|
|
||||||
|
$date = date_create();
|
||||||
|
$relativeDate = date_interval_create_from_date_string(str_replace(' ago', '', $element->find('.time', 0)->plaintext));
|
||||||
|
if ($relativeDate) {
|
||||||
|
date_sub($date, $relativeDate);
|
||||||
|
}
|
||||||
|
|
||||||
$date = date_create();
|
$description = defaultLinkTo(trim($element->find('.sum', 0)->innertext), self::URI);
|
||||||
$relativeDate = str_replace(' ago', '', $element->find('.time', 0)->plaintext);
|
|
||||||
date_sub($date, date_interval_create_from_date_string($relativeDate));
|
|
||||||
|
|
||||||
$description = defaultLinkTo(trim($element->find('.sum', 0)->innertext), self::URI);
|
$isVideo = (bool) $element->find('.icon_video', 0);
|
||||||
|
$videoNote = $isVideo ? '<p><i>(video)</i></p>' : '';
|
||||||
|
|
||||||
$isVideo = (bool) $element->find('.icon_video', 0);
|
$isTV = (bool) $element->find('.icon_tv', 0);
|
||||||
$videoNote = $isVideo ? '<p><i>(video)</i></p>' : '';
|
$tvNote = $isTV ? '<p><i>(TV)</i></p>' : '';
|
||||||
|
|
||||||
$isTV = (bool) $element->find('.icon_tv', 0);
|
$isMoreContent = (bool) $element->find('.icon_multi', 0);
|
||||||
$tvNote = $isTV ? '<p><i>(TV)</i></p>' : '';
|
$moreContentNote = $isMoreContent ? '<p><i>(multiple images and/or videos)</i></p>' : '';
|
||||||
|
|
||||||
$isMoreContent = (bool) $element->find('.icon_multi', 0);
|
$imageUrl = $element->find('.img', 0)->getAttribute('data-src');
|
||||||
$moreContentNote = $isMoreContent ? '<p><i>(multiple images and/or videos)</i></p>' : '';
|
|
||||||
|
|
||||||
$imageUrl = $element->find('.img', 0)->getAttribute('data-src');
|
$uid = explode('/', parse_url($url, PHP_URL_PATH))[2];
|
||||||
parse_str(parse_url($imageUrl, PHP_URL_QUERY), $imageVars);
|
|
||||||
$imageUrl = $imageVars['u'];
|
|
||||||
|
|
||||||
$uid = explode('/', parse_url($url, PHP_URL_PATH))[2];
|
$this->items[] = [
|
||||||
|
'uri' => $url,
|
||||||
$this->items[] = [
|
'timestamp' => date_format($date, 'r'),
|
||||||
'uri' => $url,
|
'title' => strlen($description) > 60 ? mb_substr($description, 0, 57) . '...' : $description,
|
||||||
'timestamp' => date_format($date, 'r'),
|
'thumbnail' => $imageUrl,
|
||||||
'title' => strlen($description) > 60 ? mb_substr($description, 0, 57) . '...' : $description,
|
'enclosures' => [$imageUrl],
|
||||||
'thumbnail' => $imageUrl,
|
'content' => <<<HTML
|
||||||
'enclosures' => [$imageUrl],
|
|
||||||
'content' => <<<HTML
|
|
||||||
<a href="{$url}">
|
<a href="{$url}">
|
||||||
<img loading="lazy" src="{$imageUrl}" />
|
<img loading="lazy" src="{$imageUrl}" />
|
||||||
</a>
|
</a>
|
||||||
@ -86,8 +85,8 @@ class PicnobBridge extends BridgeAbstract
|
|||||||
{$moreContentNote}
|
{$moreContentNote}
|
||||||
<p>{$description}<p>
|
<p>{$description}<p>
|
||||||
HTML,
|
HTML,
|
||||||
'uid' => $uid
|
'uid' => $uid
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user