From ef399a7c1c6b4e343be9ba8b29e3b0f69d2af78d Mon Sep 17 00:00:00 2001 From: Alexis Marie Wright Date: Sat, 5 Mar 2022 09:34:37 -0500 Subject: [PATCH] Write a feed file --- config/default.php | 2 ++ lib/generate-feed.php | 34 ++++++++++++++++++++++++++++++++++ lib/parse-page.php | 2 ++ rssmonster.php | 30 ++++-------------------------- 4 files changed, 42 insertions(+), 26 deletions(-) create mode 100644 lib/generate-feed.php create mode 100644 lib/parse-page.php diff --git a/config/default.php b/config/default.php index da7110b..f644724 100644 --- a/config/default.php +++ b/config/default.php @@ -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"; diff --git a/lib/generate-feed.php b/lib/generate-feed.php new file mode 100644 index 0000000..763b061 --- /dev/null +++ b/lib/generate-feed.php @@ -0,0 +1,34 @@ + 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; +}; \ No newline at end of file diff --git a/lib/parse-page.php b/lib/parse-page.php new file mode 100644 index 0000000..1ce6fae --- /dev/null +++ b/lib/parse-page.php @@ -0,0 +1,2 @@ + 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);