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