get.php: Fix cache

This commit is contained in:
eraseyourknees 2022-10-23 17:58:14 +02:00
parent b0f78dedbc
commit c5d4090bac

35
get.php
View File

@ -161,7 +161,7 @@ function uupGetFiles(
} }
if($requestType < 2) { if($requestType < 2) {
$filesInfoList = uupGetOnlineFiles($updateId, $rev, $info, $type); $filesInfoList = uupGetOnlineFiles($updateId, $rev, $info, $requestType, $type);
} else { } else {
$filesInfoList = uupGetOfflineFiles($info); $filesInfoList = uupGetOfflineFiles($info);
} }
@ -354,18 +354,28 @@ function uupGetFiles(
if($requestType > 0) { if($requestType > 0) {
$cacheData = $data; $cacheData = $data;
$cache->put($cacheData, 90); $cache->put($cacheData, 30);
} }
return $data; return $data;
} }
function uupGetOnlineFiles($updateId, $rev, $info, $type) { function uupGetOnlineFiles($updateId, $rev, $info, $cacheRequests, $type) {
$fetchTime = time(); $res = "api-get-online-${updateId}_rev.$rev";
consoleLogger('Fetching information from the server...'); $cache = new UupDumpCache($res);
$postData = composeFileGetRequest($updateId, uupDevice(), $info, $rev, $type); $fromCache = $cache->get();
$out = sendWuPostRequest('https://fe3cr.delivery.mp.microsoft.com/ClientWebService/client.asmx/secured', $postData); $cached = ($fromCache !== false);
consoleLogger('Information has been successfully fetched.');
if($cached) {
$out = $fromCache['out'];
$fetchTime = $fromCache['fetchTime'];
} else {
$fetchTime = time();
consoleLogger('Fetching information from the server...');
$postData = composeFileGetRequest($updateId, uupDevice(), $info, $rev, $type);
$out = sendWuPostRequest('https://fe3cr.delivery.mp.microsoft.com/ClientWebService/client.asmx/secured', $postData);
consoleLogger('Information has been successfully fetched.');
}
consoleLogger('Parsing information...'); consoleLogger('Parsing information...');
$xmlOut = @simplexml_load_string($out); $xmlOut = @simplexml_load_string($out);
@ -465,6 +475,15 @@ function uupGetOnlineFiles($updateId, $rev, $info, $type) {
} }
} }
if($cacheRequests == 1 && $cached == 0) {
$cacheData = [
'out' => $out,
'fetchTime' => $fetchTime,
];
$cache->put($cacheData, 90);
}
return $files; return $files;
} }