Helferlein: CopyIf |
Was CopyIf machtSchade, hier gibt’s keine Bilder... CopyIf funktioniert ähnlich wie KorrNews, aber es kümmert sich um die Postings, die Hamster neu heruntergeladen hat. Da diese niemals als Textdateien vorliegen, kann KorrNews damit nichts anfangen.
|
1. CopyIf herunterladen und installierenCopyIf gibt's auf der Seite von Thomas G. Liesner (Link auf der Startseite) Dort erhältst du ein ZIP-Archiv, aus dem du die Datei copyif.exe ins Hamster-Verzeichnis entpackst. Dann öffne noch das „Unter-Archiv“ Bsp.zip und kopiere daraus die Dateien copyif.def und copyif.ini, ebenfalls ins Hamster-Verzeichnis. Fertig. |
2. Wie CopyIf arbeitetIm Unterschied zu KorrNews, das auf die einzelnen Dateien zugreift, die im Ausgangskorb liegen, bearbeitet CopyIf den Newsbestand des Hamsters. Da gibt es ein anderes Datenformat, weil es sehr ungünstig wäre, die Artikel alle als einzelne Dateien abzuspeichern. CopyIf wird auch nicht automatisch vom Hamster aufgerufen, sondern das musst du entweder per Skriptbefehl ( CopyIf öffnet dann alle Hamstergruppen, die es bearbeiten soll (welche das sind, kannst du festlegen), sieht sich ein Posting nach dem anderen an, nimmt gegebenenfalls Änderungen vor und ersetzt den alten durch den geänderten Artikel. Der allererste Durchgang kann dabei einige Minuten dauern, wenn du viele Newsartikel im Hamster hast. Aber CopyIf merkt sich in jeder Gruppe, wo es stehengeblieben ist, und nimmt sich nur die neuen Artikel vor - das geht dann in Sekunden. |
3. CopyIf einrichtenDas ist nicht mehr ganz so komfortabel wie bei KorrNews - es gibt keinen Assistenten und keinen Konfigurationsdialog. Alles musst du von Hand machen. Aber das ist zu überleben. Die Feinheiten sind in der beigepackten Datei copyif.txt genau erklärt. Es gibt zwei Dateien, die CopyIf steuern:
Eine Beispiel-copyif.def ist schon mitgeliefert. Die öffnest du jetzt einmal in einem Texteditor (z.B. Notepad) und löschst alles bis auf die letzte Zeile: Do Save Changes. Diese Zeile muss immer am Schluss stehen, sonst bewirken die übrigen Eintragungen überhaupt nichts, sondern alle Änderungen werden wieder verworfen. |
Ein paar grundlegenden Funktionen von CopyIf:Dekodieren von SonderzeichenDafür trägst du in der copyif.def folgende Zeilen ein:
Die erste Anweisung dekodiert Headerzeilen, wenn welche kodiert sind, die zweite macht das selbe mit dem eigentlichen Textinhalt eines Postings. Gruppen zusammenfassenNehmen wir an, du liest alle hamster.de-Gruppen mit, willst aber nicht immer alle Gruppen einzeln durchblättern, sondern alle Artikel in einer Gruppe haben. Dann kannst du dir so eine Sammelgruppe als lokale Gruppe in deinem Hamster anlegen – nennen wir sie z.B. hamster.de.sammel – und dir von CopyIf alle Artikel, die in den anderen Hamstergruppen landen, in diese eine lokale Gruppe kopieren lassen. Das Geniale daran ist, dass der Newsgroups:-Header dabei nicht geändert wird – du kannst also auf so einen Artikel ganz normal antworten, und die Antwort wird dann in die Gruppe geschickt, in die der Artikel eigentlich gehört hätte. Dazu setzt du in die copyif.def folgende Zeile ein:
Wenn du das mit mehreren „Gruppengruppen“ machen willst, dann solltest du mit Variablen arbeiten – in der copyif.txt findest du ein Beispiel dafür. Antworten auf deine eigenen Postings in eine Gruppe kopierenDamit CopyIf überhaupt Antworten auf deinen Artikel als solche erkennen kann, brauchst du einen FQDN, einen eindeutigen, nur dir gehörenden „hinteren Teil“ deiner Message-IDs. Dieser FQDN findet sich dann im References-Header jeder weiteren Antwort; mit einer einfachen Introzeilen setzenUnter „Intro“ versteht CopyIf eine Anzahl von Textzeilen, die direkt am Anfang des Artikeltextes eingefügt werden. Auf diese Weise kann dich CopyIf auf Besonderheiten eines Artikels aufmerksam machen. Zum Beispiel ist es schön, zu wissen, wenn in einem Artikel ein Followup-To gesetzt worden ist, also eine Umleitung in eine andere Newsgroup für sämtliche weiteren Antworten. Sonst wunderst du dich auf einmal, wo deine Antwort geblieben ist. Dafür baust du in die copyif.def folgendes ein:
Damit sich das Intro noch schön vom Rest des Artikels abhebt, solltest du direkt vor das Do Save Changes noch folgendes setzen:
|
4. CopyIf ausprobierenEinstellungen in der copyif.iniJetzt musst du noch die copyif.ini so einstellen, dass CopyIf auch wirklich etwas macht. Zumindest musst du in dieser Datei den Wert hinter TestOnly von 1 auf 0 setzen, sonst tut CopyIf nur so als ob. Die anderen Einstellungen kannst du so lassen, wie sie sind. Wir könnten jetzt mit lokalen Testgruppen herumjonglieren, oder von Hand kodierte Artikel an de.test schicken und wieder herunterladen. Aber das wäre recht kompliziert. Deshalb schlage ich vor, dass wir jetzt einfach mal nach der brutalen Methode vorgehen. Brutale Methode heißt: Lass mal den kompletten Hamsterbestand überarbeiten und sieh dir an, was dabei herauskommt. Dazu öffnest du einfach die Datei copyif.exe, z.B. durch Doppelklick im Explorer. Natürlich wirst du diesen Aufruf bald in dein Hamsterskript einbauen (mit einem HamWaitIdle hinter den Newspull) oder zumindest eine Verknüpfung anlegen. Aber erstmal geht’s auch so. Dann müsste dein Rechner plötzlich sehr beschäftigt sein... Wenn CopyIf fertig ist, erscheint ein Erfolgsfenster. Und wenn du dann deinen Newsreader anwirfst und ein paar Gruppen öffnest, wirst du einige ganz neue Artikel entdecken, die eigentlich alt sind... das sind die Neuimporte von CopyIf. Wenn du dir den Header eines solchen Artikels ansiehst, bemerkst du, dass sich CopyIf dabei verewigt. Die Headerzeile X-ReImported: CopyIf ist dazugekommen, und außerdem siehst du an einer anderen neuen Headerzeile, was CopyIf verändert hat, z.B. X-CopyIf-Converted-Headers: Subject. Wenn das geklappt hat, dann kannst du CopyIf fest in deinen Newsaufruf einbauen! Und solltest mit kodierten Umlauten in Artikeln keine Probleme mehr haben, weil dein Reader die alle unkodiert serviert bekommt. Auch ein unhöflicherweise ohne Ankündigung gesetzter F'up2 überrascht dich nicht mehr. Wenn's allerdings nicht geklappt hat und du weiter probieren musst, dann bedenke dabei, dass CopyIf jeden Artikel nur einmal anfasst - schon veränderte Artikel, die den X-ReImported: CopyIf-Header haben, werden nicht nochmals bearbeitet. |
Hilfe zu CopyIfWeitergehende Hilfe zu CopyIf bekommst du in der Gruppe hamster.de.tools. Schreib am besten „[CopyIf] Problem mit...“ in den Betreff, damit jeder weiß, worum es geht. |