1
0
mirror of https://github.com/RSS-Bridge/rss-bridge.git synced 2025-08-19 23:03:01 +02:00

refactor: deprecate FeedItem constructor (#4201)

* fix: bug in prior commit

* refactor: deprecate FeedItem constructor

* test: fix
This commit is contained in:
Dag
2024-08-08 03:43:26 +02:00
committed by GitHub
parent 2a96bf19b5
commit 6afd13eb06
11 changed files with 78 additions and 114 deletions

View File

@@ -129,24 +129,24 @@ class GULPProjekteBridge extends WebDriverAbstract
while (true) {
$items = $this->getDriver()->findElements(WebDriverBy::tagName('app-project-view'));
foreach ($items as $item) {
$feedItem = new FeedItem();
$feedItem = [];
$heading = $item->findElement(WebDriverBy::xpath('.//app-heading-tag/h1/a'));
$feedItem->setTitle($heading->getText());
$feedItem->setURI('https://www.gulp.de' . $heading->getAttribute('href'));
$feedItem['title'] = $heading->getText();
$feedItem['uri'] = 'https://www.gulp.de' . $heading->getAttribute('href');
$info = $item->findElement(WebDriverBy::tagName('app-icon-info-list'));
if ($logo = $this->getLogo($item)) {
$feedItem->setEnclosures([$logo]);
$feedItem['enclosures'] = [$logo];
}
if (str_contains($info->getText(), 'Projektanbieter:')) {
$feedItem->setAuthor($info->findElement(WebDriverBy::xpath('.//li/span[2]/span'))->getText());
$feedItem['author'] = $info->findElement(WebDriverBy::xpath('.//li/span[2]/span'))->getText();
} else {
// mostly "Direkt vom Auftraggeber" or "GULP Agentur"
$feedItem->setAuthor($item->findElement(WebDriverBy::tagName('b'))->getText());
$feedItem['author'] = $item->findElement(WebDriverBy::tagName('b'))->getText();
}
$feedItem->setContent($item->findElement(WebDriverBy::xpath('.//p[@class="description"]'))->getText());
$feedItem['content'] = $item->findElement(WebDriverBy::xpath('.//p[@class="description"]'))->getText();
$timeAgo = $item->findElement(WebDriverBy::xpath('.//small[contains(@class, "time-ago")]'))->getText();
$feedItem->setTimestamp($this->getTimestamp($timeAgo));
$feedItem['timestamp'] = $this->getTimestamp($timeAgo);
$this->items[] = $feedItem;
}

View File

@@ -477,7 +477,7 @@ class NintendoBridge extends XPathAbstract
return $date->getTimestamp();
}
protected function generateItemId(FeedItem $item)
protected function generateItemId(array $item)
{
return $this->getCurrentCategory() . '-' . $this->lastId;
}

View File

@@ -107,10 +107,10 @@ class RutubeBridge extends BridgeAbstract
}
foreach ($videos as $video) {
$item = new FeedItem();
$item->setTitle($video->title);
$item->setURI($video->video_url);
$content = '<a href="' . $item->getURI() . '">';
$item = [];
$item['title'] = $video->title;
$item['uri'] = $video->video_url;
$content = '<a href="' . $video->video_url . '">';
$content .= '<img src="' . $video->thumbnail_url . '" />';
$content .= '</a><br/>';
$content .= nl2br(
@@ -122,9 +122,10 @@ class RutubeBridge extends BridgeAbstract
$video->description . ' '
)
);
$item->setTimestamp($video->created_ts);
$item->setAuthor($video->author->name);
$item->setContent($content);
$item['timestamp'] = $video->created_ts;
$item['author'] = $video->author->name;
$item['content'] = $content;
$this->items[] = $item;
}
}

View File

@@ -41,16 +41,20 @@ class ScalableCapitalBlogBridge extends WebDriverAbstract
$items = $this->getDriver()->findElements(WebDriverBy::xpath('//div[contains(@class, "articles")]//div[@class="items"]//div[contains(@class, "item")]'));
foreach ($items as $item) {
$feedItem = new FeedItem();
$feedItem = [];
$feedItem['enclosures'] = ['https://de.scalable.capital' . $item->findElement(WebDriverBy::tagName('img'))->getAttribute('src')];
$feedItem->setEnclosures(['https://de.scalable.capital' . $item->findElement(WebDriverBy::tagName('img'))->getAttribute('src')]);
$heading = $item->findElement(WebDriverBy::tagName('a'));
$feedItem->setTitle($heading->getText());
$feedItem->setURI('https://de.scalable.capital' . $heading->getAttribute('href'));
$feedItem->setContent($item->findElement(WebDriverBy::xpath('.//div[@class="summary"]'))->getText());
$feedItem['title'] = $heading->getText();
$feedItem['uri'] = 'https://de.scalable.capital' . $heading->getAttribute('href');
$feedItem['content'] = $item->findElement(WebDriverBy::xpath('.//div[@class="summary"]'))->getText();
$date = $item->findElement(WebDriverBy::xpath('.//div[@class="published-date"]'))->getText();
$feedItem->setTimestamp($this->formatItemTimestamp($date));
$feedItem->setAuthor($item->findElement(WebDriverBy::xpath('.//div[@class="author"]'))->getText());
$feedItem['timestamp'] = $this->formatItemTimestamp($date);
$feedItem['author'] = $item->findElement(WebDriverBy::xpath('.//div[@class="author"]'))->getText();
$this->items[] = $feedItem;
}

View File

@@ -255,7 +255,7 @@ class Vk2Bridge extends BridgeAbstract
if (!$ownerId) {
$ownerId = $post['owner_id'];
}
$item = new FeedItem();
$item = [];
$content = $this->generateContentFromPost($post);
if (isset($post['copy_history'])) {
if ($this->getInput('hide_reposts')) {
@@ -277,11 +277,11 @@ class Vk2Bridge extends BridgeAbstract
$content .= '):</p>';
$content .= $this->generateContentFromPost($originalPost);
}
$item->setContent($content);
$item->setTimestamp($post['date']);
$item->setAuthor($this->ownerNames[$post['from_id']]);
$item->setTitle($this->getTitle(strip_tags($content)));
$item->setURI($this->getPostURI($post));
$item['content'] = $content;
$item['timestamp'] = $post['date'];
$item['author'] = $this->ownerNames[$post['from_id']];
$item['title'] = $this->getTitle(strip_tags($content));
$item['uri'] = $this->getPostURI($post);
$this->items[] = $item;
}