[DXCC id] Improved DXCC identification
这个提交包含在:
父节点
f71bd3c893
当前提交
0d51c78516
共有 2 个文件被更改,包括 553 次插入 和 16 次删除
|
|
@ -0,0 +1,491 @@
|
||||||
|
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Calltester extends CI_Controller {
|
||||||
|
public function db() {
|
||||||
|
set_time_limit(3600);
|
||||||
|
|
||||||
|
// Starting clock time in seconds
|
||||||
|
$start_time = microtime(true);
|
||||||
|
|
||||||
|
$this->load->model('logbook_model');
|
||||||
|
|
||||||
|
$sql = 'select distinct col_country, col_call, col_dxcc, date(col_time_on) date from ' . $this->config->item('table_name');
|
||||||
|
$query = $this->db->query($sql);
|
||||||
|
|
||||||
|
$callarray = $query->result();
|
||||||
|
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
|
||||||
|
foreach ($callarray as $call) {
|
||||||
|
$i++;
|
||||||
|
$dxcc = $this->logbook_model->dxcc_lookup($call->col_call, $call->date);
|
||||||
|
|
||||||
|
$dxcc['adif'] = (isset($dxcc['adif'])) ? $dxcc['adif'] : 0;
|
||||||
|
$dxcc['entity'] = (isset($dxcc['entity'])) ? $dxcc['entity'] : 0;
|
||||||
|
|
||||||
|
if ($call->col_dxcc != $dxcc['adif']) {
|
||||||
|
$result[] = array(
|
||||||
|
'Callsign' => $call->col_call,
|
||||||
|
'Expected country' => $call->col_country,
|
||||||
|
'Expected adif' => $call->col_dxcc,
|
||||||
|
'Result country' => ucwords(strtolower($dxcc['entity']), "- (/"),
|
||||||
|
'Result adif' => $dxcc['adif'],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// End clock time in seconds
|
||||||
|
$end_time = microtime(true);
|
||||||
|
|
||||||
|
// Calculate script execution time
|
||||||
|
$execution_time = ($end_time - $start_time);
|
||||||
|
|
||||||
|
echo " Execution time of script = ".$execution_time." sec <br/>";
|
||||||
|
echo $i . " calls tested. <br/>";
|
||||||
|
$count = 0;
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$this->array_to_table($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function array_to_table($table) {
|
||||||
|
echo '<style>
|
||||||
|
table {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
border-collapse: collapse;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td, table th {
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table tr:nth-child(even){background-color: #f2f2f2;}
|
||||||
|
|
||||||
|
table tr:hover {background-color: #ddd;}
|
||||||
|
|
||||||
|
table th {
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
text-align: left;
|
||||||
|
background-color: #04AA6D;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
</style> ';
|
||||||
|
|
||||||
|
echo '<table>';
|
||||||
|
|
||||||
|
// Table header
|
||||||
|
foreach ($table[0] as $key=>$value) {
|
||||||
|
echo "<th>".$key."</th>";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Table body
|
||||||
|
foreach ($table as $value) {
|
||||||
|
echo "<tr>";
|
||||||
|
foreach ($value as $val) {
|
||||||
|
echo "<td>".$val."</td>";
|
||||||
|
}
|
||||||
|
echo "</tr>";
|
||||||
|
}
|
||||||
|
echo "</table>";
|
||||||
|
}
|
||||||
|
|
||||||
|
function csv() {
|
||||||
|
set_time_limit(3600);
|
||||||
|
|
||||||
|
// Starting clock time in seconds
|
||||||
|
$start_time = microtime(true);
|
||||||
|
|
||||||
|
$this->load->model('logbook_model');
|
||||||
|
|
||||||
|
$file = 'uploads/calls.csv';
|
||||||
|
$handle = fopen($file,"r");
|
||||||
|
|
||||||
|
$data = fgetcsv($handle,1000,","); // Skips firsts line, usually that is the header
|
||||||
|
$data = fgetcsv($handle,1000,",");
|
||||||
|
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
|
||||||
|
do {
|
||||||
|
if ($data[0]) {
|
||||||
|
// COL_CALL,COL_DXCC,COL_TIME_ON
|
||||||
|
$i++;
|
||||||
|
|
||||||
|
$dxcc = $this->logbook_model->dxcc_lookup($data[0], $data[2]);
|
||||||
|
|
||||||
|
$dxcc['adif'] = (isset($dxcc['adif'])) ? $dxcc['adif'] : 0;
|
||||||
|
$dxcc['entity'] = (isset($dxcc['entity'])) ? $dxcc['entity'] : 0;
|
||||||
|
|
||||||
|
$data[1] = $data[1] == "NULL" ? 0 : $data[1];
|
||||||
|
|
||||||
|
if ($data[1] != $dxcc['adif']) {
|
||||||
|
$result[] = array(
|
||||||
|
'Callsign' => $data[0],
|
||||||
|
'Expected country' => '',
|
||||||
|
'Expected adif' => $data[1],
|
||||||
|
'Result country' => ucwords(strtolower($dxcc['entity']), "- (/"),
|
||||||
|
'Result adif' => $dxcc['adif'],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while ($data = fgetcsv($handle,1000,","));
|
||||||
|
|
||||||
|
// End clock time in seconds
|
||||||
|
$end_time = microtime(true);
|
||||||
|
|
||||||
|
// Calculate script execution time
|
||||||
|
$execution_time = ($end_time - $start_time);
|
||||||
|
|
||||||
|
echo " Execution time of script = ".$execution_time." sec <br/>";
|
||||||
|
echo $i . " calls tested. <br/>";
|
||||||
|
$count = 0;
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$this->array_to_table($result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uses check_dxcc_table - written to check if that function works
|
||||||
|
*/
|
||||||
|
function csv2() {
|
||||||
|
set_time_limit(3600);
|
||||||
|
|
||||||
|
// Starting clock time in seconds
|
||||||
|
$start_time = microtime(true);
|
||||||
|
|
||||||
|
$this->load->model('logbook_model');
|
||||||
|
|
||||||
|
$file = 'uploads/calls.csv';
|
||||||
|
$handle = fopen($file,"r");
|
||||||
|
|
||||||
|
$data = fgetcsv($handle,1000,","); // Skips firsts line, usually that is the header
|
||||||
|
$data = fgetcsv($handle,1000,",");
|
||||||
|
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
|
||||||
|
do {
|
||||||
|
if ($data[0]) {
|
||||||
|
// COL_CALL,COL_DXCC,COL_TIME_ON
|
||||||
|
$i++;
|
||||||
|
|
||||||
|
$dxcc = $this->logbook_model->check_dxcc_table($data[0], $data[2]);
|
||||||
|
|
||||||
|
$data[1] = $data[1] == "NULL" ? 0 : $data[1];
|
||||||
|
|
||||||
|
if ($data[1] != $dxcc[0]) {
|
||||||
|
$result[] = array(
|
||||||
|
'Callsign' => $data[0],
|
||||||
|
'Expected country' => '',
|
||||||
|
'Expected adif' => $data[1],
|
||||||
|
'Result country' => ucwords(strtolower($dxcc[1]), "- (/"),
|
||||||
|
'Result adif' => $dxcc[0],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while ($data = fgetcsv($handle,1000,","));
|
||||||
|
|
||||||
|
// End clock time in seconds
|
||||||
|
$end_time = microtime(true);
|
||||||
|
|
||||||
|
// Calculate script execution time
|
||||||
|
$execution_time = ($end_time - $start_time);
|
||||||
|
|
||||||
|
echo " Execution time of script = ".$execution_time." sec <br/>";
|
||||||
|
echo $i . " calls tested. <br/>";
|
||||||
|
$count = 0;
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$this->array_to_table($result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function call() {
|
||||||
|
$testarray = array();
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'VE3EY/VP9',
|
||||||
|
'Country' => 'Bermuda',
|
||||||
|
'Adif' => 64,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'VP2MDG',
|
||||||
|
'Country' => 'Montserrat',
|
||||||
|
'Adif' => 96,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'VP2EY',
|
||||||
|
'Country' => 'Anguilla',
|
||||||
|
'Adif' => 12,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'VP2VI',
|
||||||
|
'Country' => 'British Virgin Islands.',
|
||||||
|
'Adif' => 65,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'VP2V/AA7V',
|
||||||
|
'Country' => 'British Virgin Islands',
|
||||||
|
'Adif' => 65,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'W8LR/R',
|
||||||
|
'Country' => 'United States Of America',
|
||||||
|
'Adif' => 291,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'SO1FH',
|
||||||
|
'Country' => 'Poland',
|
||||||
|
'Adif' => 269,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'KZ1H/PP',
|
||||||
|
'Country' => 'Brazil',
|
||||||
|
'Adif' => 108,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'K1KW/AM',
|
||||||
|
'Country' => 'None',
|
||||||
|
'Adif' => 0,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'K1KW/MM',
|
||||||
|
'Country' => 'None',
|
||||||
|
'Adif' => 0,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'TF/DL2NWK/P',
|
||||||
|
'Country' => 'Iceland',
|
||||||
|
'Adif' => 242,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'OZ1ALS/A',
|
||||||
|
'Country' => 'Denmark',
|
||||||
|
'Adif' => 221,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'LA1K',
|
||||||
|
'Country' => 'Norway',
|
||||||
|
'Adif' => 266,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'K1KW/M',
|
||||||
|
'Country' => 'United States Of America',
|
||||||
|
'Adif' => 291,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'TF/DL2NWK/M',
|
||||||
|
'Country' => 'Iceland',
|
||||||
|
'Adif' => 242,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'TF/DL2NWK/MM',
|
||||||
|
'Country' => 'None',
|
||||||
|
'Adif' => 0,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'TF/DL2NWK/P',
|
||||||
|
'Country' => 'Iceland',
|
||||||
|
'Adif' => 242,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => '2M0SQL/P',
|
||||||
|
'Country' => 'Scotland',
|
||||||
|
'Adif' => 279,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'FT8WW',
|
||||||
|
'Country' => 'Crozet Island',
|
||||||
|
'Adif' => 41,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'RV0AL/0/P',
|
||||||
|
'Country' => 'Asiatic Russia',
|
||||||
|
'Adif' => 15,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'OH/DJ1YFK',
|
||||||
|
'Country' => 'Finland',
|
||||||
|
'Adif' => 224,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'N6TR/7',
|
||||||
|
'Country' => 'United States Of America',
|
||||||
|
'Adif' => 291,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'KH0CW',
|
||||||
|
'Country' => 'United States Of America',
|
||||||
|
'Adif' => 291,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'R2FM/P',
|
||||||
|
'Country' => 'kaliningrad',
|
||||||
|
'Adif' => 126,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'R2FM',
|
||||||
|
'Country' => 'kaliningrad',
|
||||||
|
'Adif' => 126,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'FT5XO',
|
||||||
|
'Country' => 'Kerguelen Island',
|
||||||
|
'Adif' => 131,
|
||||||
|
'Date' => 20050320
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'VP8CTR',
|
||||||
|
'Country' => 'Antarctica',
|
||||||
|
'Adif' => 13,
|
||||||
|
'Date' => 19970207
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'FO0AAA',
|
||||||
|
'Country' => 'Clipperton',
|
||||||
|
'Adif' => 36,
|
||||||
|
'Date' => '20000302'
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'CX/PR8KW',
|
||||||
|
'Country' => 'Uruguay',
|
||||||
|
'Adif' => 144,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'IQ3MV/LH',
|
||||||
|
'Country' => 'Italy',
|
||||||
|
'Adif' => 248,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'LA1K/QRP',
|
||||||
|
'Country' => 'Norway',
|
||||||
|
'Adif' => 266,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'LA1K/LGT',
|
||||||
|
'Country' => 'Norway',
|
||||||
|
'Adif' => 266,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
$testarray[] = array(
|
||||||
|
'Callsign' => 'SM1K/LH',
|
||||||
|
'Country' => 'Sweden',
|
||||||
|
'Adif' => 284,
|
||||||
|
'Date' => $date = date('Ymd', time())
|
||||||
|
);
|
||||||
|
|
||||||
|
set_time_limit(3600);
|
||||||
|
|
||||||
|
// Starting clock time in seconds
|
||||||
|
$start_time = microtime(true);
|
||||||
|
|
||||||
|
$this->load->model('logbook_model');
|
||||||
|
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
|
||||||
|
foreach ($testarray as $call) {
|
||||||
|
$i++;
|
||||||
|
$dxcc = $this->logbook_model->dxcc_lookup($call['Callsign'], $call['Date']);
|
||||||
|
|
||||||
|
$dxcc['adif'] = (isset($dxcc['adif'])) ? $dxcc['adif'] : 0;
|
||||||
|
$dxcc['entity'] = (isset($dxcc['entity'])) ? $dxcc['entity'] : 0;
|
||||||
|
|
||||||
|
if ($call['Adif'] != $dxcc['adif']) {
|
||||||
|
$result[] = array(
|
||||||
|
'Callsign' => $call['Callsign'],
|
||||||
|
'Expected country' => $call['Country'],
|
||||||
|
'Expected adif' => $call['Adif'],
|
||||||
|
'Result country' => ucwords(strtolower($dxcc['entity']), "- (/"),
|
||||||
|
'Result adif' => $dxcc['adif'],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// End clock time in seconds
|
||||||
|
$end_time = microtime(true);
|
||||||
|
|
||||||
|
// Calculate script execution time
|
||||||
|
$execution_time = ($end_time - $start_time);
|
||||||
|
|
||||||
|
echo " Execution time of script = ".$execution_time." sec <br/>";
|
||||||
|
echo $i . " calls tested. <br/>";
|
||||||
|
$count = 0;
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$this->array_to_table($result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2907,6 +2907,8 @@ class Logbook_model extends CI_Model {
|
||||||
*/
|
*/
|
||||||
public function check_dxcc_table($call, $date){
|
public function check_dxcc_table($call, $date){
|
||||||
|
|
||||||
|
$csadditions = '/^P$|^R$|^A$|^M$/';
|
||||||
|
|
||||||
$dxcc_exceptions = $this->db->select('`entity`, `adif`, `cqz`')
|
$dxcc_exceptions = $this->db->select('`entity`, `adif`, `cqz`')
|
||||||
->where('call', $call)
|
->where('call', $call)
|
||||||
->where('(start <= ', $date)
|
->where('(start <= ', $date)
|
||||||
|
|
@ -2923,6 +2925,8 @@ class Logbook_model extends CI_Model {
|
||||||
$call = "K";
|
$call = "K";
|
||||||
} elseif (preg_match('/(^OH\/)|(\/OH[1-9]?$)/', $call)) { # non-Aland prefix!
|
} elseif (preg_match('/(^OH\/)|(\/OH[1-9]?$)/', $call)) { # non-Aland prefix!
|
||||||
$call = "OH"; # make callsign OH = finland
|
$call = "OH"; # make callsign OH = finland
|
||||||
|
} elseif (preg_match('/(^CX\/)|(\/CX[1-9]?$)/', $call)) { # non-Antarctica prefix!
|
||||||
|
$call = "CX"; # make callsign CX = Uruguay
|
||||||
} elseif (preg_match('/(^3D2R)|(^3D2.+\/R)/', $call)) { # seems to be from Rotuma
|
} elseif (preg_match('/(^3D2R)|(^3D2.+\/R)/', $call)) { # seems to be from Rotuma
|
||||||
$call = "3D2/R"; # will match with Rotuma
|
$call = "3D2/R"; # will match with Rotuma
|
||||||
} elseif (preg_match('/^3D2C/', $call)) { # seems to be from Conway Reef
|
} elseif (preg_match('/^3D2C/', $call)) { # seems to be from Conway Reef
|
||||||
|
|
@ -2934,6 +2938,23 @@ class Logbook_model extends CI_Model {
|
||||||
} elseif (preg_match('/(^KG4)[A-Z09]{1}/', $call)) {
|
} elseif (preg_match('/(^KG4)[A-Z09]{1}/', $call)) {
|
||||||
$call = "K";
|
$call = "K";
|
||||||
} elseif (preg_match('/\w\/\w/', $call)) {
|
} elseif (preg_match('/\w\/\w/', $call)) {
|
||||||
|
if (preg_match_all('/^((\d|[A-Z])+\/)?((\d|[A-Z]){3,})(\/(\d|[A-Z])+)?(\/(\d|[A-Z])+)?$/', $call, $matches)) {
|
||||||
|
$prefix = $matches[1][0];
|
||||||
|
$callsign = $matches[3][0];
|
||||||
|
$suffix = $matches[5][0];
|
||||||
|
if ($prefix) {
|
||||||
|
$prefix = substr($prefix, 0, -1); # Remove the / at the end
|
||||||
|
}
|
||||||
|
if ($suffix) {
|
||||||
|
$suffix = substr($suffix, 1); # Remove the / at the beginning
|
||||||
|
};
|
||||||
|
if (preg_match($csadditions, $suffix)) {
|
||||||
|
if ($prefix) {
|
||||||
|
$call = $prefix;
|
||||||
|
} else {
|
||||||
|
$call = $callsign;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
$result = $this->wpx($call, 1); # use the wpx prefix instead
|
$result = $this->wpx($call, 1); # use the wpx prefix instead
|
||||||
if ($result == '') {
|
if ($result == '') {
|
||||||
$row['adif'] = 0;
|
$row['adif'] = 0;
|
||||||
|
|
@ -2943,7 +2964,9 @@ class Logbook_model extends CI_Model {
|
||||||
} else {
|
} else {
|
||||||
$call = $result . "AA";
|
$call = $result . "AA";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$len = strlen($call);
|
$len = strlen($call);
|
||||||
|
|
||||||
|
|
@ -2968,19 +2991,21 @@ class Logbook_model extends CI_Model {
|
||||||
}
|
}
|
||||||
|
|
||||||
return array("Not Found", "Not Found");
|
return array("Not Found", "Not Found");
|
||||||
}
|
|
||||||
|
}
|
||||||
|
|
||||||
public function dxcc_lookup($call, $date){
|
public function dxcc_lookup($call, $date){
|
||||||
|
|
||||||
|
$csadditions = '/^P$|^R$|^A$|^M$/';
|
||||||
|
|
||||||
$dxcc_exceptions = $this->db->select('`entity`, `adif`, `cqz`')
|
$dxcc_exceptions = $this->db->select('`entity`, `adif`, `cqz`')
|
||||||
->where('call', $call)
|
->where('call', $call)
|
||||||
->where('(start <= CURDATE()')
|
->where('(start <= ', $date)
|
||||||
->or_where('start is null)', NULL, false)
|
->or_where('start is null)', NULL, false)
|
||||||
->where('(end >= CURDATE()')
|
->where('(end >= ', $date)
|
||||||
->or_where('end is null)', NULL, false)
|
->or_where('end is null)', NULL, false)
|
||||||
->get('dxcc_exceptions');
|
->get('dxcc_exceptions');
|
||||||
|
|
||||||
|
|
||||||
if ($dxcc_exceptions->num_rows() > 0){
|
if ($dxcc_exceptions->num_rows() > 0){
|
||||||
$row = $dxcc_exceptions->row_array();
|
$row = $dxcc_exceptions->row_array();
|
||||||
return $row;
|
return $row;
|
||||||
|
|
@ -2990,6 +3015,8 @@ class Logbook_model extends CI_Model {
|
||||||
$call = "K";
|
$call = "K";
|
||||||
} elseif (preg_match('/(^OH\/)|(\/OH[1-9]?$)/', $call)) { # non-Aland prefix!
|
} elseif (preg_match('/(^OH\/)|(\/OH[1-9]?$)/', $call)) { # non-Aland prefix!
|
||||||
$call = "OH"; # make callsign OH = finland
|
$call = "OH"; # make callsign OH = finland
|
||||||
|
} elseif (preg_match('/(^CX\/)|(\/CX[1-9]?$)/', $call)) { # non-Antarctica prefix!
|
||||||
|
$call = "CX"; # make callsign CX = Uruguay
|
||||||
} elseif (preg_match('/(^3D2R)|(^3D2.+\/R)/', $call)) { # seems to be from Rotuma
|
} elseif (preg_match('/(^3D2R)|(^3D2.+\/R)/', $call)) { # seems to be from Rotuma
|
||||||
$call = "3D2/R"; # will match with Rotuma
|
$call = "3D2/R"; # will match with Rotuma
|
||||||
} elseif (preg_match('/^3D2C/', $call)) { # seems to be from Conway Reef
|
} elseif (preg_match('/^3D2C/', $call)) { # seems to be from Conway Reef
|
||||||
|
|
@ -3001,18 +3028,37 @@ class Logbook_model extends CI_Model {
|
||||||
} elseif (preg_match('/(^KG4)[A-Z09]{1}/', $call)) {
|
} elseif (preg_match('/(^KG4)[A-Z09]{1}/', $call)) {
|
||||||
$call = "K";
|
$call = "K";
|
||||||
} elseif (preg_match('/\w\/\w/', $call)) {
|
} elseif (preg_match('/\w\/\w/', $call)) {
|
||||||
$result = $this->wpx($call, 1); # use the wpx prefix instead
|
if (preg_match_all('/^((\d|[A-Z])+\/)?((\d|[A-Z]){3,})(\/(\d|[A-Z])+)?(\/(\d|[A-Z])+)?$/', $call, $matches)) {
|
||||||
if ($result == '') {
|
$prefix = $matches[1][0];
|
||||||
$row['adif'] = 0;
|
$callsign = $matches[3][0];
|
||||||
$row['entity'] = 'None';
|
$suffix = $matches[5][0];
|
||||||
$row['cqz'] = 0;
|
if ($prefix) {
|
||||||
$row['long'] = '0';
|
$prefix = substr($prefix, 0, -1); # Remove the / at the end
|
||||||
$row['lat'] = '0';
|
|
||||||
return $row;
|
|
||||||
} else {
|
|
||||||
$call = $result . "AA";
|
|
||||||
}
|
}
|
||||||
|
if ($suffix) {
|
||||||
|
$suffix = substr($suffix, 1); # Remove the / at the beginning
|
||||||
|
};
|
||||||
|
if (preg_match($csadditions, $suffix)) {
|
||||||
|
if ($prefix) {
|
||||||
|
$call = $prefix;
|
||||||
|
} else {
|
||||||
|
$call = $callsign;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$result = $this->wpx($call, 1); # use the wpx prefix instead
|
||||||
|
if ($result == '') {
|
||||||
|
$row['adif'] = 0;
|
||||||
|
$row['entity'] = 'None';
|
||||||
|
$row['cqz'] = 0;
|
||||||
|
$row['long'] = '0';
|
||||||
|
$row['lat'] = '0';
|
||||||
|
return $row;
|
||||||
|
} else {
|
||||||
|
$call = $result . "AA";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$len = strlen($call);
|
$len = strlen($call);
|
||||||
|
|
||||||
|
|
@ -3046,8 +3092,8 @@ class Logbook_model extends CI_Model {
|
||||||
$b = '';
|
$b = '';
|
||||||
$c = '';
|
$c = '';
|
||||||
|
|
||||||
$lidadditions = '/^QRP|^LGT/';
|
$lidadditions = '/^QRP$|^LGT$/';
|
||||||
$csadditions = '/^P$|^R$|^A$|^M$/';
|
$csadditions = '/^P$|^R$|^A$|^M$|^LH$/';
|
||||||
$noneadditions = '/^MM$|^AM$/';
|
$noneadditions = '/^MM$|^AM$/';
|
||||||
|
|
||||||
# First check if the call is in the proper format, A/B/C where A and C
|
# First check if the call is in the proper format, A/B/C where A and C
|
||||||
|
|
|
||||||
正在加载…
在新工单中引用