mirror of
https://github.com/mbirth/tcl_update_db.git
synced 2024-12-27 04:54:08 +00:00
54 lines
1.4 KiB
PHP
54 lines
1.4 KiB
PHP
|
<?php
|
||
|
|
||
|
require_once __DIR__ . '/lib/autoloader.php';
|
||
|
|
||
|
use \TclUpdates\SQLiteReader;
|
||
|
|
||
|
$db = new SQLiteReader();
|
||
|
|
||
|
$refs = $db->getAllRefs();
|
||
|
$vars = $db->getAllVariantsFlat();
|
||
|
|
||
|
$output = array();
|
||
|
foreach ($refs as $ref) {
|
||
|
$updates = $db->getAllUpdates($ref);
|
||
|
|
||
|
$versions = array();
|
||
|
foreach ($updates as $update) {
|
||
|
$fv = $update['fv'];
|
||
|
$tv = $update['tv'];
|
||
|
$update['note'] = json_decode($update['note'], true);
|
||
|
$similar_refs = $db->getAllRefsForFile($update['file_sha1']);
|
||
|
$update['applies_to'] = $similar_refs;
|
||
|
if ($fv && !isset($versions[$fv])) {
|
||
|
$versions[$fv] = array('OTA_FROM' => array(), 'OTA' => array(), 'FULL' => array());
|
||
|
}
|
||
|
if (!isset($versions[$tv])) {
|
||
|
$versions[$tv] = array('OTA_FROM' => array(), 'OTA' => array(), 'FULL' => array());
|
||
|
}
|
||
|
if (!$update['fv']) {
|
||
|
$versions[$tv]['FULL'][] = $update;
|
||
|
} else {
|
||
|
$versions[$fv]['OTA_FROM'][] = $update;
|
||
|
$versions[$tv]['OTA'][] = $update;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$output[$ref] = array(
|
||
|
'curef' => $ref,
|
||
|
'variant' => $vars[$ref],
|
||
|
'versions' => $versions,
|
||
|
);
|
||
|
}
|
||
|
|
||
|
header('Content-Type: text/json');
|
||
|
|
||
|
$output = json_encode($output, JSON_PRETTY_PRINT);
|
||
|
if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) {
|
||
|
ini_set('zlib.output_compression', 'Off');
|
||
|
header('Content-Encoding: gzip');
|
||
|
$output = gzencode($output);
|
||
|
}
|
||
|
|
||
|
echo $output;
|