Am Mi, 1. Jun 2022 16:01:17 +0200, schrieb Thomas Schwarzer:
> Am 01.06.2022 schrieb Thomas Barghahn:
>
>> *Thomas Schwarzer* meinte:
>>
>>> 1) Ist es möglich, das als Standard nicht der Name, sondern die Mailadresse
>>> für die Scoring-Regel (Plonk bzw. Score für Autor erhöhen/verringern)
>>> verwendet wird?
[...]
> Ich habe mir über die Settings.ini die Default-Werte für die Menüpunkte
> 'Plonk-Regel hinzufügen' usw. angepasst.
> Ich hätte nun gerne, dass beim Klick auf den Menübutton nicht
> -999 From 'Manfred Mustermann' voreingetragen wird, sondern die Mailadresse
> -999 From '
man...@mustermann.de'
>
> Hintergrund ist, dass die einzelnen Rgeln ja immer 'enthält' und nicht 'ist
> gleich' bedeuten. Wenn ich einen Spammer habe, der 'Thomas' als Realname
> eingetragen hat, dann werden (wenn ich die Regeln nicht manuell anpasse)
> alle User mit Vornamen Thomas gefiltert. Da ist die Mailadresse
> eindeutiger.
Noch eindeutiger wäre dann die Kombination aus Name /und/ Mailadresse.
Hierfür gibt es ein Skript "PlonkWithAddress" :
http://web.archive.org/web/20120127144006/http://dialog.datalist.org/scripts/PlonkWithAddress.html
Soll wirklich nur auf die Mailadresse gefiltert werden, kann man das Skript
anpassen. So lässt sich die Hauptfunktion am Ende gegen den folgenden Code
austauschen:
-----------------------------------------------------------------------------
Begin
myForm := tForm.Create(nil);
lockdisplay;
try
BuildContainers;
ADo('ShowHeaders');
GetMsgBody;
ADo('ShowHeaders');
mail:=GetAddress;
if (mail='') then myMemo.text:=' '
else myMemo.text:=' From "'+mail+'"';
myMemo.SelectAll;
myMemo.CopyToClipboard;
sleep(1000);
ADoLater('AddPlonkFilter');
if (mail='') then
PostKey(35, false, false, false, false, false, false, false, false) //END
else
PostKey(35, true, false, false, false, false, false, false, true); //Shift+END
PostKey(86, false, false, true, false, false, false, false, false); //Ctrl+V
PostKey(79, false, true, false, false, false, false, false, false); //Alt+O
finally
unlockdisplay;
myForm.free;
ADoLater('Ignore');
ADoLater('RefreshView');
end;
End.
-----------------------------------------------------------------------------
Die Änderungen schließen zudem das Scoring-Fenster und ignorieren den
aktuellen Subthread. (Damit der Plonk /sofort/ greift und nicht erst in
Zukunft.) Aus der Originalversion und den Änderungen kannst Du Dir das
für Dich Beste herauspicken.
Noch 2 Anmerkungen:
Der Sleep-Befehl ist nötig, wenn das Skript auf eine Tastenkombination mit
Sondertasten (z. B. Strg+Taste) gelegt wird. Er sorgt dafür, dass man genug
Zeit hat, die Sondertaste loszulassen, bevor der Tastaturpuffer mit PostKey
befüllt wird. (Sonst wird z. B. aus END schnell Strg+END mit sehr unschönem
Ergebnis.) Wie viele Millisekunden Wartezeit ausreichen, musst Du testen.
Bei Shift+END müssen 2 Parameter auf TRUE gesetzt werden. Der erste bedeutet
gedrückte Shift-Taste. Der zweite Sonderbefehls-Tastenkombination.
>>> 2) Ich möchte einen ganzen Thread vor dem Aufräumen schützen. Wenn ich ihn
>>> auf 'Halten' setze und danach neue Artikel in den Thread geladen werden,
>>> haben die nicht den 'Halten'-Flag. Gibt es eine Einstellung (ein Skript),
>>> dass die auch automatisch auf 'Halten' gesetzt werden?
>>
>> Du könntest bspw. auf das Subject scoren:
>> !keep Header {^Subject:\s.*plonk\-test}
>>
>> Dieser Ausdruck "matcht" bspw. auf:
>> "plonk-test"
>> "RE: Plonk-Test"
>> "RE: Plonk-Test - ignore"
>> "RE: Du und dein PLONK-TEST - ignore"
>
> Ja, das wäre eine Möglichkeit. Ich habe gehofft, es gäbe eine Einstellung,
> dass Antworten auf ein Post mit Keep-Flag auch automatisch auf Keep gesetzt
> werden.
Als Einstellung leider nicht. So etwas funktioniert nur bei Watch und
Ignore.
> Aber notfalls kann ich das auch über das Scoring lösen.
Zum "Halten" nach einfachen Regeln ist das okay. - Z. B. Keep-Flag für alle
eigenen Postings und Follow-Ups auf solche Postings. (Bzw. entsprechend für
andere ausgewählte Autoren.) Das geht auf diesem Wege mit überschaubarem
Aufwand. Aber wenn Du für jedes interessante Thema eine Subject-Plonkregel
hinterlegst, wird das schnell uferlos. Dann wenigstens mit EXPIRE-Datum,
würde ich sagen.
Was als Skript funktionieren könnte, ist der folgende Ansatz:
-----------------------------------------------------------------------------
Program Keeper;
Begin
ADo('AddMarker');
ADo('CollapseThread');
ADo('AddBookmark');
ADoLater('Bookmarks');
PostKey(68, false, true, false, false, false, false, false, false); //Alt+D
PostKey(67, false, true, false, false, false, false, false, false); //Alt+C
ADoLater('GoToPreviousMarker');
ADoLater('ClearMarkerList');
End.
-----------------------------------------------------------------------------
In den zentralen Dialog-Einstellungen musst Du einhaken, dass Keep beim
Bookmarken gesetzt wird, beim Löschen von Bookmarks hingegen verbleibt.
(Bereich "Misc" [Sonstiges?]).
Im Gegensatz zum Befehl Keep, der den Status hin- und herschaltet, wird Keep
beim Bookmarken immer nur gesetzt. Die Tastenkombinationen zum Schließen des
Bookmark-Dialogs musst Du anpassen, falls sie in der deutschen Oberfläche
anders sein sollten. Und wie beim obigen Skript bei Bedarf mittels Sleep
gedrückte Steuertasten von Aufruf-Tastenkombinationen abfangen.
HTH.
Bernd