020.txt - gopherhole - My gopherhole source code.
 (HTM) git clone git://jay.scot/gopherhole
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       020.txt (4320B)
       ---
            1 [jay.scot]
            2 [020]
            3 
            4 
            5 --[ Getting to grips with slrn
            6 
            7 
            8 Until a few weeks ago, I occasionally visited Usenet using the Lynx
            9 browser's built-in NNTP handler. It's a basic tool that served its
           10 purpose for browsing a few groups. However, Lynx couldn't handle
           11 killfiles, and the abundance of spam on Usenet nowadays made it very
           12 discouraging, looking at you google groups!. Recently, my other computer
           13 stopped working, which gave me a clean slate, so I decided to invest
           14 more time into finding a better solution. I remember using Pan back in
           15 the day, towards the end of Usenets hayday, but I wanted something CLI
           16 based so that's why I ended up going with slrn.
           17 
           18 
           19 When I used Lynx, I had an old Usenet block account that I purchased
           20 about three years ago from usenet.farm, honestly it wasn't for
           21 backfilling binaries! It worked fine for reading, and I rarely posted so
           22 wasn't and issue on that front. This time, though, I went to
           23 eternal-september.org and created a new account there.
           24 
           25 
           26 At first, I set up slrn in NNTP mode, which means it interacts with the
           27 news server remotely. However, this quickly became inconvenient for
           28 several reasons. Loading groups by connecting directly to the server
           29 every time I started up slrn felt sluggish. Moreover, I couldn't find
           30 a good way to separate my authentication credentials and store the slrn
           31 configuration in Git. In the slrn config file, I had to define the
           32 credentials explicitly, without the ability to call an external password
           33 manager or encrypted file, like so:
           34 
           35 
           36         nnrpaccess "snews://news.eternal-september.org:563" "my-user" "my-pass"
           37         set force_authentication 1
           38 
           39 
           40 After some research over on the slrn homepage, I discovered that slrn
           41 comes with another tool called slrnpull. As the name suggests, it pulls
           42 all news articles to a local spool, which can then be viewed in slrn.
           43 Setting this up was a breeze, and with this method, I was able to
           44 separate my authentication credentials into a single file called
           45 "authinfo," which I could easily add to my Gitignore. I am now setup and
           46 good to go, looking forward to being more involved with Usenet!
           47 
           48 
           49 Below, I've included my configuration, which should serve as a good
           50 starting point for anyone wanting to use slrn. All files are relative to
           51 ~/.config/slrn
           52 
           53 
           54         slrnpull -d ~/.config/slrn/   # pull posts
           55         slrn -i ~/.config/slrn/config # read posts
           56 
           57 
           58 --[ config
           59 
           60 
           61 % user
           62 set username "jay.scot"
           63 set hostname "me@invalid"
           64 set generate_message_id 0
           65 
           66 % apps
           67 set editor_command "vim '+set tw=72' +%d '%s'"
           68 set Xbrowser "firefox '%s' &"
           69 
           70 % attrib
           71 set followup_string "On %D, %r <%f> wrote:"
           72 set reply_string "In %n, you wrote:"
           73 
           74 % paths
           75 set spool_inn_root        "~/.config/slrn/"
           76 set spool_root                "~/.config/slrn/news"
           77 set spool_nov_root        "~/.config/slrn/news"
           78 set read_active                1
           79 set use_slrnpull        1
           80 set server_object        "spool"
           81 
           82 set scorefile ".config/slrn/score"
           83 
           84 % mime
           85 charset display utf8
           86 charset outgoing utf8
           87 
           88 % display
           89 set confirm_actions 0
           90 set sorting_method 9
           91 set uncollapse_threads 1
           92 set top_status_line " %n"
           93 set group_status_line "%D %-20g -- %L (%P)"
           94 set header_status_line "%p [%r/%t] %-20g -- %L (%P)"
           95 set art_status_line "%p %s %-20g -- %L (%P)"
           96 set overview_date_format "%d %b %Y %H:%M"
           97 
           98 visible_headers "Date:,From:,Newsgroups:,Subject:"
           99 header_display_format 0 "%F%B  %21r  %T%s %-26g %D  %-5c"
          100 
          101 % keybinds
          102 setkey group "set_prefix_argument(4); () = select_group();" "
          103 setkey article create_score "K"
          104 
          105 
          106 --[ slrnpull.conf
          107 
          108 
          109 # NAME | MAX_ARTICLES | DAYS_BEFORE_EXPIRE | FETCH_HEADERS_ONLY
          110 default                                0        0        0
          111 
          112 eternal-september.info
          113 eternal-september.newusers
          114 eternal-september.talk
          115 alt.gopher
          116 uk.radio.amateur
          117 
          118 
          119 --[ score
          120 
          121 
          122 % : Logical AND ie all tests must be passed (Conjunction)
          123 % :: Logical OR ie any of the tests are passed (Disjunction)
          124 % ~ Logical NOT ie an exception from the score rule (Negation)
          125 % = Stop score processing and award the score if the test is passed
          126 % * Wild card character
          127 
          128 [*]
          129   Score:: -9999
          130 
          131   % Kill all articles which are uppercase and contain $ sign
          132   Subject: \$
          133   ~Subject: \c[a-z]
          134 
          135   % Google groups are a source of, basically, all spam
          136   Message-ID: googlegroups
          137 
          138   % Known spam remailer
          139   From: nobody@dizum\.com
          140 
          141   % Prolific spammer
          142   From: doctor@doctor\.nl2k\.ab\.ca
          143 
          144 [eternal-september.*]
          145   Score:: -9999
          146   From: Tigerbrother
          147   From: Dragonbrother
          148 
          149 
          150 
          151 --[ authinfo
          152 
          153 
          154 username
          155 password
          156 
          157 
          158 .EOF