#!load narticles.hsm sub stat($grupa, $down, $up, $len) # ako je $len=0, ne broji byteove (x puta brze izvrsavanje), ako je !=0, onda broji. var($handle, $min, $max, $min2, $max2, $id, $artdate, $list, $from, $i, $posts, $start, $stop, $sec, $size) $start = ticks print("Statistika za grupu ", $grupa, " od ", $down, " do ", $up, ".") $handle = HamGroupOpen($grupa) $min = HamArtNoMin($handle) $max = HamArtNoMax($handle) NickBeforeDate(2, $down) $min2=findbinary($handle, $min, $max, NickBeforeDate(2, $down)) - 1 $max2=findbinary($handle, $min, $max, NickAfterDate(2, $up)) + 1 $list=ListAlloc $posts=ListAlloc $size=ListAlloc for($id, $min2, $max2) $artdate=NickHeaderToDate(NickHeaderGet(HamArtText($handle, $id), "Date")) if ((NickOlderDate($down, $artdate) > -1) && (NickOlderDate($artdate, $up) > -1)) $from=NickHeaderGet(HamArtText($handle, $id), "From") if($len!=0) $len=len(TextClean(HamArtText($handle, $id))) endif count($list, $from, $posts, $len, $size) endif endfor sort($list, $posts, $size) ispis(HamPath + "stats-time.ini", $list, $posts, $size, $grupa, $down, $up) ListFree($list) ListFree($posts) ListFree($size) HamGroupClose($handle) $stop = ticks $sec=($stop-$start)/1000 print( "Statistika napravljena za ", $sec/60, "min ", $sec%60, ".", ($stop-$start)%1000, "sec." ) endsub sub count($list, $from, $posts, $len, $size) var($i, $ima) if (ListCount($list)==0) ListSet($list, 0, $from) ListSet($posts, 0, str(1)) ListSet($size, 0, $len) else $ima=0 for($i, 0, ListCount($list) - 1) if(ListGet($list, $i) == $from) $ima=1 ListSet($posts, $i, str(int(ListGet($posts, $i)) + 1)) ListSet($size, $i, str(int(ListGet($size, $i)) + $len)) endif endfor if ($ima == 0) ListSet($list, ListCount($list), $from) ListSet($posts, ListCount($posts), str(1)) ListSet($size, ListCount($size), $len) endif endif endsub sub sort($list, $posts, $size) var($i, $j, $pomlist, $pomposts, $pomsize) for($i, 0, ListCount($list) - 1) for($j, $i, ListCount($list) - 1) if (int(ListGet($posts, $j)) > int(ListGet($posts, $i))) $pomlist=ListGet($list, $i) $pomposts=ListGet($posts, $i) $pomsize=ListGet($size, $i) ListSet($list, $i, ListGet($list, $j)) ListSet($posts, $i, ListGet($posts, $j)) ListSet($size, $i, ListGet($size, $j)) ListSet($list, $j, $pomlist) ListSet($posts, $j, $pomposts) ListSet($size, $j, $pomsize) endif endfor endfor endsub sub ispis($file, $list, $posts, $size, $grupa, $down, $up) var($i) if(FileExists($file)) FileDelete($file) endif for($i, 0, ListCount($list)-1) IniWrite($file, "Name", $i + 1, ListGet($list, $i)) endfor for($i, 0, ListCount($posts)-1) IniWrite($file, "Posts", $i + 1, ListGet($posts, $i)) endfor for($i, 0, ListCount($posts)-1) IniWrite($file, "Size", $i + 1, ListGet($size, $i)) endfor IniWrite($file, "All", "grupa", $grupa) IniWrite($file, "All", "start", $down) IniWrite($file, "All", "end", $up) IniWrite($file, "All", "ljudi", ListCount($list)) execute(Hampath + "output.exe") FileDelete($file) endsub