$nocache = true;
require_once 'inc.header1.php';
require_once 'class.db.package.php';
require_once 'class.db.package.changelog.php';
require_once 'class.db.category.php';
require_once 'class.portage.package.changelog.php';
// Web interface
// meh
$atom = true;
if($_GET['type'] == 'rss') {
$atom = false;
}
$arch = $_GET['arch'];
if(!in_array($arch, $arr_arch))
$arch = null;
$feed = $_GET['feed'];
// CLI interface
if(count($argv)) {
$cli = true;
$feed = $argv[1];
$type = $argv[2];
if($argv[3] && in_array($argv[3], $arr_arch))
$arch = $argv[3];
if($type == 'rss')
$atom = false;
}
$feed_amount = 100;
switch($feed) {
case 'new_packages':
$view = 'new_packages';
// $sql = "SELECT p.id AS package, c.name AS category_name, p.name AS package_name, p.idate FROM category c JOIN package p ON p.category = c.id WHERE p.portage_mtime IS NOT NULL ORDER BY p.idate DESC, category_name, package_name LIMIT $feed_amount;";
// $sql = "SELECT p.id AS package, e.category_name, p.name AS package_name, e.id AS ebuild, p.idate FROM package p LEFT OUTER JOIN ebuilds e ON e.package = p.id WHERE p.portage_mtime IS NOT NULL AND e.id IS NOT NULL ORDER BY p.idate DESC, e.cache_mtime DESC, e.category_name, e.package_name, e.ev DESC, e.lvl DESC, e.p IS NULL, e.p DESC, e.rc IS NULL, e.rc DESC, e.pre IS NULL, e.pre DESC, e.beta IS NULL, e.beta DESC, e.alpha IS NULL, e.alpha DESC, e.pr IS NULL, e.pr DESC LIMIT $feed_amount;";
$sql = "SELECT p.id AS package, e.id AS ebuild FROM package p LEFT OUTER JOIN ebuilds e ON e.package = p.id WHERE p.idate > '2010-01-04 12:00:00.0-07' AND p.portage_mtime IS NOT NULL AND e.id IS NOT NULL ORDER BY p.idate DESC, e.cache_mtime DESC, e.category_name, e.package_name, e.ev DESC, e.lvl DESC, e.p IS NULL, e.p DESC, e.rc IS NULL, e.rc DESC, e.pre IS NULL, e.pre DESC, e.beta IS NULL, e.beta DESC, e.alpha IS NULL, e.alpha DESC, e.pr IS NULL, e.pr DESC LIMIT $feed_amount;";
$arr = $db->getAll($sql);
$feed_title = "new packages";
if($atom)
$self_url = "http://znurt.org/xml/feeds/new_packages/atom.xml";
else
$self_url = "http://znurt.org/xml/feeds/new_packages/rss.xml";
break;
case 'new_ebuilds':
$sql = "SELECT e.package, e.id AS ebuild FROM package p LEFT OUTER JOIN ebuilds e ON e.package = p.id WHERE e.udate IS NULL AND e.idate > '2010-01-04 12:00:00.0-07' ORDER BY e.idate DESC, e.cache_mtime DESC, e.category_name, e.package_name, e.ev DESC, e.lvl DESC, e.p IS NULL, e.p DESC, e.rc IS NULL, e.rc DESC, e.pre IS NULL, e.pre DESC, e.beta IS NULL, e.beta DESC, e.alpha IS NULL, e.alpha DESC, e.pr IS NULL, e.pr DESC;";
$arr = $db->getAll($sql);
$feed_title = "new ebuilds";
if($atom)
$self_url = "http://znurt.org/xml/feeds/new_ebuilds/atom.xml";
else
$self_url = "http://znurt.org/xml/feeds/new_ebuilds/rss.xml";
break;
default:
$view = 'fresh_ebuilds';
$feed_title = "the fresh ebuilds";
$arr = recentPackages($feed_amount, 0, $arch);
$str = "";
if($arch) {
$str = "$arch.";
$feed_title .= " ~ $arch";
}
if($atom)
$self_url = "http://znurt.org/xml/feeds/fresh_ebuilds/atom.".$str."xml";
else
$self_url = "http://znurt.org/xml/feeds/fresh_ebuilds/rss.".$str."xml";
break;
}
if($atom)
$date_format = 'c';
else
$date_format = 'D, d M Y H:i:s O';
// Common::pre($arr);
$feed_updated = $feed_published = date($date_format);
$feed_time = time();
$entries = array();
if(count($arr)) {
$e = new DBEbuild($arr[0]['ebuild']);
$feed_updated = date($date_format, $e->portage_mtime);
$x = 0;
foreach($arr as $row) {
extract($row);
$e = new DBEbuild($ebuild);
$p = new DBPackage($package);
$c = new DBCategory($p->category);
$ch = new DBPackageChangelog($package);
$package_name = $p->name;
$category_name = $c->name;
$pf = $e->pf;
$ebuild_portage_mtime = $e->portage_mtime;
$recent_changes = htmlspecialchars($ch->recent_changes);
$description = htmlspecialchars($p->description);
$entries[$x] = $row;
if($view == 'new_packages') {
$entries[$x]['title'] = "$category_name/$package_name";
$entries[$x]['portage_mtime'] = strtotime($p->portage_mtime);
} else {
$entries[$x]['title'] = "$pf";
}
$entries[$x]['package_url'] = "http://znurt.org/$category_name/$package_name";
$entries[$x]['ebuild_url'] = "http://znurt.org/$category_name/$package_name/$pf";
$entries[$x]['updated'] = date($date_format, $ebuild_portage_mtime);
$entries[$x]['id'] = $entries[$x]['ebuild_url']."#$ebuild_portage_mtime";
$entries[$x]['cp'] = htmlspecialchars("$category_name/$package_name");
$entries[$x]['recent_changes'] = $recent_changes;
$entries[$x]['description'] = $description;
$x++;
}
}
if($atom) {
header('Content-type: application/atom+xml');
echo "\n";
echo " $cp - $description $recent_changes
$recent_changes
\n"; echo "]]>\n"; echo "\n"; echo "\t\n"; } } echo "\n"; echo "\n"; } require_once 'inc.footer.php'; ?>