Hamster-Scripte (*.hsc)

*** Vorweg: Die Hamster-Skriptsprache wurde mittlerweile durch Version 2 ersetzt. Da sich das Beta-Stadium von Hamster dem Ende zuneigt, werden sie demnächst nicht mehr gültig sein.

Sinn und Zweck:

Die internen Hamster-Scripte bieten eine einfache Methode für den Start von umfassenden Prozessen (method for starting common tasks).

Befehle:

quit
Stoppt die Ausführung des Scriptes.
 
restart
Wiederholt ein Script von Anfang an
 
call "Skriptname.hsc"
Ruft und führt ein vorhandenes (Unter-)Skript auf. Nachdem dieses weitere Skript beendet ist, wird das aufrufende Skript nach der "call"-Zeile fortgesetzt.
 
wait.delay milliseconds
Wartet die gesetzte Anzahl von Millisekunden (1/1000s).
Beispiel: "wait.delay 5000" = wartet 5 Sekunden
 
wait.until timepoint1 timepoint2 timepoint3 [...]
Wartet bis zum Erreichen eines der gesetzten Zeitpunkte (timepoints). Die Zeitpunkte sind im Format "hh.mm" anzugeben.
Beispiel: "wait.until 02.00 08.00 12.00 18.00 21.00"
 
wait.idle
Wartet bis alle aktiven Prozesse (z.B. Bereinigen des News-Bestandes ("Purge"), Empfangen von Postings, Versand von Mails) beendet wurden.
Beispiel: wait.idle
 
mail.pull ["Serverliste"]
Startet einen Teilprozess, der zuerst neue Mails vom Mailserver abfragt und danach Mails, falls vorhanden, an den Mailserver abschickt. Ist die Serverliste leer ("") oder nicht angegeben, werden alle Pop3- / SMTP-Server, die in Hamster definiert wurden, abgearbeitet. Ansonsten wird der Transfer von News auf die angegebenen Server beschränkt.
Wenn die Serverliste benutzt werden soll, müssen die Servernamen jeweils durch ein Semikolon (";") voneinander getrennt werden. Die Servernamen sind so einzutragen, wie in den Newsservereinstellungen (inkl. der "Port-Nr.).
("Servername" + "," + "Port-Nr")

Beispiel 1: mail.pull
Beispiel 2: mail.pull "mail.aaa.com,pop3;mail.bbb.com,pop3;mail.aaa.com,smtp"
 
fetchmail Server Port User Pass DestUser (Server, Port, Benutzer, Passwort, Zielkonto):
Beginnt einen Teilprozess, der Mails von einem eingetragenen POP3-Server abruft ("Server, Port")
Sind Benutzer und Paßwort gegeben, werden sie zur Anmeldung am Server verwendet; sind die Einträge leer, werden die Passworteinstellungen für den eingetragenen Server benutzt.
Außerdem kann eines der gespeicherten "allgemeingültigen" Passwörter (User="$(Nummer))", Pass="") verwendet werden, um die Klartextangabe im Skript zu umgehen.
Ist ein bestimmter Benutzer ("DestUser") vorhanden, werden abgeholte Mails in dessen Mailbox hinterlegt; ansonsten landen sie in der "Admin"-Mailbox.
Der Benutzernamen kann, durch ein Komma (",") getrennt, einen "Identifier" (Sprungbefehl) ergänzt werden, der sich auf einen bestimmten Filterbereich bezieht. Die dort vorhandenen Filterbefehle werden auf die mit "fetchmail" abgerufenen Mails angewendet. Standard (ohne explizite Vorgabe) ist der "globale" Filterbereich, d.h. die "[*]"-Sektion in der Datei Mailfilt.hst.

Beispiele:
fetchmail "pop3.serv.er" "" "" "" ""
fetchmail "pop3.serv.er" "pop3" "john.doe" "secret" "john"
fetchmail "pop3.serv.er" "10110" "$7" "" "jane"
fetchmail "pop3.serv.er" "pop3" "$7" "" "admin,meineFilter"
 
sendmail Server Port FromSelection
Beginnt einen Teilprozess, der Mails an einen bestimmten SMTP-Server (Server, Port) verschickt.
Wurde keine "FromSelection" (Auswahl des Absenders getroffen), werden alle versandfertigen Mails verschickt. Andernfalls - Festlegung über einen "Regulären Ausdruck" (RegExp) - werden nur die mit einem dazu passenden Absender an den Server gesendet.

Beispiel:
sendmail "smtp1.serv.er" "smtp" "john\.doe@serv\.er"
sendmail "smtp2.serv.er" "" ""
 
news.post ["Serverliste"]
Startet einen Teilprozess, der neue Artikel postet (wenn vorhanden). Ist die Serverliste leer ("") oder nicht angegeben, werden alle NNTP-Server, die in Hamster definiert wurden, abgearbeitet. Ansonsten wird der Transfer von News auf die angegebenen Server beschränkt (vergleiche Befehl "mail.pull" für die Details des Serverlisten-Formates).
 
news.pull ["Serverliste"]
Startet Teilprozesse, die von Newsservern Artikel abrufen. Ist die Serverliste leer ("") (oder nicht angegeben), werden alle NNTP-Server, die in Hamster definiert wurden, abgearbeitet. Ansonsten wird der Transfer von News auf die angegebenen Server beschränkt (vgl. Befehl "mail.pull" für die Details des Serverlisten-Formates).
 
news.purge [PurgeOptionen]
Startet einen Purge-Teilprozess (Löschen von alten Daten). Der Bit-weise zu interpretierende Parameter "PurgeOptions" beschreibt, welche alten Daten zu löschen sind. (bit0=1=Artikel, bit1=2=History-Einträge, bit2=4=Killfile-Log-Einträge, bit3=8=Mailhistory-Einträge). Wenn der Parameter nicht angegeben wird, werden alle Typen alter Daten gelöscht.

Beispiel: news.purge
Beispiel: news.purge 15
 
news.rebuildhistory
Beginnt einen Teilprozess, der die aktuelle Datei "History" (Verzeichnis ".\Groups\History.dat") löscht und stellt sie wieder her, indem alle Message-IDs des Hamster-Datenbestandes verwendet werden.
Hinweis: Bei einer großen Zahl von Artikeln kann das einige Zeit dauern, also empfiehlt es sich nur, wenn es wirklich notwendig ist. Warte, bis Hamster diesen Prozeß abgeschlossen hat (also "wait.idle" berücksichtigen)!
 
setlogin "Identifier" (Bezeichner) "Username" (Benutzername) "Password" (Passwort)
Setzt vorübergehend Benutzername und Paßwort für den angegebenen "Bezeichner". Der "Bezeichner" kann eine DFÜ-Verbindung oder ein News- / Mailserver sein. Vorübergehend heißt hier, dass diese Einstellungen nicht in eine Datei geschrieben werden, sondern im Speicher erhalten bleiben, bis Hamster beendet wird.
Wird für den Benutzernamen und/oder das Passwort ein einzelnes Fragezeichen ("?") gesetzt, so erfragt Hamster diesen Wert, falls erforderlich.
Außerdem kann eines der in "File / Configuration / Password" definierbaren "allgemeingültigen" Passwörter verwendet werden, um eine Klartextangabe im Skript zu umgehen.

Beispiel_1: setlogin "meine-dfü-verbindung" "DoeJohn" "Secret!"
Beispiel_2: setlogin "mein.newsserver.com" "DoeJane" "42"
Beispiel_3: setlogin "ser.verna.me" "$11" ""
 
ras.dial "ConnectionID" ["Username" ["Password"]]
Diese Funktion stellt eine DFÜ-Verbindung namens "ConnectionID" her. Der Benutzername und / oder das Passwort können dabei weggelassen werden. In diesem Fall werden die Angaben des "setlogin"-Befehls - s. vorheriger Abschnitt - (wenn vorhanden) verwendet oder die gespeicherten Angaben in "File / Configuration / Passwords". Falls die Anwahl fehlschlägt, wird das Skript unterbrochen.

Beispiel_1: ras.dial "meine-DFÜ-Verbindung" "DoeJohn" "Secret!"
Beispiel_2: ras.dial "meine-DFÜ-Verbindung"
Hinweis : Die Angabe von "meine-DFÜ-Verbindung" muß in Groß- und Kleinschreibung mit dem definierten Wert im DFÜ-Netzwerk übereinstimmen.
 
ras.hangup
Schließt eine bestehende DFÜ-Verbindung.
Beispiel: ras.hangup
 
msgbox "Text"
Zeigt ein Fenster mit der Nachricht "Text" an.
  Beispiel: msgbox "Script beendet!"
 
start.wait "command and parameters" (Befehle und Parameter)
Ruft ein anderes Programm mit den vorhandenen Parametern auf. Die Abarbeitung des Skriptes wird unterbrochen, bis das andere Programm beendet wurde.
Beispiel: start.wait "vor-der-Einwahl.bat"
 
start.nowait "command and parameters" (Befehle und Parameter)
Wie bei "start.wait" aber Hamster wartet nicht, bis das andere Programm beendet wurde. Das Skript wird ohne Verzögerung weiter abgearbeitet.
Beispiel: start.nowait "nach-der-Einwahl.bat"
 
message msg-number [parameter]
Ruft einige Hamster-Funktionen auf, die i.d.R. über entsprechende Menübefehle verfügbar und nutzbar sind.
Message-Nr.   Parameter     Zweck    
1 fehlt Hamster beenden
2 fehlt Zähler / Logdatei auf Null setzen
3 0=stop, 1=start Start / Stop lokaler NNTP-Server
4 0=stop, 1=start Start / Stop lokaler POP3-Server
5 0=stop, 1=start Start / Stop lokaler SMTP-Server
6 0=versteckt, 1=sichtbar     Verbergen / Anzeigen Hauptfenster
7 0=versteckt, 1=sichtbar     Verbergen / Anzeigen Tray-Icon

Beispiel: message 2
Beispiel: message 3 0

 

Beispiel für eine "Default.hsc"

# wartet bis evtl. laufende Prozesse abgeschlossen sind
wait.idle

# purge
# wait.idle

# baut eine Wähl-Verbindung auf
ras.dial "ConnectionID"

# holt und verschickt Mails
mail.pull

# verschickt Postings an alle definierten Newsserver
news.post

wait.idle

# holt Postings
news.pull

wait.idle

# beendet die Wähl-Verbindung
ras.hangup