// Find the newest node in the DB
$iLastOSMID = $oDB->getOne("select max(osm_id) from place where osm_type = 'N'");
// Lookup the timestamp that node was created
- $sLastNodeURL = 'http://www.openstreetmap.org/api/0.6/node/'.$iLastOSMID."/1";
+ $sLastNodeURL = 'https://www.openstreetmap.org/api/0.6/node/'.$iLastOSMID."/1";
$sLastNodeXML = file_get_contents($sLastNodeURL);
+
+ if ($sLastNodeXML === false) {
+ return false;
+ }
+
preg_match('#timestamp="(([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})Z)"#', $sLastNodeXML, $aLastNodeDate);
return $aLastNodeDate[1];
--- /dev/null
+#!/usr/bin/python
+
+import osmium
+import sys
+import datetime
+
+
+class Datecounter(osmium.SimpleHandler):
+
+ filedate = None
+
+ def date(self, o):
+ ts = o.timestamp
+ if self.filedate is None or ts > self.filedate:
+ self.filedate = ts
+
+ node = date
+ way = date
+ relation = date
+
+
+if __name__ == '__main__':
+ if len(sys.argv) != 2:
+ print("Usage: python osm_file_date.py <osmfile>")
+ sys.exit(-1)
+
+ h = Datecounter()
+
+ h.apply_file(sys.argv[1])
+
+ print(h.filedate)
+
+
$sDatabaseDate = getDatabaseDate($oDB);
pg_query($oDB->connection, 'TRUNCATE import_status');
- $sSQL = "INSERT INTO import_status (lastimportdate) VALUES('".$sDatabaseDate."')";
- pg_query($oDB->connection, $sSQL);
- echo "Latest data imported from $sDatabaseDate.\n";
+ if ($sDatabaseDate === false) {
+ echo "WARNING: could not determine database date.\n";
+ } else {
+ $sSQL = "INSERT INTO import_status (lastimportdate) VALUES('".$sDatabaseDate."')";
+ pg_query($oDB->connection, $sSQL);
+ echo "Latest data imported from $sDatabaseDate.\n";
+ }
}
if ($aCMDResult['import-tiger-data']) {
}
$sDatabaseDate = getDatabaseDate($oDB);
+ if ($sDatabaseDate === false) {
+ fail("Cannot determine date of database.");
+ }
$sWindBack = strftime('%Y-%m-%dT%H:%M:%SZ',
strtotime($sDatabaseDate) - (3*60*60));
// write the update logs
$iFileSize = filesize($sImportFile);
- $sBatchEnd = getDatabaseDate($oDB);
+ // get the newest object from the diff file
+ $sBatchEnd = 0;
+ $iRet = 0;
+ exec(CONST_BasePath.'/utils/osm_file_date.py '.$sImportFile, $sBatchEnd, $iRet);
+ if ($iRet != 0) {
+ fail('Error getting date from diff file.');
+ }
+ $sBatchEnd = $sBatchEnd[0];
$sSQL = "INSERT INTO import_osmosis_log (batchend, batchseq, batchsize, starttime, endtime, event) values ('$sBatchEnd',$iEndSequence,$iFileSize,'".date('Y-m-d H:i:s', $fCMDStartTime)."','".date('Y-m-d H:i:s')."','import')";
var_Dump($sSQL);
chksql($oDB->query($sSQL));