[ADIF Import] Added option to always use login call as operator. Request by OE3IDE.

pull/1013/head
Andreas 2021-05-01 19:52:13 +02:00
rodzic de5671ef57
commit 64827f4506
5 zmienionych plików z 57 dodań i 42 usunięć

Wyświetl plik

@ -226,7 +226,7 @@ class adif extends CI_Controller {
$custom_errors .= $this->logbook_model->import($record, $this->input->post('station_profile'),
$this->input->post('skipDuplicate'), $this->input->post('markLotw'), $this->input->post('dxccAdif'), $this->input->post('markQrz'), true);
$this->input->post('skipDuplicate'), $this->input->post('markLotw'), $this->input->post('dxccAdif'), $this->input->post('markQrz'), true, $this->input->post('operatorName'));
};

Wyświetl plik

@ -60,7 +60,7 @@ class API extends CI_Controller {
function edit($key) {
$this->load->model('user_model');
if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
$this->load->model('api_model');
@ -426,12 +426,12 @@ class API extends CI_Controller {
{
break;
};
if(isset($obj['station_profile_id'])) {
$this->logbook_model->import($record, $obj['station_profile_id'], NULL, NULL, NULL, NULL, false);
$this->logbook_model->import($record, $obj['station_profile_id'], NULL, NULL, NULL, NULL, false, false);
} else {
$this->logbook_model->import($record, 0, NULL, NULL, NULL, NULL, false);
$this->logbook_model->import($record, 0, NULL, NULL, NULL, NULL, false, false);
}
};

Wyświetl plik

@ -5,7 +5,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Controller: Lotw
|--------------------------------------------------------------------------
|
|
| This Controller handles all things LOTW, upload and download.
|
|
@ -23,7 +23,7 @@ class Lotw extends CI_Controller {
{
parent::__construct();
$this->load->helper(array('form', 'url'));
// Load language files
$this->lang->load('lotw');
}
@ -32,7 +32,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: index
|--------------------------------------------------------------------------
|
|
| Default function for the controller which loads when doing /lotw
| this shows all the uploaded lotw p12 certificates the user has uploaded
|
@ -65,7 +65,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: cert_upload
|--------------------------------------------------------------------------
|
|
| Nothing fancy just shows the cert_upload form for uploading p12 files
|
*/
@ -83,14 +83,14 @@ class Lotw extends CI_Controller {
// Load Views
$this->load->view('interface_assets/header', $data);
$this->load->view('lotw_views/upload_cert', array('error' => ' ' ));
$this->load->view('interface_assets/footer');
$this->load->view('interface_assets/footer');
}
/*
|--------------------------------------------------------------------------
| Function: do_cert_upload
|--------------------------------------------------------------------------
|
|
| do_cert_upload is called from cert_upload form submit and handles uploading
| and processing of p12 files and storing the data into mysql
|
@ -127,7 +127,7 @@ class Lotw extends CI_Controller {
// Load Views
$this->load->view('interface_assets/header', $data);
$this->load->view('lotw_views/upload_cert', $error);
$this->load->view('interface_assets/footer');
$this->load->view('interface_assets/footer');
}
else
{
@ -141,10 +141,10 @@ class Lotw extends CI_Controller {
// Check DXCC & Store Country Name
$this->load->model('Logbook_model');
if($this->input->post('dxcc') != "") {
$dxcc = $this->input->post('dxcc');
} else{
} else{
$dxcc_check = $this->Logbook_model->check_dxcc_table($info['issued_callsign'], $info['validFrom']);
$dxcc = $dxcc_check[1];
}
@ -193,7 +193,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: lotw_upload
|--------------------------------------------------------------------------
|
|
| This function Uploads to LOTW
|
*/
@ -242,9 +242,9 @@ class Lotw extends CI_Controller {
if(empty($data['qsos']->result())){
echo $station_profile->station_callsign." (".$station_profile->station_profile_name.") No QSOs to Upload <br>";
continue;
}
}
foreach ($data['qsos']->result() as $temp_qso) {
foreach ($data['qsos']->result() as $temp_qso) {
array_push($qso_id_array, $temp_qso->COL_PRIMARY_KEY);
}
@ -266,25 +266,25 @@ class Lotw extends CI_Controller {
//The URL that accepts the file upload.
$url = 'https://lotw.arrl.org/lotw/upload';
//The name of the field for the uploaded file.
$uploadFieldName = 'upfile';
//The full path to the file that you want to upload
$filePath = realpath($filename_for_saving);
//Initiate cURL
$ch = curl_init();
//Set the URL
curl_setopt($ch, CURLOPT_URL, $url);
//Set the HTTP request to POST
curl_setopt($ch, CURLOPT_POST, true);
//Tell cURL to return the output as a string.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//If the function curl_file_create exists
if(function_exists('curl_file_create')){
//Use the recommended way, creating a CURLFile object.
@ -298,23 +298,23 @@ class Lotw extends CI_Controller {
//starting with an @
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
}
//Setup our POST fields
$postFields = array(
$uploadFieldName => $filePath
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
//Execute the request
$result = curl_exec($ch);
//If an error occured, throw an exception
//with the error message.
if(curl_errno($ch)){
throw new Exception(curl_error($ch));
}
$pos = strpos($result, "<!-- .UPL. accepted -->");
if ($pos === false) {
@ -353,7 +353,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: delete_cert
|--------------------------------------------------------------------------
|
|
| Deletes LOTW certificate from the MySQL table
|
*/
@ -375,7 +375,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: decrypt_key
|--------------------------------------------------------------------------
|
|
| Accepts p12 file and optional password and encrypts the file returning
| the required fields for LOTW and the PEM Key
|
@ -429,12 +429,12 @@ class Lotw extends CI_Controller {
return $data;
}
/*
|--------------------------------------------------------------------------
| Function: loadFromFile
|--------------------------------------------------------------------------
|
|
| $filepath is the ADIF file, $display_view is used to hide the output if its internal script
|
| Internal function that takes the LoTW ADIF and imports into the log
@ -498,7 +498,7 @@ class Lotw extends CI_Controller {
$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, true); // Create the Entry
$result = $this->logbook_model->import($record, $station_id, NULL, TRUE, NULL, NULL, true, false); // Create the Entry
if ($result == "") {
$lotw_status = 'QSO imported';
} else {
@ -557,8 +557,8 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: lotw_download
|--------------------------------------------------------------------------
|
| Collects users with LoTW usernames and passwords and runs through them
|
| Collects users with LoTW usernames and passwords and runs through them
| downloading matching QSOs.
|
*/
@ -834,11 +834,11 @@ class Lotw extends CI_Controller {
/*
Load the ARRL LOTW User Activity CSV and saves into uploads/lotw_users.csv
*/
*/
public function load_users() {
$contents = file_get_contents('https://lotw.arrl.org/lotw-user-activity.csv', true);
if($contents === FALSE) {
if($contents === FALSE) {
echo "something went wrong";
} else {
$file = './updates/lotw_users.csv';
@ -909,7 +909,7 @@ class Lotw extends CI_Controller {
return array_search(strtoupper($satname),$arr,true);
}
/*
| Function: mode_map
| Requires: mode as $mode, submode as $submode

Wyświetl plik

@ -1502,7 +1502,7 @@ class Logbook_model extends CI_Model {
* $markQrz - used in ADIF import to mark QSOs as exported to QRZ Logbook when importing QSOs
* $skipexport - used in ADIF import to skip the realtime upload to QRZ Logbook when importing QSOs from ADIF
*/
function import($record, $station_id = "0", $skipDuplicate = false, $markLotw = false, $dxccAdif = false, $markQrz = false, $skipexport = false) {
function import($record, $station_id = "0", $skipDuplicate = false, $markLotw = false, $dxccAdif = false, $markQrz = false, $skipexport = false, $operatorName = false) {
$CI =& get_instance();
$CI->load->library('frequency');
$my_error = "";
@ -1805,6 +1805,12 @@ class Logbook_model extends CI_Model {
}
}
if ($operatorName != false) {
$operatorName = $this->session->userdata('user_callsign');
} else {
$operatorName = (!empty($record['operator'])) ? $record['operator'] : '';
}
// If user checked to mark QSOs as uploaded to QRZ Logbook, or else we try to find info in ADIF import.
if ($markQrz != null) {
$input_qrzcom_qso_upload_status = 'Y';
@ -1918,7 +1924,7 @@ class Logbook_model extends CI_Model {
'COL_NOTES_INTL' => (!empty($record['notes_intl'])) ? $record['notes_intl'] : '',
'COL_NR_BURSTS' => (!empty($record['nr_bursts'])) ? $record['nr_bursts'] : null,
'COL_NR_PINGS' => (!empty($record['nr_pings'])) ? $record['nr_pings'] : null,
'COL_OPERATOR' => (!empty($record['operator'])) ? $record['operator'] : '',
'COL_OPERATOR' => $operatorName,
'COL_OWNER_CALLSIGN' => (!empty($record['owner_callsign'])) ? $record['owner_callsign'] : '',
'COL_PFX' => (!empty($record['pfx'])) ? $record['pfx'] : '',
'COL_PRECEDENCE' => (!empty($record['precedence'])) ? $record['precedence'] : '',
@ -2170,7 +2176,7 @@ class Logbook_model extends CI_Model {
print("$count updated\n");
}
public function check_missing_grid_id($all){
// get all records with no COL_GRIDSQUARE
$this->db->select("COL_PRIMARY_KEY, COL_CALL, COL_TIME_ON, COL_TIME_OFF");

Wyświetl plik

@ -82,6 +82,15 @@
</div>
</div>
<div class="form-group row">
<div class="col-md-10">
<div class="form-check-inline">
<input class="form-check-input" type="checkbox" name="operatorName" value="1" id="operatorName">
<label class="form-check-label" for="operatorName">Always use login-callsign as operator-name on import</label>
</div>
</div>
</div>
<button type="submit" class="btn-sm btn-primary mb-2" value="Upload">Upload</button>
</form>
</div>