diff --git a/web/html/modified-rss.php b/web/html/modified-rss.php
new file mode 100644
index 00000000..4c5c47e0
--- /dev/null
+++ b/web/html/modified-rss.php
@@ -0,0 +1,62 @@
+cssStyleSheet = false;
+$rss->xslStyleSheet = false;
+
+# Use UTF-8 (fixes FS#10706).
+$rss->encoding = "UTF-8";
+
+#All the general RSS setup
+$rss->title = "AUR Latest Modified Packages";
+$rss->description = "The latest modified packages in the AUR";
+$rss->link = "${protocol}://{$host}";
+$rss->syndicationURL = "{$protocol}://{$host}" . get_uri('/rss/');
+$image = new FeedImage();
+$image->title = "AUR Latest Modified Packages";
+$image->url = "{$protocol}://{$host}/css/archnavbar/aurlogo.png";
+$image->link = $rss->link;
+$image->description = "AUR Latest Modified Packages Feed";
+$rss->image = $image;
+
+#Get the latest packages and add items for them
+$packages = latest_modified_pkgs(100);
+
+foreach ($packages as $indx => $row) {
+ $item = new FeedItem();
+ $item->title = $row["Name"];
+ $item->link = "{$protocol}://{$host}" . get_pkg_uri($row["Name"]);
+ $item->description = $row["Description"];
+ $item->date = intval($row["ModifiedTS"]);
+ $item->source = "{$protocol}://{$host}";
+ $item->author = username_from_id($row["MaintainerUID"]);
+ $item->guidIsPermaLink = true;
+ $item->guid = $row["Name"] . "-" . $row["ModifiedTS"];
+ $rss->addItem($item);
+}
+
+#save it so that useCached() can find it
+$feedContent = $rss->createFeed();
+set_cache_value($feed_key, $feedContent, 600);
+echo $feedContent;
+?>
diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index eb3afab6..140c7ec1 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -925,13 +925,13 @@ function sanitize_ids($ids) {
*
* @return array $packages Package info for the specified number of recent packages
*/
-function latest_pkgs($numpkgs) {
+function latest_pkgs($numpkgs, $orderBy='SubmittedTS') {
$dbh = DB::connect();
- $q = "SELECT Packages.*, MaintainerUID, SubmittedTS ";
+ $q = "SELECT Packages.*, MaintainerUID, SubmittedTS, ModifiedTS ";
$q.= "FROM Packages LEFT JOIN PackageBases ON ";
$q.= "PackageBases.ID = Packages.PackageBaseID ";
- $q.= "ORDER BY SubmittedTS DESC ";
+ $q.= "ORDER BY " . $orderBy . " DESC ";
$q.= "LIMIT " . intval($numpkgs);
$result = $dbh->query($q);
@@ -944,3 +944,14 @@ function latest_pkgs($numpkgs) {
return $packages;
}
+
+/**
+ * Determine package information for latest modified packages
+ *
+ * @param int $numpkgs Number of packages to get information on
+ *
+ * @return array $packages Package info for the specified number of recently modified packages
+ */
+function latest_modified_pkgs($numpkgs) {
+ return latest_pkgs($numpkgs, 'ModifiedTS');
+}
diff --git a/web/lib/routing.inc.php b/web/lib/routing.inc.php
index 7d9750a0..73c667d2 100644
--- a/web/lib/routing.inc.php
+++ b/web/lib/routing.inc.php
@@ -15,6 +15,7 @@ $ROUTES = array(
'/logout' => 'logout.php',
'/passreset' => 'passreset.php',
'/rpc' => 'rpc.php',
+ '/rss/modified' => 'modified-rss.php',
'/rss' => 'rss.php',
'/tos' => 'tos.php',
'/tu' => 'tu.php',