Do you hate the modern web? Well now you have one less dependency on it, because you can access the forums via the CLI using this Something Awful forums to NNTP bridge.
If you like it, please star! Contributions accepted.
Use cases:
- You are a neckbeard that only uses computers in text mode (like me)
- You have a dial-up internet connection and still want to read the forums
- You are on the ISS and want to browse the forums with a packet radio connection
- You are using an ancient computer that isn't powerful enough to run modern browsers and you don't wnat to pay $500 for more RAM
awful-nntp is a protocol bridge that allows you to read the Something Awful forums using any NNTP (Network News Transfer Protocol) newsreader client. Connect with classic tools like tin, slrn, or any other NNTP client.
This is cursed software, use at your own risk.
I've chosen to implement a protocol bridge rather than a stateful application because there is no Awful API and I don't want to scrape the entire forums. By making this application stateless, it is your account that is doing the scraping. I chose Elixir because it seemed like a good choice for a stateless application. If this gets enough love, I may rewrite it into a stateful application in a less esoteric language.
- Tries to grab the 40 latest posts in a forum at a time, but doesn't always work
- Reading only, no replies
- Grabs newish posts from latest threads, but not always the newest. Why?
- Elixir 1.14+ / Erlang OTP 24+
- Something Awful forum account
Install Erlang dependencies (Arch splits Erlang into separate packages):
sudo pacman -S elixir erlang-public_key erlang-ssl erlang-parsetoolssudo apt install elixir erlanggit clone https://github.com/sockbot/awful-nntp.git
cd awful-nntp
mix deps.get
mix compilemix run --no-halt
# Server starts on port 1199# Using tin
tin -g localhost -p 1199 -A -r
# Or telnet for testing
telnet localhost 1199Once connected, authenticate with your SA credentials (telnet):
AUTHINFO USER your_username
AUTHINFO PASS your_password
LIST # List all SA forums
GROUP sa.general-bullshit # Select a forum (not fully implemented yet)
mix test./scripts/fetch_sa_samples.exs
# Fetches real SA HTML to samples/ directoryMIT License - see LICENSE for details.