1
0
forked from uup-dump/api

Get rid of the internal packs

This commit is contained in:
eraseyourknees@gmail.com 2022-08-25 03:34:25 +02:00
parent a0f0574a81
commit 16d048df08
466 changed files with 6 additions and 160 deletions
shared
main.phppacks.php
packs
01aa5ff6134e1c0227296a4930e4e6a5ffefcf79.json.gz01f6f08c13b51ce653628c50ca1be0dd34b2c763.json.gz0208081a42780c39f08f2601b3353920cbf30dc5.json.gz0377581574aec8b9130b053cfd8dfdbfa997dd19.json.gz038c28be7ad321b41623761c6bd695ed955667d2.json.gz03fa71d55c5e176eebef164c5e586ff5d355ec08.json.gz045feaa1029a2e8f8cb26307bd1ae6937427b410.json.gz0493cccaf960aed7043c158d407842d2f470195a.json.gz059be6b8f19bccd352781c7f6ae4c8955337753b.json.gz06d08afbbaaa9f7c6615b75021a07e02fd5fa471.json.gz0778039009ea692daaf8055696c77ac782cb6473.json.gz07d1224076d0664a17c82c0c58cf510cb01766b5.json.gz07e64b8c2d61b0009882e8c7c1cb207fa583102c.json.gz07ea73a8992609a1fb06f541ae628ff296a73c82.json.gz085e122884a89daf3ae6e68860ca9ed02eb81acb.json.gz08c1bdf1f74e89645235e2175dec2fa34c74379b.json.gz0a4729feab2b0d449ecdc1eddfd10b85f4b4b4e4.json.gz0a6de460717d8ad9560defaa0f7755856fdb0380.json.gz0a9ee16fe5c26d7c4f6946305b284c780864a9fd.json.gz0b13c3cb2d6d33e427af3e23cf0a950f0b54182c.json.gz0be28e7f73786ceefe01edeea555fb6b613c2133.json.gz0cb25a1edf29b6898b8ba214bc3090990b4e0f7f.json.gz0d00590097570276e3dd9755db1e3d9a80e7f49b.json.gz0da899e3b907a7cc1c6d8a50aa526262fbbc4fb0.json.gz0f46071c133d66face6c06ce5e833533566c3436.json.gz0fdb20000af32d84a1f7b12fe056c54f0b8c6c77.json.gz1004746e37fcfd8fcc91b5d5f3e489e29af382e4.json.gz110c98dda044f3b69ad0a30df1b5a1bede94901d.json.gz115da76cb9527e16fb30152c349f3fb2652dae1e.json.gz1163d6ee8220e8b58d4dc30b5744ebace707a0dd.json.gz130a78345067dc58156ffddc0616a3b6b934d139.json.gz13e602e31dc0f54c33410ca827510e4c04b173ce.json.gz14339b9651dc5bf690a3d713e33729f89ea117c9.json.gz1436f40615c1779758385f34f5d58615001b74f4.json.gz1504efbff5b65730ed0b0ca91bfa431b314adbd1.json.gz160fff573d9d789983796b7695d2fa4c42c1f912.json.gz163f57f1e53c33d0660b37348de67d6e35347567.json.gz169bcfee3dacfd77ee445172155d8ea9b04fdffd.json.gz16b7aca08fb425083620fc5247500371be064b87.json.gz16d6fe416895982d453c6aa0dbcf4029536a4189.json.gz188a5f8cd14909f8a9d5efef6af61564087b6932.json.gz1894fbf96c63b2d1bcc5a5509d0090fd943a8259.json.gz18c294d075c67272097d4b9f6d7646b38c828a39.json.gz1a52d5dd30a90208c10f13b646bfad88b2c4c87f.json.gz1ab121756291435c1240ff73026ca09cb01d8fee.json.gz1af61b62116fcba3309251501b56857a7f6e90ba.json.gz1b78d65d213bc926c0dd0925b6c9d1ade6dc11ff.json.gz1be1f76a28002e22c593a6632065da60ad0ff9be.json.gz1bf3fe050212893942dff7726962173da41d75dc.json.gz1c0da2879bbc83b6701e069c66f0a745fb7c2870.json.gz1c5d4a56716eee39c652445f6d6a92995cea8031.json.gz1c8cfc71d7554c6743c38440ad3e5867e862f92d.json.gz1ceaa725fad2d752bc6c6bb26423a29c97eaf0b4.json.gz1e777b7b7b5eed3f3facbee1ad592e269dcbeb0f.json.gz1e8bc5333c92aa95421036b17b198679d2c88cf8.json.gz1e9cbc2bc1b80304838def973aa8246013bad742.json.gz1f3d6eb702c2bda91f7e8e5247ffcce6c8bdee17.json.gz20636b9f7802215ae681e3f37d8f9b2a557012ca.json.gz21063b327036c66da110c3dd05eb39dfd0139d6f.json.gz21354f2d52ef04754785ebbc2f58734928d39355.json.gz219373bbdd267c636bc09ae8661b04c3683b31c2.json.gz21f71d842489390c56547c3ba0bf282ec285b392.json.gz22c7a1aca5e636221131e8ffbd95539d1be9076c.json.gz22e6e86b3602f06c20cd21256406eadcd8a8824a.json.gz23fb6d223a9d0712b19d80f5f814587863fdc9ca.json.gz24a4b24b02314197a651d7e0b6522a0bb7245b41.json.gz24df4f734aa360eceab6ecb725b00a6a76abc8d6.json.gz25404f74e050aacf3b69116abe4590535e179eb9.json.gz255c210f4e5eb09ab8e92a634ebdbb3a8037e4f6.json.gz2606035ed49bb6958a64b0c2f126cc5c2bd2f419.json.gz27438affdb50231e6e0927c867cc018e5480dc9d.json.gz274ffe8379f7682b3146428a12e7981c296b2b26.json.gz281b00c4172534b9ce227206cdbfb582e91de781.json.gz2861eb9f3c650b613c63d3adb8716377cc67bd01.json.gz28f5a319bd46f4e3d8c6b7a17249b71314124f8c.json.gz298c448a2317673636162e124e7ff509756491f3.json.gz299e358dbe33f3b9bb584c5876513dfdbe7b196e.json.gz2b128cbc6728738c1eb0f9a205a0a70badeabf07.json.gz2b5e0d2c0369da9d749023ee264383737fd8a9b7.json.gz2c7da70eb338967cec932a604ea01cde6ce715ad.json.gz2dd0a3673dda8695f351f82446aa9899a2e6ab8e.json.gz2e26ad5e1af137e7e220e405856b3c87a3b1da7b.json.gz2e3a9f9b68725db19eea00d2c2359158f00faa7d.json.gz2f430bb88ceef3f116fc25dd0100a1942318b16c.json.gz3013879423c0d29a3eb7382fec86a4799fd80089.json.gz32040bfb2773874a2712ed9b6e6006b8f486cf6d.json.gz3375f301dca9f3ad6be43e5096e6ecbd84104fef.json.gz35097891a957dd54d308dd0abfea9acb8eef99f7.json.gz360e162a278a3fb07110486b59908a37dbbe0841.json.gz36396abc9e8841169254002e35c8e93d53c43be5.json.gz3694794dad29fd02b78a9bc1334afb6a8843fae7.json.gz36eaef4337fb96921641e3c7ad02f499a48e21ce.json.gz36ed51491903310627801cfe68b506ab6b4bb068.json.gz37710432d7cee3fc8960627a2f3869f5ae01df5b.json.gz3772c688dcc854cc5e8e0d471f508e1f4a593084.json.gz37b5b3c19b34738c772e28df142fde00cb9a4991.json.gz37eff78e60b3bbf4b8854e2598eab556100f54d3.json.gz382b388c206b75d59106cd1af288ed86dd37959f.json.gz

@ -16,7 +16,7 @@ limitations under the License.
*/
function uupApiVersion() {
return '1.32.4';
return '1.33.0-dev';
}
require_once dirname(__FILE__).'/auths.php';

@ -202,165 +202,12 @@ function uupGetInfoTexts() {
}
function uupGetGenPacks($build = 15063, $arch = null, $updateId = null) {
$internalPacks = dirname(__FILE__).'/packs';
if(empty($updateId)) return [];
if(!file_exists('packs/'.$updateId.'.json.gz')) return [];
if(!file_exists($internalPacks.'/metadata.json')) {
if(!uupCreateInternalPacksMetadata($internalPacks)) {
return array();
}
}
if(!empty($updateId)) {
if(file_exists('packs/'.$updateId.'.json.gz')) {
$genPack = @gzdecode(@file_get_contents('packs/'.$updateId.'.json.gz'));
if(empty($genPack)) return array();
$genPack = json_decode($genPack, 1);
return $genPack;
}
}
$metadata = @file_get_contents($internalPacks.'/metadata.json');
if(empty($metadata)) {
return array();
} else {
$metadata = json_decode($metadata, 1);
}
$hashDetermined = 0;
$useAllHashesForBuild = 0;
if($updateId) {
if(isset($metadata['knownIds'][$updateId])) {
$hash = $metadata['knownIds'][$updateId];
$hashDetermined = 1;
}
}
if(!$hashDetermined) {
foreach($metadata['knownBuilds'] as $buildNum => $val) {
if($build < $buildNum) continue;
$useBuild = $buildNum;
break;
}
if(!isset($useBuild)) {
return array();
}
if(!$arch && !isset($metadata['knownBuilds'][$useBuild][$arch])) {
$genPack = array();
foreach($metadata['knownBuilds'][$useBuild] as $hash) {
$temp = @gzdecode(@file_get_contents($internalPacks.'/'.$hash.'.json.gz'));
if(!empty($temp)) {
$temp = json_decode($temp, 1);
$genPack = array_merge_recursive($genPack, $temp);
unset($temp);
}
}
} elseif(!isset($metadata['knownBuilds'][$useBuild][$arch])) {
return array();
} else {
$hash = $metadata['knownBuilds'][$useBuild][$arch];
}
}
if(!isset($genPack)) {
$genPack = @gzdecode(@file_get_contents($internalPacks.'/'.$hash.'.json.gz'));
if(!empty($genPack)) {
$genPack = json_decode($genPack, 1);
} else {
$genPack = array();
}
}
$genPack = @gzdecode(@file_get_contents('packs/'.$updateId.'.json.gz'));
if(empty($genPack)) return [];
$genPack = json_decode($genPack, 1);
return $genPack;
}
//Function to regenerate internal packs. Should not be used when not needed.
function uupCreateInternalPacksMetadata($internalPacks) {
$metadataCreationAllowed = 0;
if(!$metadataCreationAllowed) return false;
$builds = uupListIds();
if(isset($ids['error'])) {
return false;
}
$builds = $builds['builds'];
if(!file_exists('packs')) return false;
if(!file_exists($internalPacks)) {
if(!mkdir($internalPacks)) {
return false;
}
} else {
rmdir($internalPacks);
mkdir($internalPacks);
}
$files = scandir('packs');
$files = preg_grep('/\.json.gz$/', $files);
$packs = array();
foreach($builds as $build) {
$uuid = $build['uuid'];
$file = $uuid.'.json.gz';
if(!file_exists('packs/'.$file)) continue;
$genPack = @gzdecode(@file_get_contents('packs/'.$file));
$hash = hash('sha1', $genPack);
if(!file_exists($internalPacks.'/'.$hash.'.json.gz')) {
if(!copy('packs/'.$file, $internalPacks.'/'.$hash.'.json.gz')) {
return false;
}
}
$packs['knownIds'][$uuid] = $hash;
$buildNum = explode('.', $build['build']);
$buildNum = $buildNum[0];
$packs['knownBuilds'][$buildNum][$build['arch']] = $hash;
}
file_put_contents($internalPacks.'/metadata.json', json_encode($packs)."\n");
return true;
}
//Emulation of legacy packs. Do not use in new scripts due to extremely slow process.
function uupGetPacks($build = 15063) {
$returnArray = uupGetInfoTexts();
$genPack = uupGetGenPacks($build);
foreach($genPack as $lang => $editions) {
$packsForLangs[$lang] = array_keys($editions);
$packsForLangs[$lang][] = $lang;
foreach(array_keys($editions) as $edition) {
foreach($editions[$edition] as $name) {
$newName = preg_replace('/^cabs_|^metadataesd_|~31bf3856ad364e35/i', '', $name);
$newName = preg_replace('/~~\.|~\./', '.', $newName);
$newName = preg_replace('/~/', '-', $newName);
$newName = strtolower($newName);
$packs[$lang][$edition][] = $newName;
}
$editionPacks[$edition] = $edition;
$packs[$edition][$edition] = array();
$skipNeutral[$edition] = 1;
$skipLangPack[$edition] = 1;
}
}
$returnArray['packs'] = $packs;
$returnArray['packsForLangs'] = $packsForLangs;
$returnArray['editionPacks'] = $editionPacks;
$returnArray['skipNeutral'] = $skipNeutral;
$returnArray['skipLangPack'] = $skipLangPack;
return $returnArray;
}

Some files were not shown because too many files have changed in this diff Show More