Merge pull request #2276 from phl0/lotwMatchOnStationcallsign

Base LoTW matches on time and station_callsign
这个提交包含在:
Peter Goodhall 2023-07-12 10:45:51 +01:00 提交者 GitHub
当前提交 d108ba4a82
找不到此签名对应的密钥
GPG 密钥 ID: 4AEE18F83AFDEB23
共有 17 个文件被更改,包括 33 次插入85 次删除

查看文件

@ -475,7 +475,6 @@ class Lotw extends CI_Controller {
$tableheaders .= "<td>IOTA</td>";
$tableheaders .= "<td>Log Status</td>";
$tableheaders .= "<td>LoTW Status</td>";
$tableheaders .= "<td>Station ID</td>";
$tableheaders .= "</tr>";
$table = "";
@ -499,22 +498,8 @@ class Lotw extends CI_Controller {
}
$status = $this->logbook_model->import_check($time_on, $record['call'], $record['band'], $record['mode'], $record['station_callsign']);
$skipNewQso = $this->input->post('importMissing'); // If import missing was checked
if($status[0] == "No Match" && $skipNewQso != NULL) {
$station_id = $this->logbook_model->find_correct_station_id($record['station_callsign'], $record['my_gridsquare']);
if ($station_id != NULL) {
$result = $this->logbook_model->import($record, $station_id, NULL, TRUE, NULL, NULL, NULL, true, false); // Create the Entry
if ($result == "") {
$lotw_status = 'QSO imported';
} else {
$lotw_status = $result;
}
}
} else {
if($status[0] == "Found") {
if (isset($record['state'])) {
$state = $record['state'];
} else {
@ -551,29 +536,36 @@ class Lotw extends CI_Controller {
$ituz = "";
}
$station_id = $this->logbook_model->find_correct_station_id($record['station_callsign'], $record['my_gridsquare']);
if ($station_id != NULL) {
$lotw_status = $this->logbook_model->lotw_update($time_on, $record['call'], $record['band'], $qsl_date, $record['qsl_rcvd'], $state, $qsl_gridsquare, $iota, $cnty, $cqz, $ituz, $station_id);
} else {
$lotw_status = "No matching Grid/OP-Call (check Locations)";
}
$lotw_status = $this->logbook_model->lotw_update($time_on, $record['call'], $record['band'], $qsl_date, $record['qsl_rcvd'], $state, $qsl_gridsquare, $iota, $cnty, $cqz, $ituz, $record['station_callsign']);
$table .= "<tr>";
$table .= "<td>".$record['station_callsign']."</td>";
$table .= "<td>".$time_on."</td>";
$table .= "<td>".$record['call']."</td>";
$table .= "<td>".$record['mode']."</td>";
$table .= "<td>".$record['qsl_rcvd']."</td>";
$table .= "<td>".$qsl_date."</td>";
$table .= "<td>".$state."</td>";
$table .= "<td>".$qsl_gridsquare."</td>";
$table .= "<td>".$iota."</td>";
$table .= "<td>QSO Record: ".$status[0]."</td>";
$table .= "<td>LoTW Record: ".$lotw_status."</td>";
$table .= "</tr>";
} else {
$table .= "<tr>";
$table .= "<td>".$record['station_callsign']."</td>";
$table .= "<td>".$time_on."</td>";
$table .= "<td>".$record['call']."</td>";
$table .= "<td>".$record['mode']."</td>";
$table .= "<td>".$record['qsl_rcvd']."</td>";
$table .= "<td></td>";
$table .= "<td></td>";
$table .= "<td></td>";
$table .= "<td></td>";
$table .= "<td>QSO Record: ".$status[0]."</td>";
$table .= "<td></td>";
$table .= "</tr>";
}
$table .= "<tr>";
$table .= "<td>".$record['station_callsign']."</td>";
$table .= "<td>".$time_on."</td>";
$table .= "<td>".$record['call']."</td>";
$table .= "<td>".$record['mode']."</td>";
$table .= "<td>".$record['qsl_rcvd']."</td>";
$table .= "<td>".$qsl_date."</td>";
$table .= "<td>".$state."</td>";
$table .= "<td>".$qsl_gridsquare."</td>";
$table .= "<td>".$iota."</td>";
$table .= "<td>QSO Record: ".$status[0]."</td>";
$table .= "<td>LoTW Record: ".$lotw_status."</td>";
$table .= "<td>".$station_id."</td>";
$table .= "</tr>";
}
if ($table != "")

查看文件

@ -31,7 +31,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Upload the Exported ADIF fi
$lang['lotw_upload_type_must_be_adi'] = 'Log files must have the file type .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Pull LoTW data for me';
$lang['lotw_import_missing_qsos_text'] = 'Import missing QSOs into the log. Call and gridsquare will be checked to try to find the correct profile to import the QSO into. If not found, the QSO will be skipped.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog will use the LoTW username and password stored in your user profile to download a report from LoTW for you. The report Cloudlog downloads will have all confirmations since chosen date, or since your last LoTW confirmation (fetched from your log), up until now.';

查看文件

@ -33,7 +33,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = '下载从 LoTW <a href="htt
$lang['lotw_upload_type_must_be_adi'] = '日志文件的类型必须为 .adi';
$lang['lotw_pull_lotw_data_for_me'] = '为我拉取 LoTW 数据';
$lang['lotw_import_missing_qsos_text'] = '从日志中导入缺失的 QSO。为了导入 QSO, 呼号和网格将会被用来查找正确的属性。 如果没有找到,该 QSO 将被跳过。';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog 将会使用储存在你个人用户信息当中的 LoTW 用户名和密码从 LoTW 上为你下载报告。Cloudlog 下载的这份报告将会包括自你所选之日以来的或者你最后的 LoTW 确认信息(目前日志当中)以来的所有确认。';

查看文件

@ -30,7 +30,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Nahraj exportovaný soubor
$lang['lotw_upload_type_must_be_adi'] = 'Deník musí být ve formátu .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Stáhni data z LoTW';
$lang['lotw_import_missing_qsos_text'] = 'Importovat chybějící spojení do deníku. Bude zkontrolována značka a lokátor pro nalezní správného profilu pro import. Pokud nebude nalezeno, spojení bude přeskočeno.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog použije uživatelské jméno a heslo LoTW uložené ve vašem uživatelském profilu, aby vám stáhl datz LoTW.Stažen budu data od nastaveného datumu nebo od posledního stažení až do teď.';

查看文件

@ -34,7 +34,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Upload the Exported ADIF fi
$lang['lotw_upload_type_must_be_adi'] = 'Log files must have the file type .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Pull LoTW data for me';
$lang['lotw_import_missing_qsos_text'] = 'Import missing QSOs into the log. Call and gridsquare will be checked to try to find the correct profile to import the QSO into. If not found, the QSO will be skipped.';
$lang['lotw_report_download_overview_helptext'] = 'Cloudlog will use the LoTW username and password stored in your user profile to download a report from LoTW for you. The report Cloudlog downloads will have all confirmations since chosen date, or since your last LoTW confirmation (fetched from your log), up until now.';

查看文件

@ -34,7 +34,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Lataa ADIF-tiedosto LoTW:n
$lang['lotw_upload_type_must_be_adi'] = 'Lokitiedoston pitää olla ADI-tiedosto --> .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Lataa ja tuo LoTW:n data';
$lang['lotw_import_missing_qsos_text'] = 'Tuo yhteyslokistasi mahdollisesti puuttuvat yhteydet LoTW:n rekisteristä. Kutsu ja lokaattori tarkistetaan, jotta yhteydet sidotaan oikeaan asemaprofiiliin. Jos yhteyttä ei löydy, kusot jätetään tuomatta.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog käyttää profiiliisi tallennettuja LoTW:n käyttäjätietoja lokikoosteen lataamiseen. Lokikooste sisältää tähän päivään asti kaikki kuitatut yhteydet, alkaen valitsemastasi päivästä tai siitä päivästä kun olet viimeksi ne palvelusta ladannut .';

查看文件

@ -30,7 +30,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Envoyer le fichier ADIF exp
$lang['lotw_upload_type_must_be_adi'] = 'Les fichiers de log doivent être au format .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Récuperer mes données LoTW';
$lang['lotw_import_missing_qsos_text'] = 'Importer les QSO manquants dans le log. Les indicatifs et gridsquare seront testés pour essayer de trouver le profil d\'importation correct. Les QSO seront ignorés si non trouvé.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog utilise le nom d\'utilisateur et mot de passe enregistré dans votre profil utilisateur pour télécharger les rapport depuis LoTw. Les rapports téléchargés seront confirmés depuis la date de votre dernière confirmation (extraite de vos log) jusqu\'à aujourd\'hui';

查看文件

@ -34,7 +34,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Lade die exportierte ADIF-D
$lang['lotw_upload_type_must_be_adi'] = 'Logdateien müssen den Dateityp .adi haben';
$lang['lotw_pull_lotw_data_for_me'] = 'Lade LoTW-Daten für mich';
$lang['lotw_import_missing_qsos_text'] = 'Importiere fehlende QSOs in das Log. Rufzeichzeichen und Locator werden geprüft, um das passende Profil zu erkennen, in das importiert werden soll. Kann das nicht gefunden werden, wird das QSO übersprungen.';
$lang['lotw_report_download_overview_helptext'] = 'Cloudlog nutzt Benutzername und Passwort, welche in Deinem Benutzerprofil gespeichert sind, um einen Report vom LoTW zu laden. Der Report, den Cloudlog lädt, enthält alle Bestätigungen seit dem gewählten Datum oder seit der letzen LoTW-Bestätigung (wird aus Deinem Log extrahiert) bis jetzt.';
@ -59,4 +58,4 @@ $lang['lotw_cert_expiring'] = 'Mindestens eines deiner LoTW Zertifikate läuft b
$lang['lotw_cert_expired'] = 'Mindestens eines deiner LoTW Zertifikate ist abgelaufen!';
// Lotw User
$lang['lotw_user'] = 'Diese Station nutzt LoTW. Der letzte Upload war am';
$lang['lotw_user'] = 'Diese Station nutzt LoTW. Der letzte Upload war am';

查看文件

@ -34,7 +34,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Μεταφορτώστε τ
$lang['lotw_upload_type_must_be_adi'] = 'Τα αρχεία καταγραφής πρέπει να έχουν τον τύπο αρχείου .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Τραβήξτε δεδομένα LoTW για μένα';
$lang['lotw_import_missing_qsos_text'] = 'Εισαγάγετε QSO που λείπουν στο αρχείο καταγραφής. Η κλήση και το τετράγωνο πλέγματος θα ελεγχθούν για να βρεθεί το σωστό προφίλ για εισαγωγή του QSO. Εάν δεν βρεθεί, το QSO θα παραλειφθεί.';
$lang['lotw_report_download_overview_helptext'] = 'Το Cloudlog θα χρησιμοποιήσει το όνομα χρήστη και τον κωδικό πρόσβασης LoTW που είναι αποθηκευμένα στο προφίλ χρήστη σας για να πραγματοποιήσει λήψη μιας αναφοράς από το LoTW για εσάς. Οι λήψεις αναφοράς Cloudlog θα έχουν όλες τις επιβεβαιώσεις από την επιλεγμένη ημερομηνία ή από την τελευταία επιβεβαίωση LoTW (που ελήφθη από το αρχείο καταγραφής σας), μέχρι τώρα.';

查看文件

@ -33,7 +33,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Carica il file ADIF Esporta
$lang['lotw_upload_type_must_be_adi'] = 'I file di log devono essere di tipo .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Ottieni dati da LoTW per me';
$lang['lotw_import_missing_qsos_text'] = 'Importa i QSO mancanti nel log. Nominativi e quadratone verranno controllati per cercare di trovare il profilo corretto in cui importare il QSO. Se non viene trovato, il QSO verrà saltato.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog userà il nome utente e password LoTW memorizzato nel tuo profilo per scaricare un report da LoTW per te. Il report scaricato da Cloudlog avrà tutte le conferme fino alla data scelta, o fino alla ultima conferma su LoTW (recuperato dal tuo log), fino ad ora.';

查看文件

@ -31,7 +31,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Wyślij pobrany plik ADIF z
$lang['lotw_upload_type_must_be_adi'] = 'Pliki logu muszą mieć rozszerzenie .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Pobierz dane z LOTW za mnie';
$lang['lotw_import_missing_qsos_text'] = 'Wyślij brakujące łączności do logu. Znak i lokator będą sprawdzone, aby dopasować odpowiedni profil do wgrania łączności. jeśli nie zostaną znalezione, łączność będzie pominięta.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog będzie używał loginu i hasła podanego w profilu, aby pobierać raporty z LOTW.Raport będzie zawierał wszystkie potwierdzenia od wybranej daty, lub ostatniej potwierdzonej łączności z LOTW (wybranej z logiu), do teraz.';

查看文件

@ -34,7 +34,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Загрузить эксп
$lang['lotw_upload_type_must_be_adi'] = 'Файлы журнала должны быть с расширением .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Подтянуть мои данные из LoTW';
$lang['lotw_import_missing_qsos_text'] = 'Импортировать недостаюющие QSO в журнал. Позывной и QTH-локатор будут проверены с целью определения подходящего профиля для импорта QSO. Если профиль не будет идентифицирован, QSO будет пропущено.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog использует логин и пароль для LoTW, сохранённые в вашем профиле, для того чтобы скачивать ваши журналы с LoTW. Журнал, скачанный в Cloudlog будет содержать все подтверждения, начиная с выбранной даты, или начиная с последнего подтверждения в LoTW (загруженного из вашего журнала), до настоящего момента.';
// Buttons

查看文件

@ -31,7 +31,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Suba el archivo ADIF export
$lang['lotw_upload_type_must_be_adi'] = 'Los archivos de registro deben ser del tipo .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Extraer los datos LoTW por mí';
$lang['lotw_import_missing_qsos_text'] = 'Importar los QSOs faltantes en el registro. El indicativo y el <i>gridsquare</i> serán comprobados a fin de encontrar el perfil correcto para importar el QSO. Si no fueran encontrados, el QSO será omitido.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog usará el usuario y contraseña de LoTW guardado en su perfil para descargar un informe de LoTW por usted. El informe contendrá todas las confirmaciones desde la fecha elegida o desde su última confirmación LoTW hasta ahora.';

查看文件

@ -33,7 +33,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'Ladda upp exporterad ADIF f
$lang['lotw_upload_type_must_be_adi'] = 'Loggfil måste vara av format .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Hämta LoTW data';
$lang['lotw_import_missing_qsos_text'] = 'Importera saknade QSOs till loggen. Signal och lokator kommer att kontrolleras för att försöka hitta rätt profil att importera QSOt till. Om inget QSO hittas kommer det att ignoreras.';
$lang['lotw_report_download_overview_helptext'] = 'Cloudlog använder LoTW användarnamn och lösenord som är sparat i din användarprofil för att ladda ner repport från LoTW. Rapporten Cloudlog kommer att ladda ner kommer att ha alla bekräftelser sedan valt datum, eller sedan din senaste LoTW-bekräftelse (hämtad från din logg), fram till nu.';

查看文件

@ -33,7 +33,6 @@ $lang['lotw_upload_exported_adif_file_from_lotw'] = 'LoTW\'den Dışa Aktarılan
$lang['lotw_upload_type_must_be_adi'] = 'Günlük dosyaları .adi dosya tipine sahip olmalıdır';
$lang['lotw_pull_lotw_data_for_me'] = 'Benim için LoTW verilerini çek';
$lang['lotw_import_missing_qsos_text'] = 'Eksik QSO\'ları günlüğe aktarın. QSO\'nun içe aktarılacağı doğru profili bulmaya çalışmak için çağrı ve gridsquare kontrol edilecektir. Bulunamazsa, QSO atlanacaktır.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog, sizin için LoTW\'den bir rapor indirmek için kullanıcı profilinizde kayıtlı LoTW kullanıcı adını ve şifreyi kullanacak. Cloudlog indirmeleri raporu, seçilen tarihten itibaren veya son LoTW onayınızdan (günlüğünüzden alınır) bu yana şimdiye kadarki tüm onaylara sahip olacaktır.';

查看文件

@ -2636,7 +2636,7 @@ class Logbook_model extends CI_Model {
}
}
function lotw_update($datetime, $callsign, $band, $qsl_date, $qsl_status, $state, $qsl_gridsquare, $iota, $cnty, $cqz, $ituz, $station_id) {
function lotw_update($datetime, $callsign, $band, $qsl_date, $qsl_status, $state, $qsl_gridsquare, $iota, $cnty, $cqz, $ituz, $station_callsign) {
$data = array(
'COL_LOTW_QSLRDATE' => $qsl_date,
@ -2665,7 +2665,7 @@ class Logbook_model extends CI_Model {
$this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = "'.$datetime.'"');
$this->db->where('COL_CALL', $callsign);
$this->db->where('COL_BAND', $band);
$this->db->where('station_id', $station_id);
$this->db->where('COL_STATION_CALLSIGN', $station_callsign);
$this->db->update($this->config->item('table_name'), $data);
unset($data);
@ -3922,28 +3922,6 @@ class Logbook_model extends CI_Model {
return $query->result();
}
/*
* This function tries to locate the correct station_id used for importing QSOs from the downloaded LoTWreport
* $station_callsign is the call listed for the qso in lotwreport
* $my_gridsquare is the gridsquare listed for the qso in lotwreport
* Returns station_id if found
*/
function find_correct_station_id($station_callsign, $my_gridsquare) {
$sql = 'select station_id from station_profile
where station_callsign = "' . $station_callsign . '" and station_gridsquare = "' .$my_gridsquare. '"';
$query = $this->db->query($sql);
$result = $query->row();
if ($result) {
return $result->station_id;
}
else {
return null;
}
}
function get_lotw_qsos_to_upload($station_id, $start_date, $end_date) {
$this->db->select('COL_PRIMARY_KEY,COL_CALL, COL_BAND, COL_BAND_RX, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_SUBMODE, COL_FREQ, COL_FREQ_RX, COL_GRIDSQUARE, COL_SAT_NAME, COL_PROP_MODE, COL_LOTW_QSL_SENT, station_id');

查看文件

@ -41,14 +41,6 @@
</div>
</div>
<br/>
<div class="form-group row" style="display: none">
<div class="col-md-10">
<div class="form-check-inline">
<input class="form-check-input" type="checkbox" name="importMissing" value="1" id="importMissing">
<label class="form-check-label" for="importMissing"><?php echo lang('lotw_import_missing_qsos_text'); ?></label>
</div>
</div>
</div>
<p class="form-text text-muted"><?php echo lang('lotw_report_download_overview_helptext'); ?></p>