• Stars
    star
    231
  • Rank 173,434 (Top 4 %)
  • Language
    C
  • License
    MIT License
  • Created almost 4 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

minimalist reddit2nntp gateway

nntpit

This is a simple reddit2nntp gateway server that lets you use a newsreader to follow discussions on reddit. The intention is for you to run it locally, tell your newsreader to connect to localhost, and subreddits will appear as newsgroups!

Slrn Headers

Slrn Article

This software is in an early experimental state: you will encounter bugs.

Building

You need libev-dev, libglib2.0-dev, libjson-c-dev, and libcurl4-openssl-dev.

To make the configure script:

$ autoreconf -i

Now type the usual ./configure, and make.

Usage

General usage with slrn

$ ./nntpit -D -p 8119

Now connect your newsreader; if you use slrn, you would do this:

$ NNTPSERVER=news://localhost:8119 slrn -f reddit --create

The groups list will be empty at first, but don't worry: that's normal.

Press a to add a group, and type the name of the subreddit you want to subscribe to.

Adding a subreddit

Don't include the /r/!

It should populate a list of articles and comments for you to read.

Usage with other clients

Some clients need the server to be first taught about the subreddits you want to read so they can be added to the database. You only need to specify them on the command line one time:

$ ./nntpit -D -p 8119 retrocomputing usenet classicusenet

Usage with tin

Start tin:

$ tin -r -g localhost -p 8119

The groups list will be empty at first, but don't worry: that's normal.

Press S to add a group, and type the name of the subreddit you want to subscribe to (eg 'usenet' for /r/usenet).

Usage with Thunderbird

Start Thunderbird, go to menu -> Account Settings -> Account Actions -> Add Other Account. The Account Wizard appears.

Select Newsgroup account, Next, your name and email address can be whatever as they aren't used (but must look like an email address), Next. Newsgroup Server should be 'localhost', Next, Account name can be whatever you like, Next, Finish.

The account with your given name should appear in the Account Settings sidebar. Click on Server Settings and change the port number to 8119. Close the account settings window.

In the main folders window the account should show in the sidebar. Click on it, click 'Manage newsgroup subscriptions'. The subreddits that nntpit knows about should be shown. Tick the ones you want to read and click OK.

The subreddits should now appear in the sidebar and you can click to open each one up and read the messages.

Reporting Bugs

If you're using slrn, please include the --debug and the nntpit -D log.

If you're not using slrn, please include as much detail as you can, and include any debugging logs your software can generate. Please be willing to help test!

Credit

The NNTP code is based on nntpsink by Felicity Tarnell (@unixwitch).

All other code is by @taviso.

Why?

I prefer to read discussions in a newsreader. There are many powerful features that we never got back when the world moved away from usenet.

There are the simple things like keeping track of which posts you've read or haven't seen yet, and customizing how threads are sorted and displayed.

There's more advanced features like tagging, watching, ignoring, and so on. Have you ever been following a discussion, but it's wandered off topic and people are now discussing something you're not interested in? Well, newsreaders let you ignore subthreads, but continue reading the rest without the clutter.

Then there are poweruser features, like scoring and macros.

Scoring

Most newsreaders will let you adjust the score of an article based on rules. A post with a high score will be higlighted, low scores might be dimmed, and very low scores might be completely hidden. You could also sort by score, so the best comments are at the top, and you read those first.

The simplest example would be if there's a user whose posts you always enjoy you can score their posts higher. Their comments will be hilighted and you'll never miss them.

You can chain complicated sets of rules together, really customizing your experience. Let's say you want to highlight all the cookie recipes posted by cookielover22, unless they contain the word "chocolate" because you're allergic. No problem: you can do that too.

How about assigning scores for different ingredients you like, then sorting all the comments by score?

Keyword Score
Chocolate -10
Raisins +20
Nuts +15

Now a post for "New Recipe for Chocolate Raisin Brownies!!" will be scored -10+20+15 = 25, and so on.

If you want to read about scoring, the slrn documentation is here.

How?

I have only tested this with the newsreader I use, slrn.

It might work with other newsreaders, but most likely I will need to make some changes. If you're willing to help with testing to get it working, then file an issue and let's see if we can make it work!

What about...

Gwene

Gwene is an rss2nntp gateway, reddit supports rss so why not use that?

Rss doesn't support threading, and makes each story appear as a new group.

You need to subscribe to every single story, and miss out on half the features, so it just doesn't work.

Posting

Can I post replies?

No, reading only. Maybe one day.

More Repositories

1

loadlibrary

Porting Windows Dynamic Link Libraries to Linux
C
4,330
star
2

ctypes.sh

A foreign function interface for bash.
C
2,060
star
3

ctftool

Interactive CTF Exploration Tool
C
1,636
star
4

123elf

A native port of Lotus 1-2-3 to Linux.
C
1,171
star
5

avscript

Avast JavaScript Interactive Shell
C
664
star
6

wpunix

WordPerfect for UNIX Character Terminals
C
615
star
7

rbndr

Simple DNS Rebinding Service
C
613
star
8

hotcorner

Tiny Hot Corners for Windows 10
C
380
star
9

rarvmtools

Minimal RarVM Toolchain
C
228
star
10

cefdebug

Minimal code to connect to a CEF debugger.
C
193
star
11

lotusdrv

Lotus 1-2-3 R4D Display Driver for DOSEMU
C
147
star
12

kiewtai

A port of Kaitai to the Hiew hex editor
C
144
star
13

sharapi

Simpsons: Hit & Run JavaScript API
JavaScript
112
star
14

swisstable

Access Abseil Swiss Tables from C
C
103
star
15

dbusmap

This is a simple utility for enumerating D-Bus endpoints, an nmap for D-Bus.
C
76
star
16

scanlimits

Tool to examine the behaviour of setuid binaries under constrained limits.
C
62
star
17

katamascii

An ascii-art physics puzzle, roll around your terminal collecting ascii-art objects!
C
43
star
18

timex

A hello world for the timex m851
C
31
star
19

minirun

Run commands with hidden console.
C
30
star
20

iknowthis

iknowthis Linux SystemCall Fuzzer
C
20
star
21

hiewdocs

Documentation and notes on using the Hiew editor.
HTML
17
star
22

mpgravity

MicroPlanet Gravity
C++
14
star
23

nssecurity

Netscape Plugin Security
C
8
star
24

defermap

Add a server mode to X11 clients
C
7
star
25

hiewkey

Keyboard helper for Hiew
C
4
star
26

wpdfilter

Enable Windows to Index WordPerfect UNIX Documents
C++
3
star
27

ncpro

Commandline Interface to NoteCase Pro
Shell
1
star
28

stfjson

Convert Lotus Agenda STF files to JSON
C
1
star