cvs: php-master-web /scripts pregen_news rss_parser update-backend
| From: | Hannes Magnusson | Date: | Wed, 31 Dec 2008 13:33:57 +0000 |
| Subject: | cvs: php-master-web /scripts pregen_news rss_parser update-backend | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-3402@lists.php.net to get a copy of this message | ||
bjori Wed Dec 31 13:33:57 2008 UTC
Modified files:
/php-master-web/scripts pregen_news rss_parser update-backend
Log:
- No need to do some weird newyears checks now for the news files
- Build the news items that the archive has, let phpweb control if it
wants to display it or not
http://cvs.php.net/viewvc.cgi/php-master-web/scripts/pregen_news?r1=1.4&r2=1.5&diff_format=u
Index: php-master-web/scripts/pregen_news
diff -u php-master-web/scripts/pregen_news:1.4
php-master-web/scripts/pregen_news:1.5
--- php-master-web/scripts/pregen_news:1.4 Wed Mar 19 23:00:50 2008
+++ php-master-web/scripts/pregen_news Wed Dec 31 13:33:57 2008
@@ -11,60 +11,46 @@
$XML_OPTIONS = LIBXML_COMPACT | LIBXML_NOBLANKS | LIBXML_NOCDATA | LIBXML_NSCLEAN |
LIBXML_XINCLUDE;
function pregen_atom($feed, $feedDest, $newsDest) {
- $entries = format_atom_feed($feed, $y = date("Y"));
- uasort($entries, "date_sort");
+ $dom = new DOMDocument;
+ $dom->preserveWhiteSpace = false;
+ $dom->formatOutput = true;
- $write = '<?php $NEWS_ENTRIES = ' . var_export($entries, 1) . ';';
- file_put_contents($newsDest, $write);
-
- do {
- $filename = $feed . $y .".xml";
- } while (!file_exists($filename));
- copy($filename, $feedDest);
-}
-
-function format_atom_feed($feed, $year) {
- static $frontpage = 0;
- static $conf = 0;
+ if (!$dom->load($feed, $GLOBALS["XML_OPTIONS"])) {
+ trigger_error("News feed b0rked!", E_USER_WARNING);
+ return;
+ }
+ if (!$dom->xinclude()) {
+ trigger_error("News items b0rked!", E_USER_WARNING);
+ return;
+ }
- // Lets only go back one year
- if ($year < (date("Y")-1)) {
- $frontpage = $conf = 100;
- return array();
+ $timestamps = array();
+ foreach ($dom->getElementsByTagName("updated") as $node) {
+ $timestamps[] = strtotime($node->nodeValue, $_SERVER["REQUEST_TIME"]);
}
+ $updated = max($timestamps);
+ $upnode = $dom->createElement("updated", date(DATE_ATOM, $updated));
+ $dom->documentElement->insertBefore($upnode,
$dom->getElementsByTagName("link")->item(0));
- $filename = $feed . $year .".xml";
+ $feed = $dom->saveXML();
+ $entries = format_atom_feed($feed);
- // January 1st...
- if (!file_exists($filename)) {
- return format_atom_feed($feed, --$year);
- }
+ $write = '<?php $NEWS_ENTRIES = ' . var_export($entries, 1) . ';';
+ file_put_contents($newsDest, $write);
+ file_put_contents($feedDest, $feed);
+}
+function format_atom_feed($filename) {
$r = new XMLReader;
- $r->open($filename, "UTF-8");
+ $r->XML($filename, "UTF-8");
$entries = array();
while($r->read()) {
if ($r->nodeType === XMLReader::ELEMENT && $r->name === "entry") {
$entries[] = $current = format_atom_entry($r);
-
- // Count the frontpage & conference entries
- foreach($current["category"] as $dog) {
- if ($dog["term"] == "frontpage") {
- ++$frontpage;
- break;
- } else {
- ++$conf;
- }
- }
}
}
- // Make sure we have enough entries to display (shortly after new-year..)
- if (min($frontpage, $conf) < 5) {
- $entries = array_merge($entries, format_atom_feed($feed, --$year));
- }
-
return $entries;
}
http://cvs.php.net/viewvc.cgi/php-master-web/scripts/rss_parser?r1=1.21&r2=1.22&diff_format=u
Index: php-master-web/scripts/rss_parser
diff -u php-master-web/scripts/rss_parser:1.21 php-master-web/scripts/rss_parser:1.22
--- php-master-web/scripts/rss_parser:1.21 Thu Jun 7 13:01:35 2007
+++ php-master-web/scripts/rss_parser Wed Dec 31 13:33:57 2008
@@ -172,7 +172,7 @@
"\t\t<rdf:Seq>\n";
// Cycle through all the Resources on the RSS
- foreach ($headlines as $headline) {
+ foreach ((array)$headlines as $headline) {
$RSS .= "\t\t\t<rdf:li rdf:resource=\"" . $headline['link'] .
"\" />\n";
}
http://cvs.php.net/viewvc.cgi/php-master-web/scripts/update-backend?r1=1.34&r2=1.35&diff_format=u
Index: php-master-web/scripts/update-backend
diff -u php-master-web/scripts/update-backend:1.34 php-master-web/scripts/update-backend:1.35
--- php-master-web/scripts/update-backend:1.34 Fri Jan 11 10:18:25 2008
+++ php-master-web/scripts/update-backend Wed Dec 31 13:33:57 2008
@@ -40,7 +40,7 @@
fetch_ip_to_country($root);
include "pregen_news";
-pregen_atom("$root/archive/", "$root/feed.atom",
"$root/include/pregen-news.inc");
+pregen_atom("$root/archive/archive.atom", "$root/feed.atom",
"$root/include/pregen-news.inc");
include "rss_parser";
legacy_rss("$root/feed.atom", "$root/news.rss",
"$root/conferences/news.rss");