drop some data if callsign contains pre- or suffix

This commit is contained in:
HB9HIL
2024-07-05 11:20:15 +02:00
parent f991a848fc
commit 4116ce3482
2 changed files with 68 additions and 29 deletions

View File

@@ -79,24 +79,45 @@ class Hamqth {
$xml = simplexml_load_string($xml);
if (!empty($xml->session->error)) return $data['error'] = $xml->session->error;
// Return Required Fields
$data['callsign'] = (string)$xml->search->callsign;
$data['name'] = (string)$xml->search->nick;
$data['gridsquare'] = (string)$xml->search->grid;
$data['city'] = (string)$xml->search->adr_city;
$data['lat'] = (string)$xml->search->latitude;
$data['long'] = (string)$xml->search->longitude;
$data['dxcc'] = (string)$xml->search->adif;
$data['iota'] = (string)$xml->search->iota;
$data['image'] = (string)$xml->search->picture;
$data['state'] = (string)$xml->search->us_state;
$data['error'] = (string)$xml->session->error;
// only return certain data of a callsign which does not contain a pre- or suffix (see https://github.com/wavelog/wavelog/issues/452)
if (strpos($callsign, '&#47') == false) {
// Return Required Fields
$data['callsign'] = (string)$xml->search->callsign;
$data['name'] = (string)$xml->search->nick;
$data['gridsquare'] = (string)$xml->search->grid;
$data['city'] = (string)$xml->search->adr_city;
$data['lat'] = (string)$xml->search->latitude;
$data['long'] = (string)$xml->search->longitude;
$data['dxcc'] = (string)$xml->search->adif;
$data['iota'] = (string)$xml->search->iota;
$data['image'] = (string)$xml->search->picture;
$data['state'] = (string)$xml->search->us_state;
$data['error'] = (string)$xml->session->error;
if ($xml->search->country == "United States") {
$data['us_county'] = (string)$xml->search->us_county;
} else {
$data['us_county'] = null;
}
if ($xml->search->country == "United States") {
$data['us_county'] = (string)$xml->search->us_county;
} else {
$data['us_county'] = null;
}
} else {
$data['callsign'] = (string)$xml->search->callsign;
$data['name'] = (string)$xml->search->nick;
$data['gridsquare'] = '';
$data['city'] = '';
$data['lat'] = '';
$data['long'] = '';
$data['dxcc'] = '';
$data['iota'] = '';
$data['image'] = (string)$xml->search->picture;
$data['state'] = '';
$data['error'] = (string)$xml->session->error;
$data['us_county'] = '';
}
} finally {
return $data;
}

View File

@@ -93,21 +93,39 @@ class Qrz {
// Sanitise gridsquare to only allow up to 8 characters
$unclean_gridsquare = (string)$xml->Callsign->grid; // Get the gridsquare from QRZ convert to string
$clean_gridsquare = strlen($unclean_gridsquare) > 8 ? substr($unclean_gridsquare,0,8) : $unclean_gridsquare; // Trim gridsquare to 8 characters max
$data['gridsquare'] = $clean_gridsquare;
$data['city'] = (string)$xml->Callsign->addr2;
$data['lat'] = (string)$xml->Callsign->lat;
$data['long'] = (string)$xml->Callsign->lon;
$data['dxcc'] = (string)$xml->Callsign->dxcc;
$data['state'] = (string)$xml->Callsign->state;
$data['iota'] = (string)$xml->Callsign->iota;
$data['qslmgr'] = (string)$xml->Callsign->qslmgr;
$data['image'] = (string)$xml->Callsign->image;
// only return certain data of a callsign which does not contain a pre- or suffix (see https://github.com/wavelog/wavelog/issues/452)
if (strpos($callsign, '&#47') == false) {
$data['gridsquare'] = $clean_gridsquare;
$data['city'] = (string)$xml->Callsign->addr2;
$data['lat'] = (string)$xml->Callsign->lat;
$data['long'] = (string)$xml->Callsign->lon;
$data['dxcc'] = (string)$xml->Callsign->dxcc;
$data['state'] = (string)$xml->Callsign->state;
$data['iota'] = (string)$xml->Callsign->iota;
$data['qslmgr'] = (string)$xml->Callsign->qslmgr;
$data['image'] = (string)$xml->Callsign->image;
if ($xml->Callsign->country == "United States") {
$data['us_county'] = (string)$xml->Callsign->county;
} else {
$data['us_county'] = null;
}
if ($xml->Callsign->country == "United States") {
$data['us_county'] = (string)$xml->Callsign->county;
} else {
$data['us_county'] = null;
$data['gridsquare'] = '';
$data['city'] = '';
$data['lat'] = '';
$data['long'] = '';
$data['dxcc'] = '';
$data['state'] = '';
$data['iota'] = '';
$data['qslmgr'] = (string)$xml->Callsign->qslmgr;
$data['image'] = (string)$xml->Callsign->image;
$data['us_county'] = '';
}
} finally {