diff --git a/distroquery.php b/distroquery.php
index 5bd646f..3ffb743 100644
--- a/distroquery.php
+++ b/distroquery.php
@@ -53,7 +53,9 @@ $url_prefix = home_url() . "/rpms/";
//
echo " > Repositories";
- $request = wp_remote_get('https://push.openmamba.org/openmamba/distroquery/api/v1/repository/' . $repo);
+ $page = $_GET['page'];
+ if ($page != "") $query_string="?page=" . $page;
+ $request = wp_remote_get('https://push.openmamba.org/openmamba/distroquery/api/v1/repository/' . $repo . $query_string);
$j = json_decode($request["body"], true);
if ($j["error"] != "") {
@@ -63,7 +65,41 @@ $url_prefix = home_url() . "/rpms/";
echo " > " . $repo;
echo "
" . _r("List of packages") . ":
";
- foreach ($j as $package) {
+ // Pagination
+ if ($j["query"]["pages"]) {
+ $page = $j["query"]["page"];
+ $pages = $j["query"]["pages"];
+ $from_page = 1;
+ if ($page > 10) $from_page = $page - 10;
+ $to_page = $from_page + 20;
+ if ($to_page > $pages) {
+ $to_page = $pages;
+ $from_page = $to_page - 20;
+ if ($from_page < 1) $from_page = 1;
+ }
+ echo _r("Page") . " " . $page . " " . _r("of") . " " . $pages . " [ ";
+ if ($from_page > 1) {
+ $back_page = $from_page - 10;
+ if ($back_page < 1) $back_page = 1;
+ echo "< ";
+ }
+ for ($i = $from_page; $i <= $to_page; $i++) {
+ if ($i != $j["query"]["page"]) {
+ echo "" . $i . " ";
+ } else {
+ echo "" . $i . " ";
+ }
+ }
+ if ($to_page < $pages) {
+ $next_page = $to_page + 10;
+ if ($next_page > $pages) $next_page = $pages;
+ if ($next_page < 1) $next_page = 1;
+ echo "> ";
+ }
+ echo "]";
+ }
+
+ foreach ($j["packages"] as $package) {
$package_url = $url_prefix . $repo . "/" . $package["name"];
echo "". $package["name"] . ": " . $package["summary"] . "";
}