Skip to content

sockbot/awful-nntp-proto

Repository files navigation

awful-nntp

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.

image image image

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

Overview

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.

Known bugs and limitations

  • 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?

Requirements

  • Elixir 1.14+ / Erlang OTP 24+
  • Something Awful forum account

Installation

Arch Linux

Install Erlang dependencies (Arch splits Erlang into separate packages):

sudo pacman -S elixir erlang-public_key erlang-ssl erlang-parsetools

Debian/Ubuntu

sudo apt install elixir erlang

Build from source

git clone https://github.com/sockbot/awful-nntp.git
cd awful-nntp
mix deps.get
mix compile

Usage

Start the server

mix run --no-halt
# Server starts on port 1199

Connect with an NNTP client

# Using tin
tin -g localhost -p 1199 -A -r

# Or telnet for testing
telnet localhost 1199

Authentication

Once connected, authenticate with your SA credentials (telnet):

AUTHINFO USER your_username
AUTHINFO PASS your_password

Browse forums

LIST                     # List all SA forums
GROUP sa.general-bullshit  # Select a forum (not fully implemented yet)

Testing

Run automated tests

mix test

Fetch sample data (for development)

./scripts/fetch_sa_samples.exs
# Fetches real SA HTML to samples/ directory

License

MIT License - see LICENSE for details.

About

Something Awful forums to NNTP bridge - Browse SA forums with your favorite NNTP client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages