forked from uup-dump/api
Added support of saving multiple updates received from server
This commit is contained in:
parent
0ca9f5be68
commit
32e9b283e1
51
fetchupd.php
51
fetchupd.php
@ -66,17 +66,50 @@ function uupFetchUpd($arch = 'amd64', $ring = 'WIF', $flight = 'Active', $build
|
|||||||
$out = html_entity_decode($out);
|
$out = html_entity_decode($out);
|
||||||
consoleLogger('Information has been successfully fetched.');
|
consoleLogger('Information has been successfully fetched.');
|
||||||
|
|
||||||
consoleLogger('Checking build information...');
|
|
||||||
preg_match_all('/<UpdateInfo>.*?<\/UpdateInfo>/', $out, $updateInfos);
|
preg_match_all('/<UpdateInfo>.*?<\/UpdateInfo>/', $out, $updateInfos);
|
||||||
$updateInfo = preg_grep('/<Action>Install<\/Action>/', $updateInfos[0]);
|
$updateInfo = preg_grep('/<Action>Install<\/Action>/', $updateInfos[0]);
|
||||||
sort($updateInfo);
|
sort($updateInfo);
|
||||||
|
|
||||||
if(empty($updateInfo[0])) {
|
if(empty($updateInfo)) {
|
||||||
consoleLogger('An error has occurred');
|
consoleLogger('An error has occurred');
|
||||||
return array('error' => 'NO_UPDATE_FOUND');
|
return array('error' => 'NO_UPDATE_FOUND');
|
||||||
}
|
}
|
||||||
|
|
||||||
$updateNumId = preg_replace('/<UpdateInfo><ID>|<\/ID>.*/i', '', $updateInfo[0]);
|
$errorCount = 0;
|
||||||
|
$updatesNum = count($updateInfo);
|
||||||
|
$num = 0;
|
||||||
|
$updateArray = array();
|
||||||
|
|
||||||
|
foreach($updateInfo as $val) {
|
||||||
|
$num++;
|
||||||
|
consoleLogger("Checking build information for update {$num} of {$updatesNum}...");
|
||||||
|
|
||||||
|
$info = parseFetchUpdate($val, $out, $arch, $ring, $flight, $build);
|
||||||
|
if(isset($info['error'])) {
|
||||||
|
$errorCount++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$updateArray[] = $info;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($errorCount == $updatesNum) {
|
||||||
|
return array('error' => 'EMPTY_FILELIST');
|
||||||
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'apiVersion' => uupApiVersion(),
|
||||||
|
'updateId' => $updateArray[0]['updateId'],
|
||||||
|
'updateTitle' => $updateArray[0]['updateTitle'],
|
||||||
|
'foundBuild' => $updateArray[0]['foundBuild'],
|
||||||
|
'arch' => $updateArray[0]['arch'],
|
||||||
|
'fileWrite' => $updateArray[0]['foundBuild'],
|
||||||
|
'updateArray' => $updateArray,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseFetchUpdate($updateInfo, $out, $arch, $ring, $flight, $build) {
|
||||||
|
$updateNumId = preg_replace('/<UpdateInfo><ID>|<\/ID>.*/i', '', $updateInfo);
|
||||||
|
|
||||||
$updates = preg_replace('/<Update>/', "\n<Update>", $out);
|
$updates = preg_replace('/<Update>/', "\n<Update>", $out);
|
||||||
preg_match_all('/<Update>.*<\/Update>/', $updates, $updates);
|
preg_match_all('/<Update>.*<\/Update>/', $updates, $updates);
|
||||||
@ -93,7 +126,7 @@ function uupFetchUpd($arch = 'amd64', $ring = 'WIF', $flight = 'Active', $build
|
|||||||
return array('error' => 'EMPTY_FILELIST');
|
return array('error' => 'EMPTY_FILELIST');
|
||||||
}
|
}
|
||||||
|
|
||||||
preg_match('/Version\=".*?"/', $updateInfo[0], $foundBuild);
|
preg_match('/Version\=".*?"/', $updateInfo, $foundBuild);
|
||||||
$foundBuild = preg_replace('/Version="10\.0\.|"/', '', $foundBuild[0]);
|
$foundBuild = preg_replace('/Version="10\.0\.|"/', '', $foundBuild[0]);
|
||||||
|
|
||||||
$updateTitle = preg_grep('/<Title>.*<\/Title>/', $updateMeta);
|
$updateTitle = preg_grep('/<Title>.*<\/Title>/', $updateMeta);
|
||||||
@ -111,18 +144,21 @@ function uupFetchUpd($arch = 'amd64', $ring = 'WIF', $flight = 'Active', $build
|
|||||||
|
|
||||||
$isCumulativeUpdate = 0;
|
$isCumulativeUpdate = 0;
|
||||||
if(preg_match('/Cumulative Update/', $updateTitle)) {
|
if(preg_match('/Cumulative Update/', $updateTitle)) {
|
||||||
|
$isCumulativeUpdate = 1;
|
||||||
$updateTitle = preg_replace('/.*Cumulative Update/i', 'Cumulative Update', $updateTitle);
|
$updateTitle = preg_replace('/.*Cumulative Update/i', 'Cumulative Update', $updateTitle);
|
||||||
$updateTitle = preg_replace('/ for .{3,5}-based systems| \(KB.*?\)/i', '', $updateTitle);
|
$updateTitle = preg_replace('/ for .{3,5}-based systems| \(KB.*?\)/i', '', $updateTitle);
|
||||||
|
|
||||||
|
if(!preg_match("/$foundBuild/", $updateTitle)) {
|
||||||
$updateTitle = $updateTitle.' ('.$foundBuild.')';
|
$updateTitle = $updateTitle.' ('.$foundBuild.')';
|
||||||
$isCumulativeUpdate = 1;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(preg_match('/Feature update/i', $updateTitle)) {
|
if(preg_match('/Feature update/i', $updateTitle)) {
|
||||||
$updateTitle = $updateTitle.' ('.$foundBuild.')';
|
$updateTitle = $updateTitle.' ('.$foundBuild.')';
|
||||||
}
|
}
|
||||||
|
|
||||||
preg_match('/UpdateID=".*?"/', $updateInfo[0], $updateId);
|
preg_match('/UpdateID=".*?"/', $updateInfo, $updateId);
|
||||||
preg_match('/RevisionNumber=".*?"/', $updateInfo[0], $updateRev);
|
preg_match('/RevisionNumber=".*?"/', $updateInfo, $updateRev);
|
||||||
|
|
||||||
$updateId = preg_replace('/UpdateID="|"$/', '', $updateId[0]);
|
$updateId = preg_replace('/UpdateID="|"$/', '', $updateId[0]);
|
||||||
$updateRev = preg_replace('/RevisionNumber="|"$/', '', $updateRev[0]);
|
$updateRev = preg_replace('/RevisionNumber="|"$/', '', $updateRev[0]);
|
||||||
@ -218,7 +254,6 @@ function uupFetchUpd($arch = 'amd64', $ring = 'WIF', $flight = 'Active', $build
|
|||||||
}
|
}
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'apiVersion' => uupApiVersion(),
|
|
||||||
'updateId' => $updateString,
|
'updateId' => $updateString,
|
||||||
'updateTitle' => $updateTitle,
|
'updateTitle' => $updateTitle,
|
||||||
'foundBuild' => $foundBuild,
|
'foundBuild' => $foundBuild,
|
||||||
|
1
get.php
1
get.php
@ -43,6 +43,7 @@ function uupGetFiles($updateId = 'c2a1d787-647b-486d-b264-f90f3782cdc6', $usePac
|
|||||||
$info = array(
|
$info = array(
|
||||||
'ring' => 'WIF',
|
'ring' => 'WIF',
|
||||||
'flight' => 'Active',
|
'flight' => 'Active',
|
||||||
|
'arch' => 'amd64',
|
||||||
'checkBuild' => '10.0.16251.0',
|
'checkBuild' => '10.0.16251.0',
|
||||||
'files' => array(),
|
'files' => array(),
|
||||||
);
|
);
|
||||||
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
function uupApiVersion() {
|
function uupApiVersion() {
|
||||||
return '1.11.1';
|
return '1.12.0';
|
||||||
}
|
}
|
||||||
|
|
||||||
function uupApiPrintBrand() {
|
function uupApiPrintBrand() {
|
||||||
|
Loading…
Reference in New Issue
Block a user