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.")<br/> (je ".$LastaGhisDatTempo." restis ".$restas0." artikoloj<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."<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/> \$Autoroj= array(<br/>"; foreach ($Autoroj as $Autoro=> $autorArtikolNombro) { echo " '".$Autoro."' =>".$autorArtikolNombro.",<br/>"; } echo " );<br/> \$PasintajTagoj= array(<br/>"; foreach ($PasintajTagoj as $j => $Nombro) { echo " '".$j."' =>".$Nombro.",<br/>"; } echo " );<br/>"; $artikolnombro= $Lasta+ $ArtikolNombro; echo "==Datenoj == <br/> tempo= ".$LastaGhisDatTempo." |<br/> artikolo=".$Artikoloj[0]["Nomo"]."|<br/> artikolnombro=149".$artikolnombro."|<br/> lasttaga artikolnombro=".$LasttagArtikolNombro; fclose($handle); ?>