copyright updated and mop user status added
[brisk.git] / web / briskin5 / statadm.php
index 19038f8..2c488f0 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,8 @@ TODO:
    
 */
 
+ini_set("max_execution_time",  "240");
+
 require_once("../Obj/brisk.phh");
 require_once("../Obj/auth.phh");
 require_once("Obj/briskin5.phh");
@@ -47,6 +47,8 @@ function main()
   $mon = array();
   $wee = array();
   
+  echo "inizio<br>";
+  flush();
   if ($pazz != $G_alarm_passwd)
     exit;
 
@@ -54,7 +56,15 @@ function main()
     echo "Open data file error";
     exit;
   }
-  
+  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);
+  }
+
   $userdb = new LoginDB();
 
   for ($i = 0 ; $i < $userdb->count() ; $i++) {
@@ -84,10 +94,32 @@ 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)];
@@ -96,12 +128,12 @@ function main()
         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 +143,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 +157,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 +180,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 +202,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();