Kiedy przechodziłem (a właściwie wracałem) z czytaniem newsów z Gnusa do SLRN zachciało mi się bardzo przydatnej opcji, która w Gnusie nazywa się adaptive scoring. Polega ona na tym, że scorowanie dokonywane jest automatycznie na podstawie wiadomości, które się czyta lub oznacza jako mało interesujące. Znalazłem dość proste makro dla SLRN o podobnym działaniu na stronie Robina Sommera. Ładnie działało do czasu ostatniej aktualizacji, którą opisywałem jakiś czas temu. Niestety w wersji 0.9.9 SLRN makro wysypywało się z komunikatem:
Function adsc_read_article_hook does not exist /home/jacek/.slrn_macros/adscfuncs.sl:29:<top-level>:Undefined Name
Kilkanaście minut poszukiwań doprowadziło mnie do rozwiązania. Problem polega na tym, że do tej pory można było najpierw zarejestrować funkcję register_hook, a dopiero później ją zdefiniować. Z obecnego zachowania programu wynika, że nie jest to już możliwe. Rozwiązanie jest bardzo proste, wystarczy przenieść linie:
register_hook( "read_article_hook", "adsc_read_article_hook" );
register_hook( "reply_hook", "adsc_reply_hook" );
register_hook( "followup_hook", "adsc_followup_hook" );
register_hook( "article_mode_hook", "adsc_article_mode_hook" );
register_hook( "startup_hook", "adsc_init" );
z pliku adscfuncs.sl do pliku adsc.sl umieszczając je po definicji ostatniej z nich, czyli adsc_init.Po takim zabiegu adaptive scoring w SLRN działa bez zastrzeżeń.
Jesteś pewien że adaptive scoring dalej działa, po takim zabiegu ?
przeniosłem wskazane linijki tak ja napisałeś.
adsc.sl wygląda tak:
evalfile( „News/adscfuncs.sl” );
define adsc_init()
{
register_hook( „read_article_hook”, „adsc_read_article_hook” );
[...]
slrn sie uruchamia, ale wydaje mi się że nie scoring nie działa
m
U mnie to na pewno zadziałało. Nie dodałeś czasami tych linijek do definicji adsc_init() zamiast wpisać je po tejże?
oj ja głupia ci…., masz racje już u mnie działa :) dzieki