
Naprednije skripte
za Hamster
Većina skripti koje sam pisao bile su za moje potrebe, ali sam izdvojio par procedura koje mogu poslužiti i drugima, sto za koriscenje, što za ucenje...Pošto sam često menjao servere, dodao ih na listu za korišćenje i privremeno prekidao da ih koristim, a nisam želeo da ih izbrisem iz Hamstera, mislim da sam našao najjednostavnije rešenje za to, bez mnogo menjanja skripti... U proceduri ispod, skripta uzima servere iz hamster.ini koji se nalaze na Online-meniju, i imaju svoj redni broj i onda skida odgovarajuće grupe sa njih...
Dakle u Configuration > General Settings > Online menu, pod rednim brojem, recimo 1 odredimo koje servere želimo da proveravamo... Nakon toga sledeća procedura obavlja ostalo:
################################################ # Univerzalna procedura za proveru vise # servera i samo odredjenih grupa # Objasnjenje: # $RedniBrNaMeniju - Redni broj spiska servera na Online-meniju # $Grupe - Regex za izbor grupa koje treba proveriti # # Skriptu napisao: ANT-ilic (modifikovati po potrebi) ################################################ Sub ProveriServer_Grupe ( $RedniBrNaMeniju, $Grupe ) Var ( $spisakservera, $List, $i, $end, $begin, $lenstr, $savestr ) $spisakservera = IniRead( "Hamster.ini", "Online-Menu", "Server"+$number, "News.CIS.DFN.DE,nntp") #"News.CIS.DFN.DE,nntp" je dafault vrednost, za slucaj da nema nijednog servera pod tim brojem u Online-meniju $end = 1 $Begin = 0 $i = 0 # Pravimo novu listu stringova $list = ListAlloc # Izvlacimo pojedinacne servere While ( $end > 0 ) # Gde je kraj servera ";", u stringu '$spisakservera', pocni pretragu od znaka sa rednim brojem '$begin' $end = pos( ";", $spisakservera, $Begin ) # Ako je pronadjen, dodati u listu If ( $end > 0 ) # odsecamo nepotreban deo ',nntp' iz imena servera $LenStr = $end - $begin - 5 # server koji dodajemo: iz $spisakservera, od pozicije $begin, duzine $lenstr $SaveStr = copy( $spisakservera, $begin , $lenstr ) # Dodatna provera greske If ( $SaveStr <> "" ) # Dodajemo server ListSet( $list, $i, $SaveStr ) # povecavamo brojac Inc ( $i ) endif EndIf # Povecavamo poziciju od koje trazimo sledeci server $begin = $end + 1 EndWhile #Ucitavamo listu servera i pripremamo za preuzimanje $i = 0 while( $i < ListCount($list) ) # print je tu samo zbog debug-a print( $i, ": ", ListGet($list,$i) ) # HamNewsJobsPull ( server, regex kojim biramo grupe ) HamNewsJobsPull ( ListGet ( $list, $i ) , $regex ) inc( $i ) endwhile ListFree( $list ) endsub #################################################
Meni za pozivanje skripti/naredbi
Pomoću ovakvih skripti je moguće pokretati više različitih skripti, kombinovati skripte i sve to zadržati na jednom mestu... Takodje je moguće realizovati i podmenije i sl. ali to ostavljam na vama da sami kreirate...
######################################################### # Skripta: Meni.hsc # # Skriptu napisao: ANT-ilic (modifikovati po potrebi) ######################################################### #!hs2 GlavniMeni quit Sub GlavniMeni # Glavni meni var( $menulist, $selindex ) $menulist = ListAlloc ListAdd( $menulist, "Minimiziraj i zatvori meni") ListAdd( $menulist, "Provajder 1") ListAdd( $menulist, "Provajder 1 Lite") ListAdd( $menulist, "Provajder 2") # Moze se dodati do desetak i da meni ostane pregledan $selindex = ListBox( $menulist, "Select what you wanna do..." ) icase( $selindex, _ 0, MinClose(), _ 1, RunScript ("1provmin.hsc"), _ # Opis: RunScript ("ime skripte", "parametri", "nastavi izvrsavanje skripte" # poslednje je False, jer zelimo da se saceka do kraja izvrsenja # skripte 1provauto, pa tek onda da se ponovo prikaze meni 2, RunScript ("1provauto.hsc", "", False), _ 3, Procedura1(), _ 4, , _ 5, , _ 6, ,_ 7, , _ 8, , _ 9, , _ #else, Print ("Hellooo! We have a problem!") _ else, Break _ ) ListFree( $menulist ) # Ako nema prve stavke Minimiziraj i zatvori... onda treba da bude '>=' # If ($selindex >= 0 ) If ($selindex > 0 ) GlavniMeni endif EndSub ###################### End Main ################# Sub MinClose() # Minimaze HamMessage (6,0) # Kill menu $selindex=0 EndSub Sub Procedura1 # Ovde navesti vise naredbi koje treba izvrsiti, pozvati skripte itd. EndSub