'', 'added' => 'added', 'removed' => 'removed'); $actions = array('' => ''); $archs = array('all' => 'all'); $result = mysql_run_query( "SELECT DISTINCT `architectures`.`name` FROM `architectures`" . mysql_join_architectures_repositories() . " WHERE `repositories`.`is_on_master_mirror`" . " ORDER BY `name`" ); while ($row = $result -> fetch_assoc()) $archs[$row['name']] = $row['name']; $repos = array('' => ''); $result = mysql_run_query( "SELECT DISTINCT `repositories`.`name` FROM `repositories` WHERE `repositories`.`is_on_master_mirror` ORDER BY `name`" ); while ($row = $result -> fetch_assoc()) $repos[$row['name']] = $row['name']; if (count($uri_parts) > 0 && array_key_exists($uri_parts[0], $actions)) { $action = $uri_parts[0]; $action_filter = 'unimplemented'; array_splice( $uri_parts, 0, 1 ); } else { $action = ''; $action_filter = '`repositories`.`is_on_master_mirror`'; } if (count($uri_parts) > 0) { if (!array_key_exists($uri_parts[0], $archs)) throw_http_error(501, "Not Implemented", implode('/',$uri_parts)); $arch = $uri_parts[0]; $arch_filter = ' AND `r_a`.`name`="' . $arch . '"'; array_splice( $uri_parts, 0, 1 ); } else { $arch = ''; $arch_filter = ''; } if (count($uri_parts) > 0) { if (!array_key_exists($uri_parts[0], $repos)) throw_http_error(501, "Not Implemented", implode('/',$uri_parts)); $repo = $uri_parts[0]; $repo_filter = ' AND `repositories`.`name`="' . $repo . '"'; array_splice( $uri_parts, 0, 1 ); } else { $repo = ''; $repo_filter = ''; } if (count($uri_parts) != 0) throw_http_error(501, "Not Implemented", implode('/',$uri_parts)); $result = mysql_run_query( "SELECT MAX(`build_assignments`.`return_date`) AS `max_build_date`" . " FROM `build_assignments`" . mysql_join_build_assignments_binary_packages() . mysql_join_binary_packages_binary_packages_in_repositories() . mysql_join_binary_packages_in_repositories_repositories() . mysql_join_repositories_architectures("", "r_a") . " WHERE " . $action_filter . $repo_filter . $arch_filter ); $max_build_date = $result -> fetch_assoc(); $max_build_date = $max_build_date['max_build_date']; $result = mysql_run_query( "SELECT `binary_packages`.`pkgname`," . "`binary_packages`.`epoch`," . "`binary_packages`.`pkgver`," . "`binary_packages`.`pkgrel`," . "`binary_packages`.`sub_pkgrel`," . "`binary_packages`.`sub_pkgrel_omitted`," . "`architectures`.`name` AS `architecture`," . "`repositories`.`name` AS `repo`," . "`r_a`.`name` AS `r_a`," . "`binary_packages_in_repositories`.`last_moved`" . " FROM `binary_packages`" . mysql_join_binary_packages_binary_packages_in_repositories() . mysql_join_binary_packages_in_repositories_repositories() . mysql_join_repositories_architectures("", "r_a") . mysql_join_binary_packages_architectures() . " WHERE " . $action_filter . $repo_filter . $arch_filter . " ORDER BY `binary_packages_in_repositories`.`last_moved` DESC" . " LIMIT 50" ); $packages = array(); while ($row = $result -> fetch_assoc()) $packages[] = $row; header('Content-Type: application/rss+xml; charset=utf-8'); print ""; print ""; print ""; print ""; print "Arch Linux 32: "; switch ($action) { case '': print "Recent package updates"; break; case 'added': print "Recent added packages"; break; case 'removes': print "Recent removed packages"; break; } if ($arch != 'all') print " (" . $arch; if ($repo != '') print " [" . $repo . "]"; if ($arch != '') print ")"; print ""; print ""; print "https://www.archlinux32.org/packages/"; print ""; print ""; switch ($action) { case '': print "Recently updated packages in the Arch Linux 32 package repositories"; break; case 'added': print "Recently added packages to the Arch Linux 32 package repositories"; break; case 'removes': print "Recently removed packages from the Arch Linux 32 package repositories"; break; } if ($arch != 'all') print " for the '" . $arch . "' architecture (including 'any' packages)"; else print " for all architectures"; if ($repo != '') print " in the [" . $repo . "] repository"; print "."; print ""; print ""; print ""; print ""; print "en-us"; print ""; print ""; print $max_build_date; print ""; foreach ($packages as $package) { print ""; print ""; print $package['pkgname']; if ($package['epoch'] != 0) print $package['epoch'] . ":"; print $package['pkgver'] . "-" . $package['pkgrel']; if (!$package['sub_pkgrel_omitted']) print '.' . $package['sub_pkgrel']; print ' ' . $package['architecture']; print ""; print ""; print "https://www.archlinux32.org/packages/" . $package['repo'] . "/" . $package['r_a'] . "/" . $package['pkgname'] . "/"; print ""; // TODO: description print ""; print $package['last_moved']; print ""; // TODO: guid print ""; print $package['repo']; print ""; print ""; print $package['r_a']; print ""; print ""; } print ""; print ""; die(); } throw_http_error(501, "Not Implemented");