diff --git a/rss.php b/rss.php new file mode 100644 index 0000000..fcf92c3 --- /dev/null +++ b/rss.php @@ -0,0 +1,71 @@ + + + + TCL OTA + https://tclota.birth-online.de/timeline.php + TCL OTA updates +getAllVariantsByRef(); +$unknowns = $db->getUnknownRefs(); +if (count($unknowns) > 0) { + foreach ($unknowns as $uref) { + $allVars[$uref] = array( + 'family' => 'Unknown', + 'model' => 'Model', + 'variant' => '', + ); + } +} + +/* + * NOTE: it would be nice to have a filter for device id to be able to subscribe only to specific model/variant + */ + +$allfiles = $db->getAllFiles($db::FULL_ONLY); +foreach ($allfiles as $file) { + $updates = $db->getAllUpdatesForFile($file['sha1']); + $validRefs = array(); + $validDevs = array(); + $firstSeen = new DateTime(); + $firstSeen->setTimezone(new DateTimeZone('CET')); + foreach ($updates as $u) { + $dev = $allVars[$u['curef']]; + $validRefs[] = $u['curef']; + $validDevs[] = $dev['family'] . ' ' . $dev['model']; + $firstSeenDate = new DateTime($u['seenDate']); + $firstSeenDate->setTimezone(new DateTimeZone('CET')); + if ($firstSeenDate < $firstSeen) { + $firstSeen = $firstSeenDate; + } + } + $validDevs = array_unique($validDevs); + sort($validDevs); + $device = $allVars[$updates[0]['curef']]; + $date = new DateTime($file['published_first']); + $date->setTimezone(new DateTimeZone('CET')); + $dateLast = new DateTime($file['published_last']); + $dateLast->setTimezone(new DateTimeZone('CET')); + echo ''; + echo '' . $file['tv'] . ''; + echo 'https://tclota.birth-online.de/timeline.php'; + echo ''; + if ($file['fv']) { + echo '(OTA from ' . $file['fv'] . ')'; + } + echo $date->format('Y-m-d') . ' ' . $date->format('H:i.s') . ' CET
'; + echo 'Devices: ' . implode(', ', $validDevs) . '
'; + echo 'Last released: ' . $dateLast->format('Y-m-d H:i.s') . ' (first seen in the wild: ' . $firstSeen->format('Y-m-d H:i.s') . ')
'; + echo 'Valid for (order of release): ' . implode(', ', $validRefs) . '
'; + +} + +?> +
+