X-Git-Url: http://git.pjr.cc/?p=glcas.git;a=blobdiff_plain;f=libglcas%2Fweb.php;fp=libglcas%2Fweb.php;h=4f26a9bb07eec25e6e4b34e97dc6a2d303abc1cb;hp=6f93f802b654e31c3e4b5bfa6595735954eb0cd0;hb=e81521d3926c7dff1484e5c86a02dcfd8dc93b8e;hpb=e45207eb04184d0ee4c7f7b77bbe74b599c1a003 diff --git a/libglcas/web.php b/libglcas/web.php index 6f93f80..4f26a9b 100644 --- a/libglcas/web.php +++ b/libglcas/web.php @@ -3,6 +3,10 @@ // if i believed in name spacing in php, i'd use it. error_log("glcasweb loaded"); +global $CRON_CLASSES; +$CRON_CLASSES["GLCASWeb"] = "GLCASWeb"; + + class GLCASWeb { function __construct($config) @@ -17,6 +21,10 @@ class GLCASWeb { $url = $_REQUEST["q"]; } + // add a stat + $ipaddr = $_SERVER["REMOTE_ADDR"]; + $this->config->addData("lastseen", "$ipaddr", time(), ""); + // create a url parser $urlparser = new GLCASUrlParser($urlhandlers, $this->config); @@ -26,6 +34,23 @@ class GLCASWeb { $call_class->go($url); } + function cron() + { + echo "WEB base running cron for ipseen roll-up
"; + $lastseen = $this->config->getData("lastseen"); + foreach($lastseen as $key=>$val) { + $myip = $val["category"]; + $myls = $val["name"]; + $ip[$myip] = $myls; + } + + foreach($ip as $key=>$val) { + echo "Setting last seen for $key to $val
"; + $this->config->delData("lastseen", $key); + $this->config->addData("lastseen", $key, $val); + } + } + private $config; } @@ -127,6 +152,37 @@ function GLCASpageBuilder($bodyClass, $bodyFunction, $bodycontent=null, $title=" } +function glcas_getLastSeen($ip, $data) +{ + $last = "never"; + + if(!$data) return $last; + + + + foreach($data as $key=>$val) { + $last = $val["name"]; + error_log("got $last for $ip"); + } + + if($last == "never") return $last; + + $tdiff = time()-$last; + $tdiff_min = (int)($tdiff/60); + $tdiff_hour = (int)($tdiff/3600); + $tdiff_days = (int)($tdiff/86400); + + if($tdiff < 60) $last = "Less then a minute"; + if($tdiff >= 60 && $tdiff < 7200) $last = "$tdiff_min minutes ago"; + if($tdiff >= 7200 && $tdiff < 86400) $last = "$tdiff_hour hours ago"; + if($tdiff >= 86400) $last = "$tdiff_days days ago"; + + error_log("last for $ip set to $last"); + + return $last; + +} + function glcas_isRemoteDir($url) { file_get_contents($url);