コード例 #1
0
ファイル: rss.php プロジェクト: petrovnn/whodidit
$latlon = 'lat=' . ($bbox[3] + $bbox[1]) * $tile_size / 2 . '&lon=' . ($bbox[2] + $bbox[0]) * $tile_size / 2;
print <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
\t<title>WhoDidIt Feed for BBOX [{$bbox_str}]</title>
\t<description>WhoDidIt feed for BBOX [{$bbox_str}]</description>
\t<link>{$frontend_url}?{$latlon}&amp;zoom=12</link>
\t<generator>WhoDidIt</generator>
\t<ttl>60</ttl>

EOT;
date_default_timezone_set('UTC');
$count = 20;
while ($row = $res->fetch_assoc()) {
    $susp = is_changeset_suspicious($row) ? '[!] ' : '';
    if ($filter && !$susp) {
        continue;
    }
    $untitled = !$row['comment'] || strlen($row['comment']) <= 2 || substr($row['comment'], 0, 5) == 'BBOX:';
    print "\t<item>\n";
    print "\t\t<title>{$susp}User " . htmlspecialchars($row['user_name']) . " has uploaded " . ($untitled ? 'an untitled ' : 'a ') . "changeset" . ($untitled ? '' : ': &quot;' . htmlspecialchars($row['comment']) . '&quot;') . "</title>\n";
    print "\t\t<link>http://openstreetmap.org/browse/changeset/{$row['changeset_id']}</link>\n";
    $date = strtotime($row['change_time']);
    $date_str = date(DATE_RSS, $date);
    print "\t\t<pubDate>{$date_str}</pubDate>\n";
    $desc = "User <a href=\"http://openstreetmap.org/user/" . rawurlencode($row['user_name']) . "\">" . htmlspecialchars($row['user_name']) . "</a> has uploaded <a href=\"http://openstreetmap.org/browse/changeset/{$row['changeset_id']}\">a changeset</a> in your watched area using " . htmlspecialchars($row['created_by']) . ", titled \"" . htmlspecialchars($row['comment']) . "\". <a href=\"{$frontend_url}?changeset={$row['changeset_id']}&show=1\">Show it on WhoDidIt</a> or <a href=\"https://overpass-api.de/achavi/?changeset={$row['changeset_id']}\">in Achavi</a>.";
    $desc .= '<br><br>Statistics:<ul>';
    $desc .= '<li>Nodes: ' . $row['nodes_created'] . ' created, ' . $row['nodes_modified'] . ' modified, ' . $row['nodes_deleted'] . ' deleted</li>';
    $desc .= '<li>Ways: ' . $row['ways_created'] . ' created, ' . $row['ways_modified'] . ' modified, ' . $row['ways_deleted'] . ' deleted</li>';
    $desc .= '<li>Relations: ' . $row['relations_created'] . ' created, ' . $row['relations_modified'] . ' modified, ' . $row['relations_deleted'] . ' deleted</li></ul>';
コード例 #2
0
ファイル: changeset.php プロジェクト: petrovnn/whodidit
# Returns json with complete data for specified changesets. Written by Ilya Zverev, licensed WTFPL.
header('Content-type: application/json; charset=utf-8');
require 'db.inc.php';
$latest = isset($_REQUEST['latest']) && $_REQUEST['latest'] == '1';
$id = isset($_REQUEST['id']) && preg_match('/^[\\d,]+$/', $_REQUEST['id']) ? $_REQUEST['id'] : 0;
if (!$latest && !$id) {
    print '{ "error" : "id required"}';
    exit;
}
$db = connect();
if ($latest) {
    $where = '1=1 order by change_time desc limit 1';
} elseif (strpos($id, ',') === FALSE) {
    $where = 'changeset_id = ' . $_REQUEST['id'];
} else {
    $where = 'changeset_id in (' . $_REQUEST['id'] . ') order by change_time desc';
}
$res = $db->query('select * from wdi_changesets where ' . $where);
print '[';
$first = true;
while ($row = $res->fetch_assoc()) {
    if ($first) {
        $first = false;
    } else {
        print ",\n";
    }
    $row['suspicious'] = is_changeset_suspicious($row) ? 1 : 0;
    print json_encode($row);
}
print ']';