]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
configurable expiry for cached Geonames data defaults to 90 days
authorEvan Prodromou <evan@status.net>
Fri, 4 Dec 2009 21:25:05 +0000 (16:25 -0500)
committerEvan Prodromou <evan@status.net>
Fri, 4 Dec 2009 21:25:05 +0000 (16:25 -0500)
plugins/GeonamesPlugin.php

index fdbf79e413b2d86e4a70984da6e245e45ef093fb..a750f1242603bbf1857d2d28ab793cfa2747f02f 100644 (file)
@@ -54,6 +54,7 @@ class GeonamesPlugin extends Plugin
     public $host     = 'ws.geonames.org';
     public $username = null;
     public $token    = null;
+    public $expiry   = 7776000; // 90-day expiry
 
     /**
      * convert a name into a Location object
@@ -197,6 +198,9 @@ class GeonamesPlugin extends Plugin
 
     function onLocationFromLatLon($lat, $lon, $language, &$location)
     {
+        $lat = rtrim($lat, "0");
+        $lon = rtrim($lon, "0");
+
         $loc = $this->getCache(array('lat' => $lat,
                                      'lon' => $lon));
 
@@ -380,7 +384,11 @@ class GeonamesPlugin extends Plugin
             return null;
         }
 
-        return $c->get($this->cacheKey($attrs));
+        $key = $this->cacheKey($attrs);
+
+        $value = $c->get($key);
+
+        return $value;
     }
 
     function setCache($attrs, $loc)
@@ -391,18 +399,11 @@ class GeonamesPlugin extends Plugin
             return null;
         }
 
-        $c->set($this->cacheKey($attrs), $loc);
-    }
-
-    function clearCache($attrs)
-    {
-        $c = common_memcache();
+        $key = $this->cacheKey($attrs);
 
-        if (empty($c)) {
-            return null;
-        }
+        $result = $c->set($key, $loc, 0, time() + $this->expiry);
 
-        $c->delete($this->cacheKey($attrs));
+        return $result;
     }
 
     function cacheKey($attrs)