Skip to content

Commit f08cebd

Browse files
authored
Merge pull request #5 from librarianphp/updates-librarian-core
Updating librarian core, now using feed provider to build rss feed
2 parents 95c222d + 421fb6f commit f08cebd

File tree

4 files changed

+135
-154
lines changed

4 files changed

+135
-154
lines changed

Command/Web/FeedController.php

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace librarianphp\Web;
44

55
use Librarian\Content;
6+
use Librarian\Provider\FeedServiceProvider;
67
use Librarian\WebController;
78
use Librarian\Provider\ContentServiceProvider;
89
use Suin\RSSWriter\Channel;
@@ -13,38 +14,10 @@ class FeedController extends WebController
1314
{
1415
public function handle(): void
1516
{
16-
$feed = new Feed();
17-
$channel = new Channel();
18-
$channel
19-
->title($this->getApp()->config->site_name)
20-
->description($this->getApp()->config->site_description)
21-
->url($this->getApp()->config->site_url)
22-
->feedUrl($this->getApp()->config->site_url . '/feed')
23-
->language('en-US')
24-
->copyright('Copyright ' . date('Y') . ', '. $this->getApp()->config->site_name)
25-
->pubDate(strtotime(date('Y-m-d H:i:s')))
26-
->lastBuildDate(strtotime(date('Y-m-d H:i:s')))
27-
->ttl(60)
28-
->appendTo($feed);
17+
/** @var FeedServiceProvider $feed_provider */
18+
$feed_provider = $this->getApp()->feed;
2919

30-
/** @var ContentServiceProvider $content_provider */
31-
$content_provider = $this->getApp()->content;
32-
$content_list = $content_provider->fetchAll();
33-
34-
/** @var Content $content */
35-
foreach ($content_list as $content) {
36-
$item = new Item();
37-
$item
38-
->title($content->title ?? '')
39-
->description('<div>'.($content->description ?? '').'</div>')
40-
->contentEncoded('<div>'.($content->description ?? '').'</div>')
41-
->url($this->getApp()->config->site_url . '/' . $content->getLink())
42-
->author($this->getApp()->config->site_author)
43-
->pubDate(strtotime($content->getDate()))
44-
->guid($this->getApp()->config->site_url . '/' . $content->getLink(), true)
45-
->preferCdata(true) // By this, title and description become CDATA wrapped HTML.
46-
->appendTo($channel);
47-
}
20+
$feed = $feed_provider->buildFeed();
4821

4922
header('Content-type: application/rss+xml');
5023
echo $feed;

composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
},
1313
"require": {
1414
"minicli/minicli": "^4.0",
15-
"librarianphp/librarian-core": "^4.0",
16-
"suin/php-rss-writer": "^1.6"
15+
"librarianphp/librarian-core": "^4.0"
1716
},
1817
"require-dev": {
1918
"pestphp/pest": "^2.4",

0 commit comments

Comments
 (0)