Am Thu, 11 Apr 2013 12:22:14 +0200 schrieb Wolfgang Bauer:
> Heiko Rost schrieb:
>
>> In der Syntaxbeschreibung von Korrnews gibt es "do copy ..." nicht,
>> deshalb sollte es eigentlich eine Fehlermeldung geben. Der Logik nach
>> d�rfte ein Befehl dieser Art auch nicht m�glich sein, weil KorrNews nur
>> die M�glichkeit hat, die Datei mit dem Posting zu bearbeiten.
>
> Bist Du sicher?
Ja, zu mindestens 99,99%. Die einzige "Schnittstelle" zwischen Hamster
und Korrnews ist die Textdatei mit dem Posting. Wenn Korrnews also eine
Aktion im Hamster ausl�sen will, mu� es irgendetwas in die Textdatei
schreiben, was dann vom Hamster ausgewertet wird. Deshalb auch mein
Hinweis, da� die �nderung des Newsgroups-Headers evtl. funktionieren
k�nnte.
> Das hier funktioniert jedenfalls bei eingehenden
> Artikeln in der News-In.def.
>
> If Not %IstMeineMid% and %DirekteAntwort%
> Do Play Wave "Demarrage.wav" and wait
> else
Das ist kein "do copy", sondern ein "do play wave". Da benutzt Korrnews
die entsprechenden Windows-Schnittstellen, um den Sound abzuspielen.
>[demo-newswatcher.hsc]
> So steht es hier drin. Mein Problem ist nur, wie schreibe ich die
> Bedingungen auf die gematcht werden mu� um das Ziel zu erreichen?
Das sind die n�chsten Zeilen im Skript:
| # Name of an internal newsgroup, where a copy of each matching
| # article should be stored. If no name is given, matches are just
| # reported as warnings.
| # varset( $ResultGroup, "" ) # no copy, just report
| varset( $ResultGroup, "internal.misc" )
Hier mu� der Name der internen Gruppe stehen, in die die Postings
einsortiert werden sollen.
| # Regular expression for the newsgroup names to watch (".*"=all).
| varset( $REGroupSelect, ".*" )
Der regul�re Ausdruck f�r die zu durchsuchenden Gruppen, das ".*" f�r
alle Gruppen d�rfte eine brauchbare Auswahl sein.
| # Regular expression for the newsgroup names to ignore. It has a
| # higher priority than $REGroupsSelect above.
| varset( $REGroupIgnore, "^(internal|control)\." )
Das ist der regul�re Ausdruck f�r Gruppen, die zwar im o. g. Ausdruck
f�r die zu suchenden Gruppen enthalten sind, aber trotzdem nicht
durchsucht werden. Der Ausdruck "^(internal|control)\." trifft f�r alle
Gruppen zu, die mit "control." oder "internal." beginnen. Bei Dir ist
wahrscheinlich "^(internal|control|local)\." notwendig.
| # FQDN (domain part of Message-IDs) to watch for in "Message-ID:"
| # and "References:" headers.
| varset( $FQDN, HamGetFQDN ) # get FQDN from Hamster
Das ist der von Dir im Hamster eingegebene FQDN f�r die
Message-Id-Erzeugung durch den Hamster, das m��te also bereits das
"
wolfgang-bauer.at" sein. Diesen FQDN wertet das Skript aus, um eigene
Postings und Antworten darauf zu finden.
> Es sollen ja nicht alle eingehenden Artikel kopiert werden sondern nur
> direkte Antworten oder Antworten in einem Thread in dessen References
> mein FQDN steht.
In der zweiten Zeile des Demo-Skriptes steht, was es macht, und das
trifft Deine Anforderungen schon recht gut:
| # NewsWatcher: Watch for own articles and followups.
Das einzige, was es zu viel macht, ist das Kopieren der eigenen Artikel
in die interne Gruppe. Und das l��t sich relativ leicht deaktivieren. Es
ist nur noch eine Zeile zu �ndern:
| sub ScanArticle
...
| # check Message-ID
| $s = MsgGetHeader( $Msg, "Message-ID:" )
| if( RE_Match( $s, $REFQDN ) )
| ReportMatch( "Own article in " + $GrpNam )
Diese ReportMatch-Zeile mu�t Du mit einem # in einen Kommentar
umwandeln, damit Deine eigenen Artikel nicht kopiert werden.
| return
| endif
|
| # check References
|...
Der Rest kann so bleiben.
Gru� Heiko