diff --git a/fetchupd.php b/fetchupd.php index 30bb128..c0a2c28 100644 --- a/fetchupd.php +++ b/fetchupd.php @@ -17,6 +17,7 @@ limitations under the License. require_once dirname(__FILE__).'/shared/main.php'; require_once dirname(__FILE__).'/shared/requests.php'; +require_once dirname(__FILE__).'/shared/cache.php'; require_once dirname(__FILE__).'/listid.php'; function uupFetchUpd( @@ -90,23 +91,10 @@ function uupFetchUpd( $type = 'Production'; } - $cacheHash = hash('sha256', strtolower("api-fetch-$arch-$ring-$flight-$build-$minor-$sku-$type")); - $cached = 0; - - if(file_exists('cache/'.$cacheHash.'.json.gz') && $cacheRequests == 1) { - $cache = @gzdecode(@file_get_contents('cache/'.$cacheHash.'.json.gz')); - $cache = json_decode($cache, 1); - - if(!empty($cache['content']) && ($cache['expires'] > time())) { - consoleLogger('Using cached response...'); - $out = $cache['content']; - $cached = 1; - } else { - $cached = 0; - } - - unset($cache); - } + $res = "api-fetch-$arch-$ring-$flight-$build-$minor-$sku-$type"; + $cache = new UupDumpCache($res); + $out = $cache->get(); + $cached = ($out !== false); if(!$cached) { consoleLogger('Fetching information from the server...'); @@ -117,15 +105,7 @@ function uupFetchUpd( consoleLogger('Information has been successfully fetched.'); if($cacheRequests == 1) { - $cache = array( - 'expires' => time()+120, - 'content' => $out, - ); - - if(!file_exists('cache')) mkdir('cache'); - @file_put_contents('cache/'.$cacheHash.'.json.gz', gzencode(json_encode($cache)."\n")); - - unset($cache); + $cache->put($out, 120); } } diff --git a/get.php b/get.php index 9df044c..d98e437 100644 --- a/get.php +++ b/get.php @@ -18,6 +18,7 @@ limitations under the License. require_once dirname(__FILE__).'/shared/main.php'; require_once dirname(__FILE__).'/shared/requests.php'; require_once dirname(__FILE__).'/shared/packs.php'; +require_once dirname(__FILE__).'/shared/cache.php'; /* $updateId = Update Identifier @@ -348,26 +349,15 @@ function uupGetFiles( } function uupGetOnlineFiles($updateId, $rev, $info, $cacheRequests, $type) { - $cacheHash = hash('sha256', strtolower("api-get-${updateId}_rev.$rev")); - $cached = 0; + $res = "api-get-${updateId}_rev.$rev"; + $cache = new UupDumpCache($res); + $fromCache = $cache->get(); + $cached = ($fromCache !== false); - if(file_exists('cache/'.$cacheHash.'.json.gz') && $cacheRequests == 1) { - $cache = @gzdecode(@file_get_contents('cache/'.$cacheHash.'.json.gz')); - $cache = json_decode($cache, 1); - - if(!empty($cache['content']) && ($cache['expires'] > time())) { - consoleLogger('Using cached response...'); - $out = $cache['content']; - $fetchTime = $cache['fetchTime']; - $cached = 1; - } else { - $cached = 0; - } - - unset($cache); - } - - if(!$cached) { + if($cached) { + $out = $fromCache['out']; + $fetchTime = $fromCache['fetchTime']; + } else { $fetchTime = time(); consoleLogger('Fetching information from the server...'); $postData = composeFileGetRequest($updateId, uupDevice(), $info, $rev, $type); @@ -378,7 +368,7 @@ function uupGetOnlineFiles($updateId, $rev, $info, $cacheRequests, $type) { consoleLogger('Parsing information...'); $xmlOut = @simplexml_load_string($out); if($xmlOut === false) { - @unlink('cache/'.$cacheHash.'.json.gz'); + $cache->delete(); return array('error' => 'XML_PARSE_ERROR'); } @@ -474,14 +464,12 @@ function uupGetOnlineFiles($updateId, $rev, $info, $cacheRequests, $type) { } if($cacheRequests == 1 && $cached == 0) { - $cache = array( - 'expires' => time()+90, - 'content' => $out, + $cacheData = [ + 'out' => $out, 'fetchTime' => $fetchTime, - ); + ]; - if(!file_exists('cache')) mkdir('cache'); - @file_put_contents('cache/'.$cacheHash.'.json.gz', gzencode(json_encode($cache)."\n")); + $cache->put($cacheData, 90); } return $files;