com web/windows: Add functionality to generate releases.json: include/listing.php
| From: | Christoph Michael Becker | Date: | Fri, 04 Oct 2019 14:38:00 +0000 |
| Subject: | com web/windows: Add functionality to generate releases.json: include/listing.php | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-28372@lists.php.net to get a copy of this message | ||
Commit: 6c8e22537b5111f7ed98b09addf10ce6fed0035d
Author: Andi Rückauer <arueckauer@github.com> Wed, 2 Oct 2019 12:06:45 +0200
Committer: Christoph M. Becker <cmbecker69@gmx.de> Fri, 4 Oct 2019 16:38:00 +0200
Parents: 9e24d21c09f9483efde80dc7ebfdeb32fd803b00
Branches: master
Link: http://git.php.net/?p=web/windows.git;a=commitdiff;h=6c8e22537b5111f7ed98b09addf10ce6fed0035d
Log:
Add functionality to generate releases.json
Changed paths:
M include/listing.php
Diff:
diff --git a/include/listing.php b/include/listing..php
index 5382fdc..3df00d1 100644
--- a/include/listing.php
+++ b/include/listing.php
@@ -42,6 +42,36 @@ function processSha256Sums($path)
}
+function generate_releases_json(array $releases)
+{
+ /*
+ * Change date format to ISO 8601
+ * Altering date format in generate_listing() could break third-party scrapers
+ */
+ foreach ($releases as &$release) {
+ foreach ($release as &$flavour) {
+ if (! is_array($flavour) || ! isset($flavour['mtime'])) {
+ continue;
+ }
+
+ try {
+ $date = new DateTimeImmutable($flavour['mtime']);
+ $flavour['mtime'] = $date->format('c');
+ } catch (Exception $exception) {
+ return false;
+ }
+ }
+ unset($flavour);
+ }
+ unset($release);
+
+ return 0 !== file_put_contents(
+ RELEASES_DIR . 'releases.json',
+ json_encode($releases, JSON_PRETTY_PRINT)
+ );
+}
+
+
function parse_file_name($v)
{
$v = str_replace(array('-Win32', '.zip'), array('', ''),
$v);
@@ -215,6 +245,7 @@ function generate_listing($path, $nmode) {
if (MODE_RELEASE === $nmode) {
generate_web_config($releases);
generate_latest_releases_html($releases);
+ generate_releases_json($releases);
}
flock($lck, LOCK_UN);