You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.0 KiB
100 lines
3.0 KiB
4 years ago
|
<?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();
|
||
|
|
||
|
|
||
|
?>
|