index : archweb32 | |
Archlinux32 website | gitolite user |
summaryrefslogtreecommitdiff |
author | Erich Eckner <git@eckner.net> | 2018-07-10 09:00:24 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2018-07-10 09:00:24 +0200 |
commit | 272bae0fa77072f4e6676bb49ce9ba815d93940c (patch) | |
tree | 974a77287930aba442c9643289049f6818058c6e | |
parent | 14aa04c65c693aa4b7fb32916a5dcf76d5ec1194 (diff) |
-rw-r--r-- | lib/format.php | 33 | ||||
-rw-r--r-- | mirrors/status.php | 8 |
diff --git a/lib/format.php b/lib/format.php new file mode 100644 index 0000000..c250c8a --- /dev/null +++ b/lib/format.php @@ -0,0 +1,33 @@ +<?php + +# do not include twice +if (function_exists("export_as_requested")) + return; + +require_once "../init.php"; +include_once BASE . "/lib/http.php"; + +function export_as_requested($content) { + if (isset($_GET["json"])) { + header ("Content-type: application/json"); + print json_encode( + $content, + JSON_UNESCAPED_SLASHES + ); + } elseif (isset($_GET["tsv"])) { + header ("Content-type: text/tab-separated-values"); + if (! isset($_GET["no-headers"])) + print implode("\t",array_keys($content[0])) . "\n"; + print implode( + "\n", + array_map( + function($row){ + return implode("\t",$row); + }, + $content + ) + ); + } else { + throw_http_error(406,"Not Acceptable","Unknown output format."); + } +} diff --git a/mirrors/status.php b/mirrors/status.php index 79ca3ee..d9f3274 100644 --- a/mirrors/status.php +++ b/mirrors/status.php @@ -2,6 +2,7 @@ require_once "../init.php"; require_once BASE . "/lib/mysql.php"; +require_once BASE . "/lib/format.php"; $cutoff = 86400; @@ -78,9 +79,4 @@ $content = array( "urls" => $urls ); -if (isset($_GET["json"])) { - header ("Content-type: application/json"); - print json_encode($content,JSON_UNESCAPED_SLASHES); -} else { - print "Unknown output format."; -} +export_as_requested($content); |