From ebbe6374fc9c308daf729d2ad1b2f8007ed771ce Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Mon, 17 Feb 2014 05:34:43 -0500 Subject: [PATCH] Merge remote-tracking branch 'origin/stable-3.0.5' --- interface/lib/classes/aps_crawler.inc.php | 39 ++++++++++++++++++++++++++++++--------- 1 files changed, 30 insertions(+), 9 deletions(-) diff --git a/interface/lib/classes/aps_crawler.inc.php b/interface/lib/classes/aps_crawler.inc.php index 635b812..7bb2650 100644 --- a/interface/lib/classes/aps_crawler.inc.php +++ b/interface/lib/classes/aps_crawler.inc.php @@ -288,11 +288,26 @@ $sxe = new SimpleXMLElement($xml); $namespaces = $sxe->getDocNamespaces(true); foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url); + + //Find highest version + $app_version = "0.0.0"; + $entry_pos = 1; + for ($p = 1; ; $p++) { + $app_version_tmp = parent::getXPathValue($sxe, 'entry[position()=' . $p . ']/a:version'); + if (strlen($app_version_tmp) < 1) break; + if (version_compare($app_version_tmp, $app_version) >= 0) { + $app_version = $app_version_tmp; + $entry_pos = $p; + } + } // Fetching values of interest - $app_name = parent::getXPathValue($sxe, 'entry[position()=1]/a:name'); - $app_version = parent::getXPathValue($sxe, 'entry[position()=1]/a:version'); - $app_release = parent::getXPathValue($sxe, 'entry[position()=1]/a:release'); + //$app_name = parent::getXPathValue($sxe, 'entry[position()=1]/a:name'); + //$app_version = parent::getXPathValue($sxe, 'entry[position()=1]/a:version'); + //$app_release = parent::getXPathValue($sxe, 'entry[position()=1]/a:release'); + $app_name = parent::getXPathValue($sxe, "entry[position()=" . $entry_pos . "]/a:name"); + $app_version = parent::getXPathValue($sxe, "entry[position()=" . $entry_pos . "]/a:version"); + $app_release = parent::getXPathValue($sxe, "entry[position()=" . $entry_pos . "]/a:release"); // Find out a (possibly) existing package version $ex_ver = ''; @@ -315,9 +330,12 @@ // Check if we already have an old version of this app if(!empty($ex_ver) && version_compare($new_ver, $ex_ver) == 1) $apps_updated++; - $app_dl = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='aps']/@href"); - $app_filesize = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='aps']/@length"); - $app_metafile = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='meta']/@href"); + //$app_dl = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='aps']/@href"); + //$app_filesize = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='aps']/@length"); + //$app_metafile = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='meta']/@href"); + $app_dl = parent::getXPathValue($sxe, "entry[position()=" . $entry_pos . "]/link[@a:type='aps']/@href"); + $app_filesize = parent::getXPathValue($sxe, "entry[position()=" . $entry_pos . "]/link[@a:type='aps']/@length"); + $app_metafile = parent::getXPathValue($sxe, "entry[position()=" . $entry_pos . "]/link[@a:type='meta']/@href"); //$this->app_download_url_list[$app_name.'-'.$new_ver.'.app.zip'] = $app_dl; // Skip ASP.net packages because they can't be used at all @@ -365,7 +383,8 @@ } // Download package license - $license = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='eula']/@href"); + //$license = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='eula']/@href"); + $license = parent::getXPathValue($sxe, "entry[position()=" . $entry_pos . "]/link[@a:type='eula']/@href"); if($license != '') { $local_license = $local_intf_folder.'LICENSE'; @@ -379,7 +398,8 @@ } // Download package icon - $icon = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='icon']/@href"); + //$icon = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='icon']/@href"); + $icon = parent::getXPathValue($sxe, "entry[position()=" . $entry_pos . "]/link[@a:type='icon']/@href"); if($icon != '') { $local_icon = $local_intf_folder.basename($icon); @@ -393,7 +413,8 @@ } // Download available screenshots - $screenshots = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='screenshot']", true); + //$screenshots = parent::getXPathValue($sxe, "entry[position()=1]/link[@a:type='screenshot']", true); + $screenshots = parent::getXPathValue($sxe, "entry[position()=" . $entry_pos . "]/link[@a:type='screenshot']", true); if(!empty($screenshots)) { foreach($screenshots as $screen) -- Gitblit v1.9.1