128 行
		
	
	
		
			无行尾
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			128 行
		
	
	
		
			无行尾
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 | |
| 
 | |
| /*
 | |
| 	Controller to interact with the Clublog API
 | |
| */
 | |
| 
 | |
| class Clublog extends CI_Controller {
 | |
| 
 | |
| 	// Show frontend if there is one
 | |
| 	public function index() {
 | |
| 		$this->config->load('config');
 | |
| 	}
 | |
| 
 | |
| 	// Upload ADIF to Clublog
 | |
| 	public function upload($username) {
 | |
| 		$this->config->load('config');
 | |
| 		ini_set('memory_limit', '-1');
 | |
| 		ini_set('display_errors', 1);
 | |
| 		ini_set('display_startup_errors', 1);
 | |
| 		error_reporting(E_ALL);
 | |
| 
 | |
| 		$this->load->helper('file');
 | |
| 
 | |
| 		$this->load->model('logbook_model');
 | |
| 
 | |
| 		$this->load->model('clublog_model');
 | |
| 
 | |
| 		$clublog_info = $this->clublog_model->get_clublog_auth_info($username);
 | |
| 
 | |
| 		if(!isset($clublog_info['user_name'])) {
 | |
| 			echo "Username unknown";
 | |
| 			exit;
 | |
| 		}
 | |
| 
 | |
| 		$data['qsos'] = $this->logbook_model->get_clublog_qsos();
 | |
| 
 | |
| 		if($data['qsos']->num_rows()){
 | |
| 			// Create ADIF File of contacts not uploaded to Clublog
 | |
| 			$string = $this->load->view('adif/data/clublog', $data, TRUE);
 | |
| 
 | |
| 			$ranid = uniqid();
 | |
| 			if ( ! write_file('uploads/clublog'.$ranid.'.adi', $string)) {
 | |
| 			     echo 'Unable to write the file - Make the folder Upload folder has write permissions.';
 | |
| 			}
 | |
| 			else {
 | |
| 
 | |
| 				$file_info = get_file_info('uploads/clublog'.$ranid.'.adi');
 | |
| 
 | |
| 				// initialise the curl request
 | |
| 				$request = curl_init('https://clublog.org/putlogs.php');
 | |
| 
 | |
| 				if($this->config->item('directory') != "") {
 | |
| 					 $filepath = $_SERVER['DOCUMENT_ROOT']."/".$this->config->item('directory')."/".$file_info['server_path'];
 | |
| 				} else {
 | |
| 					 $filepath = $_SERVER['DOCUMENT_ROOT']."/".$file_info['server_path'];
 | |
| 				}
 | |
| 
 | |
| 				if (function_exists('curl_file_create')) { // php 5.5+
 | |
| 				  $cFile = curl_file_create($filepath);
 | |
| 				} else { // 
 | |
| 				  $cFile = '@' . realpath($filepath);
 | |
| 				}
 | |
| 
 | |
| 				// send a file
 | |
| 				curl_setopt($request, CURLOPT_POST, true);
 | |
| 				curl_setopt(
 | |
| 				    $request,
 | |
| 				    CURLOPT_POSTFIELDS,
 | |
| 				    array(
 | |
| 				      'email' => $clublog_info['user_clublog_name'],
 | |
| 				      'password' => $clublog_info['user_clublog_password'],
 | |
| 				      'callsign' => $clublog_info['user_clublog_callsign'],
 | |
| 				      'api' => "a11c3235cd74b88212ce726857056939d52372bd",
 | |
| 				      'file' => $cFile
 | |
| 				    ));
 | |
| 
 | |
| 				// output the response
 | |
| 				curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
 | |
| 				$response = curl_exec($request);
 | |
| 				$info = curl_getinfo($request);
 | |
| 
 | |
| 				if(curl_errno($request)) {
 | |
| 				    echo curl_error($request);
 | |
| 				}
 | |
| 				curl_close ($request); 
 | |
| 
 | |
| 
 | |
| 				// If Clublog Accepts mark the QSOs
 | |
| 				if (preg_match('/\baccepted\b/', $response)) {
 | |
| 					echo "QSOs uploaded and Logbook QSOs marked as sent to Clublog";
 | |
| 
 | |
| 					$this->load->model('clublog_model');
 | |
| 					$this->clublog_model->mark_qsos_sent();
 | |
| 				} else {
 | |
| 					echo "Error ".$response;
 | |
| 				}
 | |
| 
 | |
| 			}
 | |
| 		} else {
 | |
| 			echo "Nothing awaiting upload to clublog";
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	function markqso() {
 | |
| 		$this->load->model('clublog_model');
 | |
| 		$this->clublog_model->mark_qsos_sent();
 | |
| 	}
 | |
| 
 | |
| 	function markallnotsent() {
 | |
| 		$this->load->model('clublog_model');
 | |
| 		$this->clublog_model->mark_all_qsos_notsent();
 | |
| 	}
 | |
| 
 | |
| 	// Find DXCC
 | |
| 	function find_dxcc($callsign) {
 | |
| 		// Live lookup against Clublogs API
 | |
| 		$url = "https://secure.clublog.org/dxcc?call=".$callsign."&api=a11c3235cd74b88212ce726857056939d52372bd&full=1";
 | |
| 
 | |
| 		$json = file_get_contents($url);
 | |
| 		$data = json_decode($json, TRUE);
 | |
| 
 | |
| 		// echo ucfirst(strtolower($data['Name']));
 | |
| 		return $data;
 | |
| 	}
 | |
| 	
 | |
| 	
 | |
| } |