Write a feed file
This commit is contained in:
parent
2f86d3e559
commit
ef399a7c1c
|
@ -7,6 +7,8 @@ class Config {
|
|||
'description' => '...',
|
||||
'feedUrl' => 'http://www.inhuman-comic.com/feed.xml'
|
||||
];
|
||||
// where to write the feed file
|
||||
const feedPath = '/tmp/feed.xml';
|
||||
|
||||
// where to start spidering
|
||||
const baseURL = "http://www.inhuman-comic.com";
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
declare(strict_types = 1);
|
||||
|
||||
include_once('config/default.php');
|
||||
|
||||
function generateFeed($content) {
|
||||
$loader = new \Twig\Loader\FilesystemLoader('templates/');
|
||||
$twig = new \Twig\Environment($loader, [
|
||||
'autoescape' => false
|
||||
]);
|
||||
|
||||
$now = date('c');
|
||||
|
||||
$items = [];
|
||||
foreach ($content as $result) {
|
||||
$items[] = $twig->render('item.xml', [
|
||||
'title' => $result['pageNumber'] . " | " . Config::feed['title'],
|
||||
'url' => $result['url'],
|
||||
'imageUrl' => $result['imageUrl'],
|
||||
'date' => $now
|
||||
]);
|
||||
};
|
||||
|
||||
$feed = $twig->render('feed.xml', [
|
||||
'title' => Config::feed['title'],
|
||||
'description' => Config::feed['description'],
|
||||
'baseUrl' => Config::baseURL,
|
||||
'feedUrl' => Config::feed['feedUrl'],
|
||||
'date' => $now,
|
||||
'items' => implode("\n", $items)
|
||||
]);
|
||||
|
||||
return $feed;
|
||||
};
|
|
@ -0,0 +1,2 @@
|
|||
<?php
|
||||
declare(strict_types = 1);
|
|
@ -11,32 +11,10 @@ include_once('config/default.php');
|
|||
|
||||
include_once('lib/log.php');
|
||||
include_once('lib/fetch-pages.php');
|
||||
include_once('lib/generate-feed.php');
|
||||
|
||||
$content = fetchPages();
|
||||
$feedXml = generateFeed($content);
|
||||
|
||||
$loader = new \Twig\Loader\FilesystemLoader('templates/');
|
||||
$twig = new \Twig\Environment($loader, [
|
||||
'autoescape' => false
|
||||
]);
|
||||
|
||||
$now = date('c');
|
||||
|
||||
$items = [];
|
||||
foreach ($content as $result) {
|
||||
$items[] = $twig->render('item.xml', [
|
||||
'title' => $result['pageNumber'] . " | " . Config::feed['title'],
|
||||
'url' => $result['url'],
|
||||
'imageUrl' => $result['imageUrl'],
|
||||
'date' => $now
|
||||
]);
|
||||
};
|
||||
|
||||
print $twig->render('feed.xml', [
|
||||
'title' => Config::feed['title'],
|
||||
'description' => Config::feed['description'],
|
||||
'baseUrl' => Config::baseURL,
|
||||
'feedUrl' => Config::feed['feedUrl'],
|
||||
'date' => $now,
|
||||
'items' => implode("\r\n", $items)
|
||||
]);
|
||||
|
||||
Log::info("writing " . strlen($feedXml) . " bytes to " . Config::feedPath);
|
||||
file_put_contents(Config::feedPath, $feedXml, LOCK_EX);
|
||||
|
|
Loading…
Reference in New Issue