diff options
-rwxr-xr-x | checkpkgist.php | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/checkpkgist.php b/checkpkgist.php index e853081..2b8c3d7 100755 --- a/checkpkgist.php +++ b/checkpkgist.php @@ -55,13 +55,21 @@ class PkgClient { } function getPackage($name) { - $url = self::URL.'packages/'.$name.'.json'; + $url = self::URL . "p/$name.json"; $rep = $this->cache->get(__METHOD__, $url); if (!$rep) { $rep = @file_get_contents($url); $this->cache->save($rep, __METHOD__, $url); } - return ($rep ? json_decode($rep, true) : false); + if ($rep) { + $rep =json_decode($rep, true); + if (isset($rep['packages'][$name])) { + // Higher version first + uksort($rep['packages'][$name], function($a, $b) { return version_compare($b, $a); }); + } + return $rep; + } + return false; } } @@ -131,11 +139,12 @@ function run($name, $rpm) { $rpmver = "n/a"; } $pkgs = $client->getPackage($name); - if ($pkgs) { + if ($pkgs && isset($pkgs['packages'][$name])) { $maxver = ""; $maxdat = false; $display = false; - foreach ($pkgs['package']['versions'] as $pkver => $pkg) { + + foreach ($pkgs['packages'][$name] as $pkver => $pkg) { if (preg_match('/^v[\.0-9]*$/', $pkver)) { $pkver = substr($pkver, 1); } |