Volkers Homepage

<Newsserver: Hamster-Feintuning    ^Startseite    >Hamster mit Skripten automatisieren

Newsserver: Hamster goes Usenet

News pullen

Beim Kontakt mit den Newsservern ist es ähnlich wie bei den Mailservern: Es geht ganz einfach per Online-Menü (das haben wir ja auch schon gemacht, als wir die Gruppenliste vom Server geholt haben). Aber das Eleganteste, weil Flexibelste, ist auch hier ein Skript.

Machen wir uns doch einfach ein neues – du kannst die Zeilen natürlich auch in dein altes reinschreiben, dann brauchst du immer nur eines aufzurufen. Auch dieses Skript kannst du schon fertig herunterladen.

Die gute Nachricht: An diesem einfachen Skript musst du überhaupt nichts anpassen, z.B. keine Servernamen eintragen – der Hamster nimmt einfach alle Server, die unter Einstellungen – News: Gruppen,... – Newsserver eingetragen sind, und da hast du deinen ja schon einbgetragen.

Die neuen Skriptbefehle sehen etwas eigenartig aus:

#!hs2
 
HamNewsJobsClear
HamNewsJobsPostDef
HamNewsJobsPullDef
HamNewsJobsStart
 
HamWaitIdle
 
MsgBox ("Newsaustausch fertig!", "Hamster", 0x40|0x0)
 
quit

Erklärung:

Der Hamster arbeitet den News-Verkehr nach einer Liste ab, der Newsjobs-Liste. Damit wir die benutzen können, wird sie erst einmal mit dem HamNewsJobsClear-Befehl gelöscht. Tabula rasa also. Dann füllen wir sie mit den Newsartikeln, die gepostet werden sollen – HamNewsJobsPostDef, und mit den Ladeaufträgen – HamNewsJobsPullDef. Und dann soll er anfangen, diese Liste abzuarbeiten – HamNewsJobsStart.

Man kann dem Hamster in den Post-/PullDef-Befehlen und im Start-Befehl noch sagen, welche entfernten Server er benutzen soll (wenn man mehrere hat), und es gibt noch andere Befehle, mit denen man die Newsjobs-Liste sehr „feinfühlig“ füllen kann. Dadurch ist die Sache sehr flexibel. Aber man kann diese Angaben auch weglassen, dann gelten sie einfach für alle Gruppen bzw. alle Server, die der Hamster kennt. Und mehr brauchen wir ja im Moment nicht.

Skript
Unser kombiniertes Skript – hier in einem komfortablen Editor mit „Syntax-Highlighting“ (ConTEXT)

Artikel posten

Bevor wir jetzt dieses Skript anwerfen, geben wir dem Hamster schon mal was zu futtern. In der Gruppe de.test, die wir ja schon als Pull festgelegt haben, ist so ziemlich alles erlaubt – die ist wirklich nur zum Ausprobieren da! Also schreiben wir jetzt mal in deinem Newsreader einen Artikel beliebigen (nur nicht kriminellen) Inhalts, den uns der Hamster dann da hin schicken soll.

Also, ruf deinen Newsreader auf, öffne die Gruppe de.test – sehr wahrscheinlich ist sie leer. Jetzt verfasse einen neuen Artikel, der in diese Gruppe gepostet werden soll – wie das geht, kann ich dir leider nicht sagen, weil ich nicht weiß, welchen Reader du verwendest...

Eines solltest du in der Gruppe de.test allerdings beachten: Dort sind Reflektoren eingebaut – automatisch arbeitende Antwort-Programme, die dir per E-Mail mitteilen, wann und wie dein Artikel bei denen vorbeigekommen ist. Das kann für Testzwecke sehr hilfreich sein, aber wenn du nicht in der nächsten Stunde zehn Mails bekommen willst, dann setze das Zauberwort ignore in den Betreff, und du bleibst davon verschont. Ich hab’s auch schon mal vergessen...

Hast du deinen Artikel an de.test abgeschickt? Na, dann ruf doch gleich mal die neuen Artikel in dieser Gruppe ab, da müsste er doch eigentlich dabei sein, vorhin bei hamster.lokal.test ging’s doch auch...

Zweierlei Maß

...und du siehst: nichts. Der Grund ist der: Der Hamster unterscheidet sehr zwischen lokalen und „gepullten“ Gruppen. Wenn du an eine lokale Gruppe postest, dann steht der Artikel sofort zur Verfügung. Aber in eine gepullte Gruppe kannst du nicht lokal hineinposten, sondern die wird nur aus dem entfernten Server „gespeist“.

Dein Artikel liegt noch im Hamster-Ausgangskorb – in der Statuszeile müsste N/M=1/0 stehen – und wird bei der nächsten Gelegenheit an den entfernten Server geschickt. Dort erst wandert er in die richtige Gruppe, und beim Pullen dieser Gruppe holt Hamster ihn wieder ab und sortiert ihn richtig ein.

Warum so umständlich?

Das erhöht zwar ein wenig den Übertragungsaufwand, denn dein Hamster muss ja nun denselben Artikel erst einmal beim entfernten Server abliefern und dann wieder abholen, aber es hat einen ganz bestimmten und sehr sinnvollen Grund: Wenn du jetzt in einer gepullten Gruppe – z.B. de.test – einen Artikel von dir selbst siehst, dann kannst du ganz sicher sein, dass er auch im restlichen Usenet verteilt ist. Eine eingebaute Empfangsbestätigung sozusagen. Dein Hamster lässt den Artikel in die weite Welt losflattern und bekommt ihn dann von dort zurück, zusammen mit allen anderen Artikeln, die in deinem Pull-Limit liegen.

Testposting
Testposting in Netscape verfassen

Outbox
Hamster-Statuszeile: Ein Posting liegt im Ausgangskorb

Wasser marsch!

Wasser...? Wie auch immer, ein historischer Moment ist es schon: Dein Hamster tritt in Kontakt mit dem großen weiten Usenet. (Gruppenliste holen zählt nicht...)

Bau jetzt wieder eine Internetverbindung auf und starte dein Skript. Dann müsste dein Hamster folgendes machen:

  1. Hamster nimmt mit dem entfernten Server Kontakt auf und meldet sich an

  2. Hamster schickt die Artikel im Ausgangskorb ab – wenn das fertig ist, meldet er „Posten erfolgreich“

  3. Hamster fragt für jede Liste im Newspull nach, welche neuen Artikel vorliegen, und lädt so viele herunter, wie du im Artikel-Limit festgelegt hast

  4. Hamster verabschiedet sich vom Server

Und wenn du jetzt in deinem Newsreader die Gruppe de.test aktualisierst, dann müsstest du die frisch gepullten Artikel finden, darunter auch deinen – wahrscheinlich ist es der letzte davon, wenn sich nich noch irgend ein anderer User zwischen dein Posten und dein Pullen gezwängt hat.

Der Hamster schreibt sich jetzt übrigens die cis.dfn.de-interne Nummer des neuesten gepullten Artikels auf. Wenn er den Server das nächste Mal kontaktiert, weiß er gleich, dass er sich um die Nummern davor nicht mehr zu kümmern braucht – entweder kennt er sie schon, oder sie waren für dich uninteressant. So weiß er gleich, welche Artikel auf diesem Server für ihn neu sind. Das kannst du in den Eigenschaften deiner Gruppe aber einzeln unterwandern, wie du schon weißt.

Newspost
Hamster-Log: Ein Posting wird an den entfernten Server geschickt

Glückwunsch!

Wenn du bis hierher mitgekommen bist und dein Hamster läuft, dann ist die Grundausbildung beendet.

Alle wichtigen Funktionen laufen, das Mailen und das News-Posten/-Pullen über den Hamster klappt.

Jetzt musst du nur noch deinen News-Pull mit allen Gruppen, die du mitlesen willst, voll machen, und nach dem nächsten Pull hast du die gewünschten Artikel dieser Gruppen auf deiner Festplatte und kannst mit deinem Newsreader offline, also ohne aktive Internet-Verbindung, darauf zugreifen.

Natürlich kannst du die Arbeitsweise deines Hamsters noch ein wenig verfeinern. Es gibt noch viele nette Skriptbefehle, es gibt Möglichkeiten, Newsartikel vor dem Laden zu filtern, es gibt viele praktische Zusatzprogramme, die sich in den Hamster einklinken... ach, es gibt so viel.

Aber ich glaube, für heute reicht es dir.

Skripthamster
Viel Spaß mit deinem Hamster!

<Newsserver: Hamster-Feintuning    ^Startseite    >Hamster mit Skripten automatisieren