Anton
4 years ago
2 changed files with 175 additions and 0 deletions
@ -0,0 +1,100 @@ |
|||
<?php |
|||
|
|||
function save_latestData(){ |
|||
$import_berlin_scooters = file_get_contents('./scooter_UUID.json'); |
|||
$berlin_scooters = json_decode($import_berlin_scooters, true); |
|||
$API_call = 'https://platform.tier-services.io/v1/vehicle/'; |
|||
$id = 0; |
|||
unlink("./damaged_map/nonactiveScooters.json"); |
|||
fopen("./damaged_map/nonactiveScooters.json", 'w+'); |
|||
foreach ($berlin_scooters as $berlin_scooter) { |
|||
//if ($id < 1000) { |
|||
$nonactiveScootersJSON = './damaged_map/nonactiveScooters.json'; |
|||
$scooterData = callAPI($API_call . $berlin_scooter["UUID"]); |
|||
$API_response = json_decode($scooterData, true); |
|||
if ($API_response === 'null') { |
|||
echo 'api connection failed'.PHP_EOL; |
|||
} else { |
|||
$scooter_Status = $API_response['data']['attributes']['state']; |
|||
if ($scooter_Status === 'ACTIVE') { |
|||
$id++; |
|||
echo 'scooter ACTIVE'.PHP_EOL; |
|||
continue; |
|||
} else { |
|||
appendJSON($nonactiveScootersJSON, $API_response); |
|||
echo 'INACTIVE scooter added'.PHP_EOL; |
|||
$id++; |
|||
}; |
|||
}; |
|||
//} else { |
|||
// return; |
|||
//} |
|||
} |
|||
|
|||
}; |
|||
|
|||
function appendJSON($filename, $data){ // create historical json data for documentation over time |
|||
|
|||
// read the file if present |
|||
$handle = @fopen($filename, 'r+'); |
|||
|
|||
// create the file if needed |
|||
if ($handle === null) |
|||
{ |
|||
$handle = fopen($filename, 'w+'); |
|||
} |
|||
|
|||
if ($handle) |
|||
{ |
|||
// seek to the end |
|||
fseek($handle, 0, SEEK_END); |
|||
|
|||
// are we at the end of is the file empty |
|||
if (ftell($handle) > 0) |
|||
{ |
|||
// move back a byte |
|||
fseek($handle, -1, SEEK_END); |
|||
|
|||
// add the trailing comma |
|||
fwrite($handle, ',', 1); |
|||
|
|||
// add the new json string |
|||
fwrite($handle, json_encode($data) . ']'); |
|||
} |
|||
else |
|||
{ |
|||
// write the first event inside an array |
|||
fwrite($handle, json_encode(array($data))); |
|||
} |
|||
|
|||
// close the handle on the file |
|||
fclose($handle); |
|||
} |
|||
|
|||
|
|||
}; |
|||
|
|||
function callAPI($url){ |
|||
//echo $url; |
|||
$curl = curl_init($url); |
|||
curl_setopt($curl, CURLOPT_FAILONERROR, true); |
|||
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); |
|||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); |
|||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); |
|||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); |
|||
curl_setopt($curl, CURLOPT_HTTPHEADER, array( |
|||
'x-api-key: bpEUTJEBTf74oGRWxaIcW7aeZMzDDODe1yBoSxi2', |
|||
'Content-Type: application/json', |
|||
)); // set the api key |
|||
curl_setopt($curl, CURLOPT_USERAGENT,'ProductionRelease/3.8.2 (app.tier.sharing; build:3.8.2.0; iOS 12.4.4) Alamofire/4.9.1'); // set user-agent to that of the Tier.app, sniffed by burpsuite |
|||
$result = curl_exec($curl); |
|||
if(!$result){return ('api connection failed'.PHP_EOL);} |
|||
curl_close($curl); |
|||
//echo $result; |
|||
return $result; |
|||
}; |
|||
|
|||
save_latestData(); |
|||
|
|||
|
|||
?> |
@ -0,0 +1,75 @@ |
|||
<?php |
|||
|
|||
function callAPI($url){ |
|||
$curl = curl_init($url); |
|||
curl_setopt($curl, CURLOPT_FAILONERROR, true); |
|||
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); |
|||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); |
|||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); |
|||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); |
|||
curl_setopt($curl, CURLOPT_HTTPHEADER, array( |
|||
'x-api-key: bpEUTJEBTf74oGRWxaIcW7aeZMzDDODe1yBoSxi2', |
|||
'Content-Type: application/json', |
|||
)); // set the api key |
|||
curl_setopt($curl, CURLOPT_USERAGENT,'ProductionRelease/3.8.2 (app.tier.sharing; build:3.8.2.0; iOS 12.4.4) Alamofire/4.9.1'); // set user-agent to that of the Tier.app, sniffed by burpsuite |
|||
|
|||
$result = curl_exec($curl); |
|||
//echo $result; |
|||
if(!$result){return 'api connection failed'.PHP_EOL;} |
|||
curl_close($curl); |
|||
return $result; |
|||
}; |
|||
|
|||
function getactiveSooters(){ |
|||
$berlin = 'https://platform.tier-services.io/v1/vehicle?zoneId=BERLIN'; |
|||
$getJSON = callAPI($berlin); //abstract callAPI for neater reuse |
|||
$saveData = file_put_contents("activescooters.json", $getJSON); |
|||
if (file_put_contents("activescooters.json", $getJSON)) |
|||
echo "JSON file created successfully..."; |
|||
else |
|||
echo "Oops! Error creating json file..."; |
|||
return $saveData; //return array |
|||
}; |
|||
|
|||
function parseJSON($id){ |
|||
$readJSON = file_get_contents('./activescooters.json'); //read latest data |
|||
$latestData = json_decode($readJSON, true); |
|||
$scooter = $latestData["data"][$id]; |
|||
$scooter_UUID = $scooter["id"]; |
|||
return $scooter_UUID; |
|||
}; |
|||
|
|||
function append_UUID(){ |
|||
$filename = "./scooter_UUID.json"; |
|||
$scooterUUID_JSON = file_get_contents($filename); |
|||
$scooterUUID_Array = json_decode($scooterUUID_JSON,true); |
|||
//print_r($scooterUUID_Array); |
|||
$activescooterJSON = file_get_contents('./activescooters.json'); //read latest data |
|||
$activescooterArray = json_decode($activescooterJSON, true); |
|||
//print_r($activescooterArray); |
|||
$scooters = $activescooterArray["data"]; |
|||
//print_r($scooters); |
|||
$id = 0; //start id |
|||
//$api_call = "https://platform.tier-services.io/v1/vehicle/"; |
|||
foreach ($scooters as $item) { |
|||
$UUID = parseJSON($id); |
|||
$UUID_Entry = array('UUID' => $UUID); |
|||
if (in_array($UUID_Entry, $scooterUUID_Array)) { |
|||
echo "matched".PHP_EOL; |
|||
} else { |
|||
$additionalUUID = array('UUID' => $UUID); |
|||
$scooterUUID_Array[] = $additionalUUID ; |
|||
$jsonData = json_encode($scooterUUID_Array); |
|||
file_put_contents('./scooter_UUID.json', $jsonData); |
|||
echo "new Entry added".PHP_EOL; |
|||
} |
|||
//$json_entry = "{" . "\"URL\":" . "\"" . $api_call . $UUID . "\"" . "},"; |
|||
//file_put_contents($filename, $json_entry, FILE_APPEND | LOCK_EX); |
|||
$id++; |
|||
} |
|||
}; |
|||
|
|||
getactiveSooters(); |
|||
append_UUID(); |
|||
|
|||
?> |
Loading…
Reference in new issue