|
> Funkcje S-Lang w slrn
> Pierwsze kroki
> O SSL
> O makrach
> Wielu użytkowników
> score
>
slrn score (punktacja artykułów w slrn)...Ostatnia zmiana: pnd, 25 mar 2002, 15:32:27Dokument zawiera informacje na temat sposobu punktowania artykułów w slrn Spis treści 1. Podstawy
Slrn przyznaje artykułowi określoną punktację. Jeśli punktacja artykułu jest mniejsza od zera, artykuł jest oznaczany jako przeczytany lub zabity. Celem pliku punktacji jest określenie zestawu testów, które artykuł musi przejść aby wyznaczyć jego punktację. Chociaż punktacja może bazować na DOWOLNYM nagłówku, zalecane jest wykorzystanie jednego z nagłówków znajdujących się w bazie overview serwera news (slrnpull i tak pobiera wszystkie nagłówki, więc to nie ma żadnego znaczenia w jego przypadku). Zazwyczaj są to nagłówki:
oraz inne nagłówki, które zdecydował się tam umieścić tam administrator
serwera grup dyskusyjnych (często jednym z nich jest nagłówek
2. Format pliku punktacji
Format pliku jest bardzo prosty (spójrz na poniższy przykład). Plik jest podzielony na sekcje ograniczone nazwą grupy lub grup umieszczonych w nawiasach kwadratowych, np.
[rec.crafts.*, rec.hobbies.*]
Nazwa może zawierać globalny znak zastępczy *.
Komentarze rozpoczynają się znakiem %.
Początkowe spacje są ignorowane.
Każda sekcja zawiera linie z komentarzami, puste linie lub linie ze
znacznikami. Tylko linie zawierające znaczniki są istotne, a wszystkie
początkowe spacje są pomijane. Linia ze znacznikiem rozpoczyna się nazwą
znacznika i następującymi po nim jednym lub dwoma dwukropkami oraz pojedynczą
spacją. Pozostała część linii zazwyczaj zawiera wyrażenie regularne. Znacznik
może być poprzedzony znakiem Grupa znaczników wyznacza test, któremu poddawany jest nagłówek artykułu.
Znacznik Uwaga: Znacznik Score: 100 % dowolny komentarzWszystkie znaczniki z wyjątkiem Score i Expires
mogą być poprzedzone znakiem "~". Znacznik Expires,
jeśli wystąpi, musi następować bezpośrednio po znaczniku Score.
Znacznik Expires
może zostać użyty do wskazania, który test nie powinien być wykonywany po
upływie daty określonej przez znacznik. Na przykład:
Expires: 4/1/1996 (albo: 1-4-1996)wskazuje, że test nie będzie wykonywany po pierwszym kwietnia 1996r. Jak pokazuje przykład, data musi być zapisana w określonym formacie: MM/DD/YYYY lub DD-MM-YYYY. Uwaga: NIE NALEŻY MYLIĆ ZNACZNIKA EXPIRES Z NAGŁÓWKIEM ARTYKUŁU. Znaczniki Znaczników Score: -100 Bytes: 20480przyznaje -100 punktów artykułom zawierającym ponad 20kB. Pamiętaj, że Bytes
jest dostępny tylko podczas pobierania danych overview, a w pozostalych
przypadkach (np. w slrnpull) jest równy 0.
Podobnie test: Score: -100 ~Lines: 3przyznaje punktację artykułom, które mają mniej niż 3 wiersze. Znacznika Score: 10 Age: 7dodaje 10 punktów każdemu artykułowi, który ma mniej niż tydzień. Możesz użyć zaprzeczenia ( ~)
do wypunktowania artykułów starszych niż N dni.
Do pliku punktacji mogą być dołączone zewnętrzne pliki z punktacją poprzez
użycie dyrektywy
include PLIK
Nazwa pliku jest względna w stosunku do katalogu, w którym znajduje się
macierzysty plik punktacji. Np. jeśli plik /home/john/News/Score
zawiera linie
include /usr/local/share/slrn/score include score_spama plik /usr/local/share/slrn/score:
include score_spamto w pierwszym przypadku, score_spam będzie odczytany z katalogu /home/john/News, a w drugim z katalogu
/usr/local/share/slrn.
3. Przykładowy plik punktacji
[news.software.readers]
Score: =1000
% Wszystkie artykuły o slrn są potrzebne
Subject: slrn
Score: 1000
% To jest gość, którego wiadomości chcę czytać
From: davis@space\.mit\.edu
Score: -9999
Subject: \<f?agent\>
[comp.os.linux.*]
Score: -10
Expires: 1/1/1996
Subject: swap
Score: 20
Subject: SunOS
Score: 50
From: Linus
% Zabij wszystkie artykuły przesyłane na grupę advocacy
Score: -9999
Xref: advocacy
~From: Linus
% Tej osoby nie chcę znać, dopóki będzie pisać o "gizmos"
% ale tylko na grupie comp.os.linux.development.*
Score: -9999
From: kogoś@bóg\.wie\.skąd
~Subject: gizmo
~Newsgroup: development
[~misc.invest.*, misc.taxes]
Score:: -9999
Subject: Earn Money
Subject: Earn \$
3.1 Omówienie przykładu
Ten plik zawiera dwie sekcje. Pierwsza z nich określa zestaw testów dotyczących grupy news.software.readers. Druga sekcja dotyczy grup comp.os.linux.*. Ostatnia sekcja dotyczy wszystkich grup z wyjątkiem misc.invest.* i misc.taxes (patrz niżej). Pierwsza sekcja zawiera trzy testy. Pierwszy z nich przyznaje 1000 punktów
każdemu tematowi zawierającego wyraz "slrn". Drugi test dotyczy pola
Druga sekcja jest bardziej złożona. Dotyczy ona grup comp.os.linux i składa się z 5 testów. Pierwsze trzy są proste: artykuł otrzymuje -10 punktów jeśli jego temat zawiera "swap", 20 punktów jeśli zawiera "SunOS" i 50 jeśli artykuł pochodzi od kogoś nazywającego się "Linus"'. To oznacza, że jeśli Bill@Skądśtam napisze artykuł którego temat to "Swap, Swap, Swap", wtedy artykuł ten otrzyma -10 punktów. Jeśli jednak Linus napisze artykuł o tym samym temacie, otrzyma on -10 + 50 = 40 punktów. Informacja o pierwszym teście wygasa na początku 1996r. Czwarty test zabija wszystkie artykuły, które są crosspostowane na grupę advocacy, CHYBA że wysłał je Linus. Informacja o tym, że znacznik rozpoczyna się znakiem "~", oznacza zaprzeczenie wyrażenia regularnego. Piąty test filtruje wiadomości pochodzące od kogoś@bóg.wie.skąd dopóki będzie on pisał o "gizmos" na jednej z grup comp.os.development. Jeszcze jedna informacja o znaku Ostatnia sekcja pliku punktacji zawiera linię: [~ misc.invest.*, misc.taxes] Jeśli pierwszy znak za kwadratowym nawiasem otwierającym to
4. Grupowanie reguł punktacji
Do pisania bardziej skomplikowanych regułek slrn udostępnia grupowanie reguł punktacji. Oto prosty przykład:
Score:: -1000
~Subject: \c[a-z]
{:
Subject: ^Re:
~Subject: ^Re:.*\c[a-z]
}
Linie umieszczone w nawiasach klamrowych tworzą grupę; za pierwszym nawiasem
znajdują się jeden lub dwa dwukropki, które określają czy tylko jedna ("::")
czy też wszystkie (":") linie wewnątrz grupy muszą przejść dany test
pozytywnie aby cała reguła została uznana jako spełniona.
Przykładowa regułka zabija artykuły o temacie nie zawierającym małych liter i nie posiadających początkowego "Re:".
|
|
|