com web/windows: Add functionality to generate releases.json: include/listing.php

From: 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);

« previous php.webmaster (#28372) next »