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