forked from uup-dump/api
		
	Improve caching
This commit is contained in:
		
							
								
								
									
										30
									
								
								fetchupd.php
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								fetchupd.php
									
									
									
									
									
								
							| @@ -94,21 +94,15 @@ function uupFetchUpd( | ||||
|  | ||||
|     $res = "api-fetch-$arch-$ring-$flight-$build-$minor-$sku-$type"; | ||||
|     $cache = new UupDumpCache($res); | ||||
|     $out = $cache->get(); | ||||
|     $cached = ($out !== false); | ||||
|     $fromCache = $cache->get(); | ||||
|     if($fromCache !== false) return $fromCache; | ||||
|  | ||||
|     if(!$cached) { | ||||
|         consoleLogger('Fetching information from the server...'); | ||||
|         $postData = composeFetchUpdRequest(uupDevice(), uupEncryptedData(), $arch, $flight, $ring, $build, $sku, $type); | ||||
|         $out = sendWuPostRequest('https://fe3cr.delivery.mp.microsoft.com/ClientWebService/client.asmx', $postData); | ||||
|     consoleLogger('Fetching information from the server...'); | ||||
|     $postData = composeFetchUpdRequest(uupDevice(), uupEncryptedData(), $arch, $flight, $ring, $build, $sku, $type); | ||||
|     $out = sendWuPostRequest('https://fe3cr.delivery.mp.microsoft.com/ClientWebService/client.asmx', $postData); | ||||
|  | ||||
|         $out = html_entity_decode($out); | ||||
|         consoleLogger('Information has been successfully fetched.'); | ||||
|  | ||||
|         if($cacheRequests == 1) { | ||||
|             $cache->put($out, 120); | ||||
|         } | ||||
|     } | ||||
|     $out = html_entity_decode($out); | ||||
|     consoleLogger('Information has been successfully fetched.'); | ||||
|  | ||||
|     preg_match_all('/<UpdateInfo>.*?<\/UpdateInfo>/', $out, $updateInfos); | ||||
|     $updateInfo = preg_grep('/<IsLeaf>true<\/IsLeaf>/', $updateInfos[0]); | ||||
| @@ -141,7 +135,7 @@ function uupFetchUpd( | ||||
|         return array('error' => 'EMPTY_FILELIST'); | ||||
|     } | ||||
|  | ||||
|     return array( | ||||
|     $data = [ | ||||
|         'apiVersion' => uupApiVersion(), | ||||
|         'updateId' => $updateArray[0]['updateId'], | ||||
|         'updateTitle' => $updateArray[0]['updateTitle'], | ||||
| @@ -149,7 +143,13 @@ function uupFetchUpd( | ||||
|         'arch' => $updateArray[0]['arch'], | ||||
|         'fileWrite' => $updateArray[0]['fileWrite'], | ||||
|         'updateArray' => $updateArray, | ||||
|     ); | ||||
|     ]; | ||||
|  | ||||
|     if($cacheRequests == 1) { | ||||
|         $cache->put($data, 120); | ||||
|     } | ||||
|  | ||||
|     return $data; | ||||
| } | ||||
|  | ||||
| function parseFetchUpdate($updateInfo, $out, $arch, $ring, $flight, $build, $sku, $type) { | ||||
|   | ||||
							
								
								
									
										50
									
								
								get.php
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								get.php
									
									
									
									
									
								
							| @@ -47,6 +47,12 @@ function uupGetFiles( | ||||
|         return array('error' => 'INCORRECT_ID'); | ||||
|     } | ||||
|  | ||||
|     $edition = is_array($desiredEdition) ? implode('_', $desiredEdition) : $desiredEdition; | ||||
|     $res = "api-get-${updateId}_${usePack}_${edition}_${requestType}"; | ||||
|     $cache = new UupDumpCache($res); | ||||
|     $fromCache = $cache->get(); | ||||
|     if($fromCache !== false) return $fromCache; | ||||
|  | ||||
|     $info = uupApiReadFileinfo($updateId); | ||||
|     if(empty($info)) { | ||||
|         $info = array( | ||||
| @@ -155,7 +161,7 @@ function uupGetFiles( | ||||
|     } | ||||
|  | ||||
|     if($requestType < 2) { | ||||
|         $filesInfoList = uupGetOnlineFiles($updateId, $rev, $info, $requestType, $type); | ||||
|         $filesInfoList = uupGetOnlineFiles($updateId, $rev, $info, $type); | ||||
|     } else { | ||||
|         $filesInfoList = uupGetOfflineFiles($info); | ||||
|     } | ||||
| @@ -336,7 +342,7 @@ function uupGetFiles( | ||||
|  | ||||
|     consoleLogger('Successfully parsed the information.'); | ||||
|  | ||||
|     return array( | ||||
|     $data = [ | ||||
|         'apiVersion' => uupApiVersion(), | ||||
|         'updateName' => $updateName, | ||||
|         'arch' => $updateArch, | ||||
| @@ -344,25 +350,22 @@ function uupGetFiles( | ||||
|         'sku' => $updateSku, | ||||
|         'hasUpdates' => $hasUpdates, | ||||
|         'files' => $files, | ||||
|     ); | ||||
|     ]; | ||||
|  | ||||
|     if($requestType > 0) { | ||||
|         $cacheData = $data; | ||||
|         $cache->put($cacheData, 90); | ||||
|     } | ||||
|  | ||||
|     return $data; | ||||
| } | ||||
|  | ||||
| function uupGetOnlineFiles($updateId, $rev, $info, $cacheRequests, $type) { | ||||
|     $res = "api-get-${updateId}_rev.$rev"; | ||||
|     $cache = new UupDumpCache($res); | ||||
|     $fromCache = $cache->get(); | ||||
|     $cached = ($fromCache !== false); | ||||
|  | ||||
|     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.'); | ||||
|     } | ||||
| function uupGetOnlineFiles($updateId, $rev, $info, $type) { | ||||
|     $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...'); | ||||
|     $xmlOut = @simplexml_load_string($out); | ||||
| @@ -462,15 +465,6 @@ function uupGetOnlineFiles($updateId, $rev, $info, $cacheRequests, $type) { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if($cacheRequests == 1 && $cached == 0) { | ||||
|         $cacheData = [ | ||||
|             'out' => $out, | ||||
|             'fetchTime' => $fetchTime, | ||||
|         ]; | ||||
|  | ||||
|         $cache->put($cacheData, 90); | ||||
|     } | ||||
|  | ||||
|     return $files; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user