LoginDB renamed to more general BriskDB and separate the creation of the class with...
[brisk.git] / web / briskin5 / statadm.php
index bebfe11..96b79cd 100644 (file)
@@ -2,7 +2,7 @@
 /*
  *  brisk - statadm.php
  *
- *  Copyright (C) 2009 Matteo Nastasi
+ *  Copyright (C) 2009-2011 Matteo Nastasi
  *                          mailto: nastasi@alternativeoutput.it 
  *                                  matteo.nastasi@milug.org
  *                          web: http://www.alternativeoutput.it
@@ -20,8 +20,6 @@
  * not, write to the Free Software Foundation, Inc, 59 Temple Place -
  * Suite 330, Boston, MA 02111-1307, USA.
  *
- * $Id$
- *
  */
 
 /*
@@ -35,6 +33,10 @@ TODO:
    
 */
 
+$G_base = "../";
+
+ini_set("max_execution_time",  "240");
+
 require_once("../Obj/brisk.phh");
 require_once("../Obj/auth.phh");
 require_once("Obj/briskin5.phh");
@@ -47,18 +49,29 @@ function main()
   $mon = array();
   $wee = array();
   
+  echo "inizio<br>";
+  flush();
   if ($pazz != $G_alarm_passwd)
     exit;
 
-  if (($fp = @fopen(LEGAL_PATH."/legal.log", 'r')) == FALSE) {
+  if (($fp = @fopen(LEGAL_PATH."/points.log", 'r')) == FALSE) {
     echo "Open data file error";
     exit;
   }
-  
-  $userdb = new LoginDB();
+  echo "prima<br>";
+  if (($fp_start = @fopen(LEGAL_PATH."/points.start", 'r')) != FALSE) {
+    $skip = intval(fgets($fp_start));
+    if ($skip > 0)
+      fseek($fp, $skip, SEEK_SET);
+    fclose($fp_start);
+  }
 
-  for ($i = 0 ; $i < $userdb->count() ; $i++) {
-    $login = $userdb->getlogin_byidx($i);
+  $bdb = new BriskDB();
+  $bdb->users_load();
+
+  for ($i = 0 ; $i < $bdb->count() ; $i++) {
+    $login = $bdb->getlogin_byidx($i);
     $tri[$i] = new Ptsgam($login);
     $mon[$i] = new Ptsgam($login);
     $wee[$i] = new Ptsgam($login);
@@ -84,24 +97,46 @@ function main()
       continue;
     // echo $p++."<br>";
     // if to much old points, continue
-    if ($ar[0] < $curtime - TRI_LIMIT)
+    if ($ar[0] < $curtime - TRI_LIMIT) {
+      if (($fp_start = @fopen(LEGAL_PATH."/points.start", 'w')) != FALSE) {
+        $curpos = ftell($fp);
+        fwrite($fp_start, sprintf("%d\n", $curpos));
+        fclose($fp_start);
+      }
+      
       continue;
+    }
     // echo $p++." ".BRISKIN5_PLAYERS_N."<br>";
     
+    $found = FALSE;
+    $mult = 1;
+    for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
+      for ($e = $i + 1 ; $e < BRISKIN5_PLAYERS_N ; $e++) {
+        if ($ar[10+($i*2)] == $ar[10+($e*2)]) {
+          $mult = abs($ar[10+($i*2)]);
+          $found = TRUE;
+        }
+      }
+      if ($found)
+        break;
+    }
+
+    if ($mult == 0)
+       continue;
     for ($i = 0 ; $i < BRISKIN5_PLAYERS_N ; $i++) {
       // echo $p." i) ".$i."<br>";
       $username = $ar[9+($i*2)];
-      if (($item = $userdb->getitem_bylogin($username, &$id)) == FALSE) {
+      if (($item = $bdb->getitem_bylogin($username, &$id)) == FALSE) {
         echo "WARNING: the user [".$username."] NOT EXISTS!<br>";
         continue;
       }
       
-      // echo $item->login." id)".$id."  ".$ar[10+($i*2)]."<br>";
-      $tri[$id]->add($ar[10+($i*2)]);
+      // echo $item->login." id)".$id."  ".$ar[10+($i*2)]." mult: ".$mult."<br>";
+      $tri[$id]->add($ar[10+($i*2)] / $mult);
       if ($ar[0] >= $curtime - MON_LIMIT) 
-        $mon[$id]->add($ar[10+($i*2)]);
+        $mon[$id]->add($ar[10+($i*2)] / $mult);
       if ($ar[0] >= $curtime - WEE_LIMIT) 
-        $wee[$id]->add($ar[10+($i*2)]);
+        $wee[$id]->add($ar[10+($i*2)] / $mult);
     }
     // $p++; echo $p++."<br>";
   }
@@ -111,7 +146,7 @@ function main()
   usort($mon, ptsgam_cmp);
   usort($wee, ptsgam_cmp);
   
-  echo "<br><br>TRI<br>";
+  echo "<br><br>TRI<br>\n";
 
   if (($fplo = @fopen(LEGAL_PATH."/class_tri_lo.log", 'w')) == FALSE) {
     echo "Open tri_lo failed<br>";
@@ -125,16 +160,16 @@ function main()
   for ($i = 0 ; $i < count($tri) ; $i++) {
     if ($tri[$i]->gam == 0.0)
       continue;
-    printf("%s: %s (%d) <br>",  $tri[$i]->username,  $tri[$i]->snormpts(), $tri[$i]->gam);
-    if ($tri[$i]->gam < TRI_FEW_GAMES) 
-      fwrite($fplo, sprintf("%s|%d|%d|\n", xcapelt($tri[$i]->username), $tri[$i]->pts, $tri[$i]->gam));
-    else
+    printf("%s: %s (%d) <br>\n",  $tri[$i]->username,  $tri[$i]->snormpts(), $tri[$i]->gam);
+    if ($tri[$i]->gam >= TRI_MAX_GAMES) 
       fwrite($fphi, sprintf("%s|%d|%d|\n", xcapelt($tri[$i]->username), $tri[$i]->pts, $tri[$i]->gam));
+    else if ($tri[$i]->gam > TRI_MIN_GAMES) 
+      fwrite($fplo, sprintf("%s|%d|%d|\n", xcapelt($tri[$i]->username), $tri[$i]->pts, $tri[$i]->gam));
   }
   fclose($fphi);
   fclose($fplo);
 
-  echo "<br><br>MON<br>";
+  echo "<br><br>MON<br>\n";
 
   if (($fplo = @fopen(LEGAL_PATH."/class_mon_lo.log", 'w')) == FALSE) {
     echo "Open tri_lo failed<br>";
@@ -148,16 +183,16 @@ function main()
   for ($i = 0 ; $i < count($mon) ; $i++) {
     if ($mon[$i]->gam == 0.0)
       continue;
-    printf("%s: %s (%d) <br>",  $mon[$i]->username,  $mon[$i]->snormpts(), $mon[$i]->gam);
-    if ($mon[$i]->gam < MON_FEW_GAMES) 
-      fwrite($fplo, sprintf("%s|%d|%d|\n", xcapelt($mon[$i]->username), $mon[$i]->pts, $mon[$i]->gam));
-    else
+    printf("%s: %s (%d) <br>\n",  $mon[$i]->username,  $mon[$i]->snormpts(), $mon[$i]->gam);
+    if ($mon[$i]->gam >= MON_MAX_GAMES) 
       fwrite($fphi, sprintf("%s|%d|%d|\n", xcapelt($mon[$i]->username), $mon[$i]->pts, $mon[$i]->gam));
+    else if ($mon[$i]->gam > MON_MIN_GAMES) 
+      fwrite($fplo, sprintf("%s|%d|%d|\n", xcapelt($mon[$i]->username), $mon[$i]->pts, $mon[$i]->gam));
   }
   fclose($fphi);
   fclose($fplo);
 
-  echo "<br><br>WEE<br>";
+  echo "<br><br>WEE<br>\n";
   if (($fplo = @fopen(LEGAL_PATH."/class_wee_lo.log", 'w')) == FALSE) {
     echo "Open wee_lo failed<br>";
     exit;
@@ -170,17 +205,17 @@ function main()
   for ($i = 0 ; $i < count($wee) ; $i++) {
     if ($wee[$i]->gam == 0.0) 
       continue;
-    printf("%s: %s (%d) <br>",  $wee[$i]->username,  $wee[$i]->snormpts(), $wee[$i]->gam);
-    if ($wee[$i]->gam < WEE_FEW_GAMES) 
-      fwrite($fplo, sprintf("%s|%d|%d|\n", xcapelt($wee[$i]->username), $wee[$i]->pts, $wee[$i]->gam));
-    else
+    printf("%s: %s (%d) <br>\n",  $wee[$i]->username,  $wee[$i]->snormpts(), $wee[$i]->gam);
+    if ($wee[$i]->gam >= WEE_MAX_GAMES) 
       fwrite($fphi, sprintf("%s|%d|%d|\n", xcapelt($wee[$i]->username), $wee[$i]->pts, $wee[$i]->gam));
+    else if ($wee[$i]->gam > WEE_MIN_GAMES) 
+      fwrite($fplo, sprintf("%s|%d|%d|\n", xcapelt($wee[$i]->username), $wee[$i]->pts, $wee[$i]->gam));
   }
   fclose($fphi);
   fclose($fplo);
 
 
-  echo "FINITO";
+  echo "FINITO\n";
 }
 
 main();