From de02672ab8658062ecfe92ba3a93e51f938193e3 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 17 Feb 2026 14:11:11 +0100 Subject: [PATCH 1/2] build the dxcc class without date since we check the exception and prefix date already in the dxcc_lookup, simplifies caching --- application/controllers/Api.php | 4 +- application/controllers/Calltester.php | 138 +++++++++---------- application/controllers/Dxcalendar.php | 2 +- application/controllers/Dxcluster.php | 2 +- application/controllers/Logbook.php | 2 +- application/libraries/DxclusterCache.php | 2 +- application/models/Dxcluster_model.php | 9 +- application/models/Logbook_model.php | 6 +- application/models/Logbookadvanced_model.php | 4 +- src/Dxcc/Dxcc.php | 34 ++--- 10 files changed, 93 insertions(+), 110 deletions(-) diff --git a/application/controllers/Api.php b/application/controllers/Api.php index cede9ef85..15ac5d883 100644 --- a/application/controllers/Api.php +++ b/application/controllers/Api.php @@ -962,7 +962,7 @@ class API extends CI_Controller { ]; $return['callsign'] = $lookup_callsign; - $dxccobj = new Dxcc(null); + $dxccobj = new Dxcc(); $callsign_dxcc_lookup = $dxccobj->dxcc_lookup($lookup_callsign, $date); $last_slash_pos = strrpos($lookup_callsign, '/'); @@ -1122,7 +1122,7 @@ class API extends CI_Controller { $return['callsign'] = $lookup_callsign; // Use Wavelog\Dxcc\Dxcc for faster in-memory lookup - $dxccobj = new Dxcc($date); + $dxccobj = new Dxcc(); $callsign_dxcc_lookup = $dxccobj->dxcc_lookup($lookup_callsign, $date); $return['dxcc_id'] = $callsign_dxcc_lookup['adif'] ?? ''; diff --git a/application/controllers/Calltester.php b/application/controllers/Calltester.php index 9280f14e2..897046e95 100644 --- a/application/controllers/Calltester.php +++ b/application/controllers/Calltester.php @@ -61,7 +61,7 @@ class Calltester extends CI_Controller { // Starting clock time in seconds $start_time = microtime(true); - $dxccobj = new Dxcc(null); + $dxccobj = new Dxcc(); foreach ($callarray->result() as $call) { @@ -364,147 +364,147 @@ class Calltester extends CI_Controller { 'Callsign' => 'WJ7R/C6A', 'Country' => 'Bahamas', 'Adif' => 60, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'WJ7R/KH6', 'Country' => 'Hawaii', 'Adif' => 110, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'WJ7R/C6', 'Country' => 'Bahamas', 'Adif' => 60, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'VE3EY/VP9', 'Country' => 'Bermuda', 'Adif' => 64, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'VP2MDG', 'Country' => 'Montserrat', 'Adif' => 96, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'VP2EY', 'Country' => 'Anguilla', 'Adif' => 12, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'VP2VI', 'Country' => 'British Virgin Islands.', 'Adif' => 65, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'VP2V/AA7V', 'Country' => 'British Virgin Islands', 'Adif' => 65, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'W8LR/R', 'Country' => 'United States Of America', 'Adif' => 291, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'SO1FH', 'Country' => 'Poland', 'Adif' => 269, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'KZ1H/PP', 'Country' => 'Brazil', 'Adif' => 108, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'K1KW/AM', 'Country' => 'None', 'Adif' => 0, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'K1KW/MM', 'Country' => 'None', 'Adif' => 0, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'TF/DL2NWK/P', 'Country' => 'Iceland', 'Adif' => 242, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'OZ1ALS/A', 'Country' => 'Denmark', 'Adif' => 221, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'LA1K', 'Country' => 'Norway', 'Adif' => 266, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'K1KW/M', 'Country' => 'United States Of America', 'Adif' => 291, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'TF/DL2NWK/M', 'Country' => 'Iceland', 'Adif' => 242, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'TF/DL2NWK/MM', 'Country' => 'None', 'Adif' => 0, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'TF/DL2NWK/P', 'Country' => 'Iceland', 'Adif' => 242, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => '2M0SQL/P', 'Country' => 'Scotland', 'Adif' => 279, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( @@ -518,42 +518,42 @@ class Calltester extends CI_Controller { 'Callsign' => 'RV0AL/0/P', 'Country' => 'Asiatic Russia', 'Adif' => 15, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'OH/DJ1YFK', 'Country' => 'Finland', 'Adif' => 224, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'N6TR/7', 'Country' => 'United States Of America', 'Adif' => 291, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'KH0CW', 'Country' => 'United States Of America', 'Adif' => 291, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'R2FM/P', 'Country' => 'kaliningrad', 'Adif' => 126, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'R2FM', 'Country' => 'kaliningrad', 'Adif' => 126, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( @@ -581,56 +581,56 @@ class Calltester extends CI_Controller { 'Callsign' => 'CX/PR8KW', 'Country' => 'Uruguay', 'Adif' => 144, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'IQ3MV/LH', 'Country' => 'Italy', 'Adif' => 248, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'LA1K/QRP', 'Country' => 'Norway', 'Adif' => 266, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'LA1K/LGT', 'Country' => 'Norway', 'Adif' => 266, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'SM1K/LH', 'Country' => 'Sweden', 'Adif' => 284, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'KG4W', 'Country' => 'United States Of America', 'Adif' => 291, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'KG4WW', 'Country' => 'Guantanamo Bay', 'Adif' => 105, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'KG4WWW', 'Country' => 'United States Of America', 'Adif' => 291, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( @@ -658,7 +658,7 @@ class Calltester extends CI_Controller { 'Callsign' => 'PT7BZ/PY0F', 'Country' => 'Fernando De Noronha', 'Adif' => 56, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( @@ -686,7 +686,7 @@ class Calltester extends CI_Controller { 'Callsign' => 'G4SGX/6Y', 'Country' => 'Jamaica', 'Adif' => 82, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( @@ -707,7 +707,7 @@ class Calltester extends CI_Controller { 'Callsign' => 'N2JBY/4X', 'Country' => 'Israel', 'Adif' => 336, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( @@ -721,98 +721,98 @@ class Calltester extends CI_Controller { 'Callsign' => 'HB/DK9TA', 'Country' => 'Switzerland', 'Adif' => 287, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'OE5DI/500', 'Country' => 'Austria', 'Adif' => 206, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'YI6SUL', 'Country' => 'Invalid', 'Adif' => 0, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => '3DA8/DF8LY/P', 'Country' => 'Kingdom Of Eswatini', 'Adif' => 468, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => '3X/DL5DAB', 'Country' => 'Invalid', 'Adif' => 0, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => '3X/DL5DA', 'Country' => 'Guinea', 'Adif' => 107, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'KN5H/6YA', 'Country' => 'Jamaica', 'Adif' => 82, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'DL2AAZ/6Y5', 'Country' => 'Jamaica', 'Adif' => 82, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => '6Y5WJ', 'Country' => 'Jamaica', 'Adif' => 82, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'R20RRC/0', 'Country' => 'Asiatic Russia', 'Adif' => 15, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'G4KJV/2K/P', 'Country' => 'England', 'Adif' => 223, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'VP8ADR/40', 'Country' => 'Falkland Islands', 'Adif' => 141, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'VP8ADR/400', 'Country' => 'Falkland Islands', 'Adif' => 141, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'LU7CC/E', 'Country' => 'Argentina', 'Adif' => 100, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( @@ -826,105 +826,105 @@ class Calltester extends CI_Controller { 'Callsign' => 'A6050Y/5', 'Country' => 'United Arab Emirates', 'Adif' => 391, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => '9H5G/C6A', 'Country' => 'Bahamas', 'Adif' => 60, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'A45XR/0', 'Country' => 'Oman', 'Adif' => 370, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'RAEM', 'Country' => 'Asiatic Russia', 'Adif' => 54, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'DJ1YFK/VE1', 'Country' => 'Canada', 'Adif' => 1, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'HD1QRC90', 'Country' => 'Ecuador', 'Adif' => 120, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'PJ6A', 'Country' => 'Saba & St. Eustatius', 'Adif' => 519, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'PJ4D', 'Country' => 'Bonaire', 'Adif' => 520, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => '4X50CZ/SK', 'Country' => 'Israel', 'Adif' => 336, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'RK3BY/0', 'Country' => 'Asiatic Russia', 'Adif' => 15, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'IU0KNS/ERA', 'Country' => 'Italy', 'Adif' => 248, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'IU8BPS/AWD', 'Country' => 'Italy', 'Adif' => 248, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'IK7XNF/GIRO', 'Country' => 'Italy', 'Adif' => 248, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'VJ5A', 'Country' => 'Australia', 'Adif' => 150, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); $testarray[] = array( 'Callsign' => 'VL2IG', 'Country' => 'Australia', 'Adif' => 150, - 'Date' => $date = date('Y-m-d', time()) + 'Date' => date('Y-m-d', time()) ); set_time_limit(3600); @@ -937,7 +937,7 @@ class Calltester extends CI_Controller { $i = 0; - $dxccobj = new Dxcc(null); + $dxccobj = new Dxcc(); foreach ($testarray as $call) { $i++; diff --git a/application/controllers/Dxcalendar.php b/application/controllers/Dxcalendar.php index 1d0e23075..51472f6ae 100644 --- a/application/controllers/Dxcalendar.php +++ b/application/controllers/Dxcalendar.php @@ -39,7 +39,7 @@ class Dxcalendar extends CI_Controller { $custom_date_format = $this->config->item('qso_date_format'); } - $dxccobj = new Dxcc(null); + $dxccobj = new Dxcc(); foreach ($rssdata->channel->item as $item) { $dxped=(object)[]; $title = explode('--', $item->title); diff --git a/application/controllers/Dxcluster.php b/application/controllers/Dxcluster.php index 8d42eb6b2..a4dd909f9 100644 --- a/application/controllers/Dxcluster.php +++ b/application/controllers/Dxcluster.php @@ -66,7 +66,7 @@ class Dxcluster extends CI_Controller { // TODO: Is this used anywhere? If not, remove it! public function call($call) { $date = date('Y-m-d', time()); - $dxccobj = new Dxcc($date); + $dxccobj = new Dxcc(); $dxcc = $dxccobj->dxcc_lookup($call, $date); diff --git a/application/controllers/Logbook.php b/application/controllers/Logbook.php index 2a7b06b27..6722fc8b5 100644 --- a/application/controllers/Logbook.php +++ b/application/controllers/Logbook.php @@ -1256,7 +1256,7 @@ class Logbook extends CI_Controller { if ($date == ''){ $date = date("Y-m-d"); } - $dxccobj = new Dxcc($date); + $dxccobj = new Dxcc(); $ans = $dxccobj->dxcc_lookup($call, $date); return $ans; diff --git a/application/libraries/DxclusterCache.php b/application/libraries/DxclusterCache.php index c6d9d4816..1a3bd2a73 100644 --- a/application/libraries/DxclusterCache.php +++ b/application/libraries/DxclusterCache.php @@ -80,7 +80,7 @@ class DxclusterCache { $this->_delete_from_cache($this->get_worked_call_key($logbook_key, $callsign)); // Look up DXCC and continent from callsign - $dxccobj = new Dxcc(null); + $dxccobj = new Dxcc(); $dxcc_info = $dxccobj->dxcc_lookup($callsign, date('Y-m-d')); if (!empty($dxcc_info['adif'])) { diff --git a/application/models/Dxcluster_model.php b/application/models/Dxcluster_model.php index 3fc73d4cd..59af02b01 100644 --- a/application/models/Dxcluster_model.php +++ b/application/models/Dxcluster_model.php @@ -135,7 +135,7 @@ class Dxcluster_model extends CI_Model { } $date = date('Y-m-d', time()); - $dxccObj = new DXCC($date); + $dxccObj = new DXCC(); // DXCC lookup cache to avoid duplicate lookups $dxcc_cache = []; @@ -527,9 +527,8 @@ class Dxcluster_model extends CI_Model { $jsonraw = curl_exec($ch); $json = json_decode($jsonraw); - $date = date('Ymd', time()); - - $dxccObj = new DXCC($date); + $date = date('Y-m-d', time()); + $dxccObj = new DXCC(); // Create JSON object if (strlen($jsonraw)>20) { @@ -541,7 +540,7 @@ class Dxcluster_model extends CI_Model { $minutes += $spotage->i; $json->age=$minutes; if ($minutes<=$maxage) { - $dxcc=$dxccObj->dxcc_lookup($json->spotter,date('Ymd', time())); + $dxcc=$dxccObj->dxcc_lookup($json->spotter,$date); $json->dxcc_spotter=$dxcc; return ($json); } else { diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 7c6d31949..343b1f98b 100644 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -137,7 +137,7 @@ class Logbook_model extends CI_Model { empty($qso_data['continent']); if ($needs_dxcc_lookup) { - $dxccobj = new Dxcc(null); + $dxccobj = new Dxcc(); $dxcc = $dxccobj->dxcc_lookup(strtoupper(trim($callsign)), $datetime); } @@ -4951,14 +4951,14 @@ class Logbook_model extends CI_Model { $dxcc = array($record['dxcc'] ?? '', $entity['name'] ?? '', $entity['cqz'] ?? '', $entity['cont'] ?? ''); } else { if ($this->dxcc_object == null) { - $this->dxcc_object = new Dxcc(null); + $this->dxcc_object = new Dxcc(); } $dxcclookupresult = $this->dxcc_object->dxcc_lookup($record['call'], date('Y-m-d', strtotime($record['qso_date']))); $dxcc = array($dxcclookupresult['adif'], $dxcclookupresult['entity'], $dxcclookupresult['cqz'], $dxcclookupresult['cont']); } } else { if ($this->dxcc_object == null) { - $this->dxcc_object = new Dxcc(null); + $this->dxcc_object = new Dxcc(); } $dxcclookupresult = $this->dxcc_object->dxcc_lookup($record['call'], date('Y-m-d', strtotime($record['qso_date']))); $dxcc = array($dxcclookupresult['adif'], $dxcclookupresult['entity'], $dxcclookupresult['cqz'], $dxcclookupresult['cont']); diff --git a/application/models/Logbookadvanced_model.php b/application/models/Logbookadvanced_model.php index 99247a914..16b9dc9e9 100644 --- a/application/models/Logbookadvanced_model.php +++ b/application/models/Logbookadvanced_model.php @@ -2041,7 +2041,7 @@ class Logbookadvanced_model extends CI_Model { // Starting clock time in seconds $start_time = microtime(true); - $dxccobj = new Dxcc(null); + $dxccobj = new Dxcc(); foreach ($callarray->result() as $call) { @@ -2111,7 +2111,7 @@ class Logbookadvanced_model extends CI_Model { $r = $this->db->query($sql, array($this->session->userdata('user_id'), json_decode($ids, true))); $count = 0; - $dxccobj = new Dxcc(null); + $dxccobj = new Dxcc(); if ($r->num_rows() > 0) { //query dxcc_prefixes $sql = "update " . $this->config->item('table_name') . " set COL_COUNTRY = ?, COL_DXCC = ? where COL_PRIMARY_KEY = ?"; diff --git a/src/Dxcc/Dxcc.php b/src/Dxcc/Dxcc.php index 9bc494900..b8ebe660a 100644 --- a/src/Dxcc/Dxcc.php +++ b/src/Dxcc/Dxcc.php @@ -10,8 +10,8 @@ class Dxcc { protected $lidadditions = '/^(?:QRP|LGT|2K)$/'; protected $noneadditions = '/^(?:MM|AM)$/'; - function __construct($date) { - $this->read_data($date); + function __construct() { + $this->read_data(); } /** @@ -321,7 +321,7 @@ class Dxcc { /* * Read DXCC data from the database or cache */ - function read_data($date = NULL) { + function read_data() { $CI = &get_instance(); $CI->load->is_loaded('cache') ?: $CI->load->driver('cache', [ 'adapter' => $CI->config->item('cache_adapter') ?? 'file', @@ -330,24 +330,16 @@ class Dxcc { ]); // DXCC Exceptions - $cache_key = 'dxcc_exceptions_' . ($date ?? 'all'); + $cache_key = 'dxcc_exceptions'; // Cache check - early return if ($cached = $CI->cache->get($cache_key)) { $this->dxccexceptions = $cached; } else { - $sql = "SELECT `call`, `entity`, `adif`, `cqz`, `cont`, `long`, `lat`, `start`, `end` FROM dxcc_exceptions"; - $binding = []; - - if ($date !== NULL) { - $sql .= " WHERE (start <= ? OR start IS NULL) AND (end >= ? OR end IS NULL)"; - $binding = [$date, $date]; - } - - $sql .= " ORDER BY start DESC, end DESC"; + $sql = "SELECT `call`, `entity`, `adif`, `cqz`, `cont`, `long`, `lat`, `start`, `end` FROM dxcc_exceptions ORDER BY start DESC, end DESC"; $this->dxccexceptions = []; - foreach ($CI->db->query($sql, $binding)->result() as $dxcce) { + foreach ($CI->db->query($sql)->result() as $dxcce) { $this->dxccexceptions[$dxcce->call][] = [ 'adif' => $dxcce->adif, 'cont' => $dxcce->cont, @@ -364,21 +356,13 @@ class Dxcc { } // DXCC Prefixes - $cache_key = 'dxcc_prefixes_' . ($date ?? 'all'); + $cache_key = 'dxcc_prefixes'; if ($CI->cache->get($cache_key)) { $this->dxcc = $CI->cache->get($cache_key); } else { - $binding = []; - $sql = "SELECT `call`, `entity`, `adif`, `cqz`, `cont`, `long`, `lat`, `start`, `end` FROM dxcc_prefixes"; - if ($date !== NULL) { - $sql .= " WHERE (start <= ? OR start IS NULL) - AND (end >= ? OR end IS NULL)"; - $binding[] = $date; - $binding[] = $date; - } - $sql .= " ORDER BY start DESC, end DESC"; - $dxcc_result = $CI->db->query($sql, $binding); + $sql = "SELECT `call`, `entity`, `adif`, `cqz`, `cont`, `long`, `lat`, `start`, `end` FROM dxcc_prefixes ORDER BY start DESC, end DESC"; + $dxcc_result = $CI->db->query($sql); if ($dxcc_result->num_rows() > 0){ foreach ($dxcc_result->result() as $dx) { From ec1dd936e31218383093705bcb66ec44e7699e2a Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 17 Feb 2026 14:13:49 +0100 Subject: [PATCH 2/2] invalidate dxcc cache on dxcc update --- application/controllers/Update.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/application/controllers/Update.php b/application/controllers/Update.php index 855e713fd..0c2808586 100644 --- a/application/controllers/Update.php +++ b/application/controllers/Update.php @@ -272,6 +272,8 @@ class Update extends CI_Controller { $this->db->query($sql); $this->db->trans_complete(); + $this->_invalidate_dxcc_cache(); + $this->update_status(__("DONE")); echo 'success'; @@ -292,6 +294,26 @@ class Update extends CI_Controller { } + private function _invalidate_dxcc_cache() { + $this->load->is_loaded('cache') ?: $this->load->driver('cache', [ + 'adapter' => $this->config->item('cache_adapter') ?? 'file', + 'backup' => $this->config->item('cache_backup') ?? 'file', + 'key_prefix' => $this->config->item('cache_key_prefix') ?? '' + ]); + + $possible_cachekeys = [ + 'dxcc_exceptions', + 'dxcc_prefixes', + ]; + + foreach ($possible_cachekeys as $cache_key) { + if ($this->cache->get($cache_key) !== false) { + $this->cache->delete($cache_key); + log_message('info', "Deleted cache for key: " . $cache_key); + } + } + } + public function update_status($done=""){ if(!$this->load->is_loaded('Paths')) {