FAQ za SR news | Spam Stat | Hamster | Opisi programa | O meni | Rezime

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

Vrh strane



FAQ za SR news | Spam Stat | Hamster | Opisi programa | O meni | Rezime