Update of /cvsroot/phpweather/phpweather
In directory usw-pr-cvs1:/tmp/cvs-serv30114

Modified Files:
        configurator.php data_retrieval.php db_dba.php db_mysql.php 
        db_null.php defaults-dist.php index.php metar_parser.php 
        stations.csv 
Log Message:
The reports now include the location... just use get_location() to
retrieve it.

This means that what was know as a 'station' before is now known as
'icao'. So the functions have been renamed - I hope I haven't
forgotten something.


Index: configurator.php
===================================================================
RCS file: /cvsroot/phpweather/phpweather/configurator.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- configurator.php    2001/05/19 16:22:09     1.4
+++ configurator.php    2001/05/20 13:07:16     1.5
@@ -7,12 +7,60 @@
 
 <?php
 
+/**
+ * A basic property.
+ *
+ */
 class property {
+
+  /**
+   * The name of the property
+   *
+   * @var     string
+   * @access  private
+   */
   var $name;
+
+  /**
+   * The description of the property
+   *
+   * This is the text that is displayed to the user.
+   *
+   * @var     string
+   * @access  private
+   */
   var $description;
+
+  /**
+   * The data of the property
+   *
+   * If the property can one out of several different values, then this should be an 
+array, where the first entry is the default. Else it should be a string.
+   *
+   * @var     mixed
+   * @access  private
+   */
   var $data;
+
+  /**
+   * A header used in the each line in the config-file.
+   *
+   * All lines in the file start with '$this->properties['property'] = '. This 
+variable holds a string like that, where 'property' is replaced as apropriate.
+   *
+   * @var     string
+   * @access  private
+   */
   var $config_header;
 
+  /**
+   * The constructor.
+   *
+   * It takes care of storing the input in the object, and generates the 
+config_header.
+   *
+   * @param   string  the name of the property
+   * @param   mixed   the data the property should hold
+   * @param   string  the description
+   * @access  public
+   */
   function property($name, $data, $description) {
     $this->name = $name;
     $this->description = $description;
@@ -20,10 +68,22 @@
     $this->config_header = "/* $name */\n\$this->properties['$name'] = ";
   }
 
+  /**
+   * Returns the name of the property.
+   *
+   * @return  string  The name, without any formatting.
+   * @access  public
+   */
   function get_name() {
     return $this->name;
   }
 
+  /**
+   * Returns the description of the property.
+   *
+   * @return  string  The description, without any formatting.
+   * @access  public
+   */
   function get_description() {
     return $this->description;
   }
@@ -144,8 +204,8 @@
               "even if it's too old. But if the data isn't there, " .
               "it will still fetch new data from the Internet.");
 
-$properties['station'] =
-  new text('station',
+$properties['icao'] =
+  new text('icao',
           'EKYT',
           'This will be the default station used by PHP Weather. ' .
           'You should enter a four-letter ICAO.');

Index: data_retrieval.php
===================================================================
RCS file: /cvsroot/phpweather/phpweather/data_retrieval.php,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- data_retrieval.php  2001/04/29 18:39:15     1.7
+++ data_retrieval.php  2001/05/20 13:07:16     1.8
@@ -24,6 +24,14 @@
   var $metar;
 
   /**
+   * The location of the station, eg. something like 'Aalborg, Denmark'.
+   *
+   * @var string
+   */
+  var $location;
+
+
+  /**
    * Constructor
    *
    * This sets the station.
@@ -36,31 +44,32 @@
     $this->db_layer($input);
 
     /* Then we set the station. */
-    $this->set_station($this->properties['station']);
+    $this->set_icao($this->properties['icao']);
 
   }
 
   /**
-   * Returns the station.
+   * Returns the current ICAO.
    *
    * @return   string  The station-ICAO
    * @access   public
    */
-  function get_station() {
-    return $this->properties['station'];
+  function get_icao() {
+    return $this->properties['icao'];
   }
   
   /**
-   * Sets the station.
+   * Sets the station or rather the ICAO.
    *
-   * It also clear the METAR and decoded metar if the station is different from the 
old one. If the new station is the same as the old one, nothing is changed.
+   * It also clear the METAR and decoded METAR if the station is different from the 
+old one. If the new station is the same as the old one, nothing is changed.
    *
-   * @param    string  $new_station    The ICAO of the new station.
+   * @param    string  The ICAO of the new station.
    * @access   public
    */
-  function set_station($new_station) {
-    if ($new_station != $this->get_station()) {
-      $this->properties['station'] = strtoupper($new_station);
+  function set_icao($new_icao) {
+    if ($new_icao != $this->get_icao()) {
+      $this->properties['icao'] = strtoupper($new_icao);
+      $this->location = '';
       $this->metar = '';
       $this->decoded_metar = '';
     }
@@ -102,14 +111,13 @@
    * @return   string  The raw METAR.
    * @access   public
    */
-   
   function get_metar_from_db() {
 
     if (!$this->db->connect()) {
       return false;
     }
     
-    if ($data = $this->db->get_metar($this->get_station())) { /* found station */
+    if ($data = $this->db->get_metar($this->get_icao())) { /* found station */
       $this->notice('Found the METAR in the database');
       list($metar, $timestamp) = $data;
       /* We set the METAR right away, and then count on
@@ -122,22 +130,22 @@
         * still fresh. Either way - we return the METAR we found in
         * the database.
         */
-       $this->notice('Using previously cached METAR for <code>' . 
$this->get_station() . '</code>. The METAR expires in ' . ($timestamp + 3600 - time()) 
. ' seconds.');
+       $this->notice('Using previously cached METAR for <code>' . 
+$this->get_location() . '</code>. The METAR expires in ' . ($timestamp + 3600 - 
+time()) . ' seconds.');
        return $metar;
       } else {
        /* The METAR is too old, so we fetch a new */
-       $this->notice('The METAR for <code>' . $this->get_station() . '</code> was ' . 
(time() - 3600 - $timestamp) . ' seconds too old.');
+       $this->notice('The METAR for <code>' . $this->get_location() . '</code> was ' 
+. (time() - 3600 - $timestamp) . ' seconds too old.');
        return $this->get_metar_from_web(false);
       }
     } else {
       /* We need to get a new METAR from the web. */
-      $this->notice('New station <code>' . $this->get_station() . '</code> - fetching 
a new METAR.');
+      $this->notice('New station <code>' . $this->get_location() . '</code> - 
+fetching a new METAR.');
       return $this->get_metar_from_web(true);
     }
   }
 
   /**
-   * Fetches a METAR for the Internet.
+   * Fetches a METAR from the Internet.
    *
    * The METAR is fetched via HTTP from the National Weather Services public server 
at http://weather.noaa.gov.
    *
@@ -147,10 +155,10 @@
    */
   function get_metar_from_web($new_station) {
     $metar = '';
-    $station = $this->get_station();
+    $icao  = $this->get_icao();
     
     /* We use the @file notation here because it might fail. */
-    $file  = 
@file("http://weather.noaa.gov/pub/data/observations/metar/stations/$station.TXT";);
+    $file  = 
+@file("http://weather.noaa.gov/pub/data/observations/metar/stations/$icao.TXT";);
     /* Here we test to see if we actually got a METAR. */
     if (is_array($file)) {
       /* The first line in the file is the date */
@@ -210,16 +218,25 @@
     
     /* We then cache the METAR in our database */
     if ($new_station) {
-      $this->notice('Inserting new METAR for <code>' . $this->get_station() . 
'</code>');
-      $this->db->insert_metar($station, $metar, $timestamp);
+      $this->notice('Inserting new METAR for <code>' . $this->get_location() . 
+'</code>');
+      $this->db->insert_metar($icao, $metar, $timestamp);
     } else {
-      $this->notice('Updating METAR for <code>' . $this->get_station() . '</code>');
-      $this->db->update_metar($station, $metar, $timestamp);
+      $this->notice('Updating METAR for <code>' . $this->get_location() . '</code>');
+      $this->db->update_metar($icao, $metar, $timestamp);
     }
     /* We update and return the METAR */
     $this->metar = $metar;
     return $metar;
   }
+
+  function get_location() {
+    if (!empty($this->location)) {
+      return $this->location;
+    } else {
+      return $this->location = $this->db->lookup_icao($this->get_icao());
+    }
+  }
+
 }
 
 ?>

Index: db_dba.php
===================================================================
RCS file: /cvsroot/phpweather/phpweather/db_dba.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- db_dba.php  2001/05/19 16:17:53     1.6
+++ db_dba.php  2001/05/20 13:07:16     1.7
@@ -151,11 +151,11 @@
    * @return  string  The full name of the station, including country.
    * @access  public
    */
-  function lookup_station($station) {
-    if (dba_exists($station, $this->link_stations_id)) {
-      return dba_fetch($station, $this->link_stations_id);
+  function lookup_icao($icao) {
+    if (dba_exists($icao, $this->link_stations_id)) {
+      return dba_fetch($icao, $this->link_stations_id);
     } else {
-      return $station;
+      return $icao;
     }
   }
 

Index: db_mysql.php
===================================================================
RCS file: /cvsroot/phpweather/phpweather/db_mysql.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- db_mysql.php        2001/05/19 16:17:53     1.5
+++ db_mysql.php        2001/05/20 13:07:16     1.6
@@ -213,14 +213,14 @@
    * @return  string  The full name of the station, including country.
    * @access  public
    */
-  function lookup_station($station) {
+  function lookup_icao($icao) {
     $this->query('SELECT name, country FROM ' . $this->properties['db_stations'] .
-                "WHERE icao = '$station'");
+                "WHERE icao = '$icao'");
     if ($this->num_rows()) {
       $row = $this->fetch_row();
       return "$row[0], $row[1]";
     } else {
-      return $station;
+      return $icao;
     }
   }
 

Index: db_null.php
===================================================================
RCS file: /cvsroot/phpweather/phpweather/db_null.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- db_null.php 2001/04/26 13:11:00     1.2
+++ db_null.php 2001/05/20 13:07:16     1.3
@@ -79,6 +79,20 @@
   function get_metar($station) {
     return '';
   }
+
+  /**
+   * Pretends to translate an ICAO into a station name
+   *
+   * This function doesn't really do anything.
+   *
+   * @param   string  The ICAO one want's to translate.
+   * @return  string  The ICAO unchanged.
+   * @access  public
+   */
+  function lookup_icao($icao) {
+    return $icao;
+  }
+
 }
 
 ?>

Index: defaults-dist.php
===================================================================
RCS file: /cvsroot/phpweather/phpweather/defaults-dist.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- defaults-dist.php   2001/05/19 16:20:13     1.4
+++ defaults-dist.php   2001/05/20 13:07:16     1.5
@@ -13,7 +13,7 @@
  */
 
 $this->properties['always_use_db'] = false;         /* data_retrieval.php */
-$this->properties['station']       = 'EKYT';        /* data_retrieval.php */
+$this->properties['icao']          = 'EKYT';        /* data_retrieval.php */
 
 $this->properties['db_hostname']   = '';            /* db_common.php */
 $this->properties['db_database']   = '';            /* db_common.php */

Index: index.php
===================================================================
RCS file: /cvsroot/phpweather/phpweather/index.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- index.php   2001/05/19 16:24:00     1.9
+++ index.php   2001/05/20 13:07:16     1.10
@@ -63,7 +63,7 @@
 
 for ($i = 0; $i < $num_stations; $i++) {
   echo "<h1>$stations[$i]</h1>\n";
-  $obj->set_station($stations[$i]);
+  $obj->set_icao($stations[$i]);
   $obj->print_pretty();
   echo '<blockquote><code>' . $obj->metar . "</code></blockquote>";
 }

Index: metar_parser.php
===================================================================
RCS file: /cvsroot/phpweather/phpweather/metar_parser.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- metar_parser.php    2001/04/26 13:11:00     1.5
+++ metar_parser.php    2001/05/20 13:07:16     1.6
@@ -125,8 +125,7 @@
     $decoded_metar['remarks'] = '';
     
     $decoded_metar['metar'] = $this->get_metar();
-    $decoded_metar['location'] = $this->get_station();
-      // $this->lookup_icao($this->get_station());
+    $decoded_metar['location'] = $this->get_location();
 
     $parts = explode(' ', $this->metar);
     $num_parts = count($parts);

Index: stations.csv
===================================================================
RCS file: /cvsroot/phpweather/phpweather/stations.csv,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- stations.csv        2001/05/19 16:15:09     1.1
+++ stations.csv        2001/05/20 13:07:16     1.2
@@ -4,8 +4,7 @@
 # A compilation of airports from
 # http://weather.noaa.gov/weather/ccworld.html
 #
-# Made by Sven-Erik
-# Andersen <[EMAIL PROTECTED]>
+# Made by Sven-Erik Andersen <[EMAIL PROTECTED]>
 
 ## Albania ##
 LATI;Tirana


_______________________________________________
PHPWeather-checkins mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/phpweather-checkins

Reply via email to