186 行
		
	
	
		
			无行尾
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			186 行
		
	
	
		
			无行尾
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| class Update extends CI_Controller {
 | |
| 
 | |
| 	/*
 | |
| 		Controls Updating Elements of Cloudlog
 | |
| 		Functions:
 | |
| 			dxcc - imports the latest clublog cty.xml data
 | |
| 			lotw_users - imports lotw users
 | |
| 	*/
 | |
| 	
 | |
| 	public function index()
 | |
| 	{
 | |
| 		// Create frontend pages.
 | |
| 	}
 | |
| 	
 | |
| 	// Updates the DXCC & Exceptions from the Clublog Cty.xml file.
 | |
| 	public function dxcc() {
 | |
| 	
 | |
| 		// Load Migration data if any.
 | |
| 		$this->load->library('migration');
 | |
| 
 | |
| 		if ( ! $this->migration->latest())
 | |
| 		{
 | |
| 			show_error($this->migration->error_string());
 | |
| 		}
 | |
| 	
 | |
| 		// Download latest file.
 | |
| 		$url = "https://secure.clublog.org/cty.php?api=a11c3235cd74b88212ce726857056939d52372bd";
 | |
| 		
 | |
| 		$gz = gzopen($url, 'r');
 | |
| 		$data = "";
 | |
| 		while (!gzeof($gz)) {
 | |
| 		  $data .= gzgetc($gz);
 | |
| 		}
 | |
| 		gzclose($gz);
 | |
| 		
 | |
| 		file_put_contents('./updates/cty.xml', $data);
 | |
| 	
 | |
| 		// Set timeout to unlimited
 | |
| 		set_time_limit(0);
 | |
| 	
 | |
| 		// Load Database connectors
 | |
| 		$this->load->model('dxcc');
 | |
| 
 | |
| 		// Load the cty file
 | |
| 		$xml_data = simplexml_load_file("updates/cty.xml");
 | |
| 		
 | |
| 		$this->dxcc->empty_table("dxcc");
 | |
| 		
 | |
| 		echo "<h2>Prefix List</h2>";
 | |
| 		
 | |
| 		echo "<table>";
 | |
| 		echo "<tr>";
 | |
| 		echo "<td>Prefix</td>";
 | |
| 		echo "<td>Country Name</td>";
 | |
| 		echo "<td>DXCC Expire Date</td>";
 | |
| 		echo "</tr>";
 | |
| 		
 | |
| 		foreach ($xml_data->prefixes as $prefixs) {
 | |
| 			foreach ($prefixs->prefix as $callsign) {
 | |
| 				$endinfo = strtotime($callsign->end);
 | |
| 				
 | |
| 				if($endinfo) {
 | |
| 					$end_date = date('Y-m-d H:i:s',$endinfo);
 | |
| 				} else {
 | |
| 					$end_date = "";
 | |
| 				}
 | |
| 			
 | |
| 				if(!$callsign->cqz) {
 | |
| 					$data = array(
 | |
| 					   'prefix' => (string) $callsign->call,
 | |
| 					   'name' =>  (string) $callsign->entity,
 | |
| 					);
 | |
| 				} else {
 | |
| 					$data = array(
 | |
| 					   'prefix' => (string)  $callsign->call,
 | |
| 					   'name' =>  (string) $callsign->entity,
 | |
| 					   'cqz' => (string) $callsign->cqz,
 | |
| 					   'ituz' => (string) $callsign->ituz,
 | |
| 					   'cont' => (string) $callsign->cont,
 | |
| 					   'long' => (string) $callsign->long,
 | |
| 					   'lat' => (string) $callsign->lat,
 | |
| 						 'end_date' => $end_date,
 | |
| 					);	
 | |
| 				}
 | |
| 			
 | |
| 				echo "<tr>";
 | |
| 				echo "<td>".$callsign->call."</td>";
 | |
| 				echo "<td>".ucwords(strtolower($callsign->entity))."</td>";
 | |
| 				echo "<td>".$end_date."</td>";
 | |
| 				echo "<td>".$callsign->deleted."</td>";
 | |
| 				echo "</tr>";
 | |
| 
 | |
| 				$this->db->insert('dxcc', $data); 
 | |
| 			}
 | |
| 		}
 | |
| 		echo "<table>";
 | |
| 		
 | |
| 				// empty table
 | |
| 		$this->dxcc->empty_table("dxccexceptions");
 | |
| 		
 | |
| 		echo "<h2>Exceptions</h2>";
 | |
| 		
 | |
| 		echo "<table>";
 | |
| 		
 | |
| 		foreach ($xml_data->exceptions as $exceptions) {
 | |
| 			foreach ($exceptions->exception as $callsign) {
 | |
| 			
 | |
| 			echo "<tr>";
 | |
| 				echo "<td>".$callsign->call."</td>";
 | |
| 				echo "<td>".$callsign->entity."</td>";
 | |
| 			echo "</tr>";
 | |
| 
 | |
| 				
 | |
| 				if(!$callsign->start) {
 | |
| 					$data = array(
 | |
| 						'prefix' => (string)  $callsign->call,
 | |
| 						'name' =>  (string) $callsign->entity,
 | |
| 						'cqz' => (string) $callsign->cqz,
 | |
| 						'ituz' => (string) $callsign->ituz,
 | |
| 						'cont' => (string) $callsign->cont,
 | |
| 						'long' => (string) $callsign->long,
 | |
| 						'lat' => (string) $callsign->lat
 | |
| 					);	
 | |
| 				} else {
 | |
| 				
 | |
| 					$startinfo = strtotime($callsign->start);
 | |
| 				
 | |
| 					if($startinfo) {
 | |
| 						$start = date('Y-m-d H:i:s',$startinfo);
 | |
| 					} else {
 | |
| 						$start = "";
 | |
| 					}
 | |
| 				
 | |
| 					$endinfo = strtotime($callsign->end);
 | |
| 				
 | |
| 					if($endinfo) {
 | |
| 						$end = date('Y-m-d H:i:s',$endinfo);
 | |
| 					} else {
 | |
| 						$end = "";
 | |
| 					}
 | |
| 				
 | |
| 					$data = array(
 | |
| 						'prefix' => (string) $callsign->call,
 | |
| 						'name' =>  (string) $callsign->entity,
 | |
| 						'cqz' => (string) $callsign->cqz,
 | |
| 						'ituz' => (string) $callsign->ituz,
 | |
| 						'cont' => (string) $callsign->cont,
 | |
| 						'long' => (string) $callsign->long,
 | |
| 						'lat' => (string) $callsign->lat,
 | |
| 						'start' => $start,
 | |
| 						'end' => $end
 | |
| 					);	
 | |
| 				}
 | |
| 
 | |
| 				$this->db->insert('dxccexceptions', $data); 
 | |
| 				
 | |
| 			}
 | |
| 		}
 | |
| 		
 | |
| 		echo "<table>";
 | |
| 		
 | |
| 	}
 | |
| 	
 | |
| 	public function lotw_users() {
 | |
| 		// Load Database connectors
 | |
| 		$this->load->model('lotw');
 | |
| 		
 | |
| 		$this->lotw->empty_table("lotw_list");
 | |
| 		
 | |
| 		$lines = file('http://www.hb9bza.net/lotw/lotw1.txt');
 | |
| 
 | |
| 		// Loop through our array, show HTML source as HTML source; and line numbers too.
 | |
| 		foreach ($lines as $line_num => $line) {
 | |
| 			 echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
 | |
| 			 
 | |
| 			 $data = array(
 | |
| 					'Callsign' => $line,
 | |
| 				);
 | |
| 
 | |
| 			$this->db->insert('lotw_list', $data); 
 | |
| 			 
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| ?>
 |