summaryrefslogtreecommitdiff
path: root/mirrors/active.php
blob: 2294fb43a07c6fc7840e9fe01ccc014d4c31afa2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
require_once "../init.php";

require_once BASE . "/lib/mysql.php";
require_once BASE . "/lib/format.php";

$result = mysql_run_query(
  "SELECT " .
  "`mirror_statuses`.`protocol`," .
  "`mirror_statuses`.`url`," .
  "`mirror_statuses`.`country`," .
  "`mirror_statuses`.`country_code`," .
  "`mirror_statuses`.`last_sync`," .
  "`mirror_statuses`.`start`," .
  "`mirror_statuses`.`isos`," .
  "`mirror_statuses`.`ipv4`," .
  "`mirror_statuses`.`ipv6`," .
  "`mirror_statuses`.`active`," .
  "(`mirror_statuses`.`active` AND (`mirror_statuses`.`start` > UNIX_TIMESTAMP(NOW()) - 3600)) AS `recently_active`" .
  " FROM `mirror_statuses`" .
  " JOIN (" .
    "SELECT " .
    "`mirror_statuses`.`url`," .
    "MAX(`mirror_statuses`.`start`) AS `start`" .
    " FROM `mirror_statuses` GROUP BY `url`" .
  ") AS `max_mirror`" .
  " ON `mirror_statuses`.`url`=`max_mirror`.`url`" .
  " AND `mirror_statuses`.`start`=`max_mirror`.`start`" .
  " ORDER BY `mirror_statuses`.`url`"
);

while($row = $result->fetch_assoc()) {
  foreach (array(
    "start",
    "isos",
    "ipv4",
    "ipv6",
    "active"
  ) as $key)
    $row[$key] = floatval($row[$key]);
  foreach (array(
    "start",
    "last_sync"
  ) as $key)
    $row[$key] = gmdate("Y-m-d\TH:i:s\Z", $row[$key]);
  $content[] = $row;
}

export_as_requested($content);