Uzanto:ArnoLagrange/150000/skripto

Tio ĉi estas php-skripto por duon-aŭtomate ĝisdatigi la paĝon Uzanto:ArnoLagrange/150000 el Novaj paĝoj. Kaze ke mi ne havus tempon tion fari, iu alia povus transpreni la taskon

Lasta ĝisdatigo 8-a de aŭgusto, je 14:08
lasta artikolo Tombo de Hafizo
artikolnombro 150096
artikolnombro de la lasta tago 18
<?
// "NovajPaghoj.txt" estas la teksto kopiita el Novaj_paĝoj 
// de la unua linio ĝis la linio antaŭ la unua linio kopiita en la antaŭa fojo

        $handle = fopen("NovajPaghoj.txt", "r");
        $Teksto = fread($handle, filesize("NovajPaghoj.txt"));

$Autoroj= array(
'Conrado' =>116,
'Thomas Guibal(A)' =>92,
'Crosstor' =>20,
'Jean-François Clet' =>18,
'Zetey' =>12,
'ThomasPusch' =>11,
'Andy' =>10,
'DidiWeidmann(A)' =>6,
'80.139.87.3' =>4,
'Maksim' =>4,
'Forstbirdo' =>4,
'89.3.85.141' =>3,
'80.139.76.175' =>3,
'Haruo' =>3,
'Haistakaa!' =>2,
'80.139.80.224' =>2,
'Dgarciaf' =>2,
'Fimako' =>2,
'Petr Tomasovsky' =>2,
'Longharulo' =>2,
'Pino' =>2,
'80.139.73.240' =>2,
'Kopenhago6969' =>2,
'80.139.26.20' =>1,
'217.8.209.96' =>1,
'80.139.35.158' =>1,
'Yvesn' =>1,
'80.139.87.49' =>1,
'ArnoLagrange(A)(B)' =>1,
'80.139.71.76' =>1,
'Walber' =>1,
'80.139.59.246' =>1,
'80.139.53.169' =>1,
'80.139.34.104' =>1,
'Sectori' =>1,
'Custinne' =>1,
'Sliwinski' =>1,
'80.139.50.177' =>1,
'80.139.85.201' =>1,
'80.139.34.171' =>1,
'DidCORN' =>1,
);
$PasintajTagoj= array(
'32' =>113,
'31' =>88,
'30' =>58,
'29' =>84,
);
function jam() {return 18; } 
function Uzanto($Autornomo)
{
   $Admin= strpos($Autornomo,"(A)");
   if ($Admin===false)
      { $Uzanto=$Autornomo;}
   else   
      { $Uzanto=substr($Autornomo,0,$Admin);}
   $IP0=strpos($Autornomo,".");
   if ($IP0!=false)
   { $IP1=strpos($Autornomo,".", $IP0);
      if ($IP1!=false)
      { $IP2=strpos($Autornomo,".", $IP1);}
   }   
   if (($IP0!=false) && ($IP1!=false)&& ($IP2!=false))
   { $Uzanto= "[[Specialaĵo:Kontribuoj/".$Autornomo."|".$Autornomo."]]"; }
   else
   { $Uzanto = "[[Uzanto:".$Uzanto."|".$Uzanto."]]"; }
   return $Uzanto;   
}

// tagoj de la 1a ĝis la 31a de aŭgusto (inverse)
        $i=0;
        for ($j=31;$j>0;$j--)
        {
                $Tagoj[$i]=$j." Aŭg. 2011";
                $i++;
        }
      $Tagoj[$i]=  "31 Jul. 2011";
      $i++;
      $Tagoj[$i]=  "30 Jul. 2011";
        $i=0;
        foreach($Tagoj as $j => $Tago)
        {
                $ArtikolTago[$j]= $Tago;
                $ArtikolTagNombro[$j]=0;
                $Fino="ne";
                while ($Fino=="ne")
                {
                 $poz=strpos($Teksto,$Tago);
                 if ($poz === false)
                    {$Fino="jes";}      
                 else 
                    {
 
                    $TagNomLongeco=strlen($Tago);
                    $NomKomenco=$poz+$TagNomLongeco;
                    if($NomKomenco!=0) 
                        {
                     $LiniKomenco=$NomKomenco-$TagNomLongeco-7; 

                     if ($LiniKomenco>0)
                      {
                            $Teksto=substr($Teksto,$LiniKomenco);
                            $NomKomenco=strpos($Teksto, $Tago)+$TagNomLongeco+1;
                            $NomFino=strpos($Teksto,"(historio)")-1;
                             $AutorKomenco=strpos($Teksto,"bitokoj]")+12;
                             $AutorFino=strpos($Teksto,"(Diskuto")-2;
                             if ($i==0) 
                             {
                               $LastaTago=$Tago;
                               $ArtikolTagNombro[$j]= jam();
                             }
                             if($NomFino===false) 
                                {$Fino="jes";}
                             else
                                 {
                                     $Artikoloj[$i]["Nomo"]=substr($Teksto,$NomKomenco,$NomFino-$NomKomenco); 
                                     $Artikoloj[$i]["Horo"]=substr($Teksto,0,5);
                                     $Artikoloj[$i]["Autoro"]= substr($Teksto,$AutorKomenco,$AutorFino-$AutorKomenco+1);
                                     $Artikoloj[$i]["Uzanto"]=Uzanto($Artikoloj[$i]["Autoro"]); 
                                     $ArtikolTagNombro[$j]++;  
                                     $i++; 
                                 }
                            $Teksto=substr($Teksto,$AutorFino);
                             } 
                        }
                    }
                }
        }

    $ArtikolNombro=count($Artikoloj);
// numero de la lasta artikolo en la listo = rango de la lasta antaŭe prenita + 1
    $Lasta=1 096;
        $i=0;
        $restas=1005-$Lasta-$ArtikolNombro;
        $restas0=$restas-5;
       $Tagojj=0;   
       $Artikolojj=0; 
       $LastaTago=0;
   foreach ($ArtikolTagNombro as $j => $Nombro)
  {
     if ($Nombro!=0)
     {
        $PasintajTagoj[$j]= $Nombro;
        if ($LastaTago==0)
           {$LastaTago=substr($Tagoj[$j],0,2);}
     } 
  }
  
  foreach ($PasintajTagoj as $j => $Nombro)
  {
         $Tagojj++;
         $Artikolojj=$Artikolojj+$Nombro;
  }          
  
  $VershajnaTago= round($LastaTago+$restas/($Artikolojj/$Tagojj)-1);      
  $VershajnaTago.="a de Aŭgusto";     
  $LastaGhisDatTempo=$Artikoloj[0]["Horo"].", ".$LastaTago." Aŭg. 2011"; 
        
        echo "|-<br/>
              | rowspan=\"".$restas."\" valign=\"top\" | baldaŭ (ĉirkaŭ la ".$VershajnaTago.")&lt;br/>
              (je ".$LastaGhisDatTempo." restis ".$restas0." artikoloj&lt;br/> ĝis 150 000) || rowspan=\"".$restas."\" | <br/>  
| 150 005 || rowspan=\"".$restas."\"| <br/>" ;
        $LasttagArtikolNombro=0;
        foreach ($Tagoj as $j => $Tago)
        { 
                if ($ArtikolTagNombro[$j]!=0)
                { 
                        $jam=0;
                        if ($LasttagArtikolNombro==0)
                         {$LasttagArtikolNombro=$ArtikolTagNombro[$j];
                         $jam=jam();}
// por la tago kiam la programo estis funkciigita la antaŭan fojon antaŭ noktomezo
                        $TagNombro=$ArtikolTagNombro[$j];
                        echo  "|-<br/>
| rowspan=\"".$TagNombro."\" valign=\"top\" | ".$Tago."&lt;br/>(".$TagNombro." artikoloj) || "; 
                        for ($k=1;$k<=$ArtikolTagNombro[$j]-$jam;$k++)
                        {
                                $rango =$Lasta+ $ArtikolNombro-$i; 
                                $nombro = "149 ".$rango;
                                if ($k!=1) {echo "|-<br/> | ";}
                                $SekvantaAutoroSama="jes";
                                $AutorArtikoloj=0;
                                $g=$i;
                                while ($SekvantaAutoroSama=="jes")
                                { 
                                   if (isset($Artikoloj[$g]["Autoro"]))
                                   {
                                      if ($Artikoloj[$i]["Autoro"] == $Artikoloj[$g]["Autoro"])
                                      {
                                          $AutorArtikoloj++;
                                          $g++; 
                                      }
                                      else
                                      {$SekvantaAutoroSama="ne";}
                                  }    
                                   else
                                   {$SekvantaAutoroSama="ne";}
                                }
                                if ($AutorArtikoloj==1)
                                 { $Autoro= " || ".$Artikoloj[$i]["Uzanto"];}
                                else
                                 { $Autoro= " || rowspan=\"".$AutorArtikoloj."\" valign=\"top\" | ".$Artikoloj[$i]["Uzanto"];;}
                                 
                                $h=$i-1;
                                if (isset($Artikoloj[$h]["Autoro"]))
                                { if  ($Artikoloj[$i]["Autoro"] == $Artikoloj[$h]["Autoro"])
                                   { $Autoro="";}
                                }   
                                echo $Artikoloj[$i]["Horo"]." || ".$nombro." ||  [[".$Artikoloj[$i]["Nomo"]."]] ".$Autoro."<br/>";
                                $i++;
                        }
                }
        }

foreach ($Artikoloj as $i => $Artikolo)
{ 
   if (isset($Autoroj[$Artikolo["Autoro"]]))
   {      $Autoroj[$Artikolo["Autoro"]]++;   }
   else
   {      $Autoroj[$Artikolo["Autoro"]]=1;   }
}
arsort($Autoroj);
echo "==Aŭtoroj==<br/>{|class =\"wikitable\"<br/>|-<br/>! Aŭtoro !! Artikolnombro <br/>";
$Sumo=0;
foreach ($Autoroj as $Autoro=> $autorArtikolNombro)
{
   echo "|-<br/>| ".Uzanto($Autoro)." || align=\"right\" | ".$autorArtikolNombro."<br/>";
   $Sumo=$Sumo+$autorArtikolNombro;
}
echo "|-<br/>! SUMO !! align=\"right\" | ".$Sumo."<br/>
|}<br/> <br/>&nbsp;\$Autoroj=  array(<br/>";

foreach ($Autoroj as $Autoro=> $autorArtikolNombro)
{
   echo "&nbsp;'".$Autoro."' =>".$autorArtikolNombro.",<br/>";
}
echo "&nbsp;);<br/>&nbsp;\$PasintajTagoj=  array(<br/>";
foreach ($PasintajTagoj as $j => $Nombro)
{
  echo "&nbsp;'".$j."' =>".$Nombro.",<br/>";
}          
echo "&nbsp;);<br/>";

$artikolnombro= $Lasta+ $ArtikolNombro;        
echo "==Datenoj == <br/>
 tempo= ".$LastaGhisDatTempo." |<br/> 
 artikolo=".$Artikoloj[0]["Nomo"]."|<br/> 
 artikolnombro=149".$artikolnombro."|<br/> 
 lasttaga artikolnombro=".$LasttagArtikolNombro;


  fclose($handle);
?>