[jay.scot] [020] --[ Getting to grips with slrn Until a few weeks ago, I occasionally visited Usenet using the Lynx browser's built-in NNTP handler. It's a basic tool that served its purpose for browsing a few groups. However, Lynx couldn't handle killfiles, and the abundance of spam on Usenet nowadays made it very discouraging, looking at you google groups!. Recently, my other computer stopped working, which gave me a clean slate, so I decided to invest more time into finding a better solution. I remember using Pan back in the day, towards the end of Usenets hayday, but I wanted something CLI based so that's why I ended up going with slrn. When I used Lynx, I had an old Usenet block account that I purchased about three years ago from usenet.farm, honestly it wasn't for backfilling binaries! It worked fine for reading, and I rarely posted so wasn't and issue on that front. This time, though, I went to eternal-september.org and created a new account there. At first, I set up slrn in NNTP mode, which means it interacts with the news server remotely. However, this quickly became inconvenient for several reasons. Loading groups by connecting directly to the server every time I started up slrn felt sluggish. Moreover, I couldn't find a good way to separate my authentication credentials and store the slrn configuration in Git. In the slrn config file, I had to define the credentials explicitly, without the ability to call an external password manager or encrypted file, like so: nnrpaccess "snews://news.eternal-september.org:563" "my-user" "my-pass" set force_authentication 1 After some research over on the slrn homepage, I discovered that slrn comes with another tool called slrnpull. As the name suggests, it pulls all news articles to a local spool, which can then be viewed in slrn. Setting this up was a breeze, and with this method, I was able to separate my authentication credentials into a single file called "authinfo," which I could easily add to my Gitignore. I am now setup and good to go, looking forward to being more involved with Usenet! Below, I've included my configuration, which should serve as a good starting point for anyone wanting to use slrn. All files are relative to ~/.config/slrn slrnpull -d ~/.config/slrn/ # pull posts slrn -i ~/.config/slrn/config # read posts --[ config % user set username "jay.scot" set hostname "me@invalid" set generate_message_id 0 % apps set editor_command "vim '+set tw=72' +%d '%s'" set Xbrowser "firefox '%s' &" % attrib set followup_string "On %D, %r <%f> wrote:" set reply_string "In %n, you wrote:" % paths set spool_inn_root "~/.config/slrn/" set spool_root "~/.config/slrn/news" set spool_nov_root "~/.config/slrn/news" set read_active 1 set use_slrnpull 1 set server_object "spool" set scorefile ".config/slrn/score" % mime charset display utf8 charset outgoing utf8 % display set confirm_actions 0 set sorting_method 9 set uncollapse_threads 1 set top_status_line " %n" set group_status_line "%D %-20g -- %L (%P)" set header_status_line "%p [%r/%t] %-20g -- %L (%P)" set art_status_line "%p %s %-20g -- %L (%P)" set overview_date_format "%d %b %Y %H:%M" visible_headers "Date:,From:,Newsgroups:,Subject:" header_display_format 0 "%F%B %21r %T%s %-26g %D %-5c" % keybinds setkey group "set_prefix_argument(4); () = select_group();" " setkey article create_score "K" --[ slrnpull.conf # NAME | MAX_ARTICLES | DAYS_BEFORE_EXPIRE | FETCH_HEADERS_ONLY default 0 0 0 eternal-september.info eternal-september.newusers eternal-september.talk alt.gopher uk.radio.amateur --[ score % : Logical AND ie all tests must be passed (Conjunction) % :: Logical OR ie any of the tests are passed (Disjunction) % ~ Logical NOT ie an exception from the score rule (Negation) % = Stop score processing and award the score if the test is passed % * Wild card character [*] Score:: -9999 % Kill all articles which are uppercase and contain $ sign Subject: \$ ~Subject: \c[a-z] % Google groups are a source of, basically, all spam Message-ID: googlegroups % Known spam remailer From: nobody@dizum\.com % Prolific spammer From: doctor@doctor\.nl2k\.ab\.ca [eternal-september.*] Score:: -9999 From: Tigerbrother From: Dragonbrother --[ authinfo username password .EOF