retronews

a featureful fork of the luke8086/retronews hn+lobste.rs tui
Log | Files | Refs | README | LICENSE

commit 5ca665d10ed1bddb2e4bbee4e34a3c3a0a038472
parent 65fa4fd5ffab2a1c491a2b294861bda4f5e5072a
Author: luke8086 <55237178+luke8086@users.noreply.github.com>
Date:   Sun, 31 Jul 2022 20:12:16 +0000

Initial README

Diffstat:
AREADME.md | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ascreenshot.png | 0
2 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/README.md b/README.md @@ -0,0 +1,74 @@ +# retronews + +A Python script for browsing [Hacker News](https://news.ycombinator.com/) +comments with an interface emulating classical usenet and mail readers, +like slrn and mutt. + +<img src="screenshot.png" width="600" /> + +## Dependencies + +- Python 3.9+ (no external libraries needed) + +## Usage + +```bash +# Basic +$ ./retronews.py + +# Custom +$ ./retronews.py --db ~/.retronews.db --logfile ./tmp/debug.log + +# More info +$ ./retronews.py --help +``` + +## Rationale + +#### Why retronews was created? + +Hacker News is my favourite discussion board to follow, but I missed support +for highlighting interesting threads and tracking new responses. +Since the messages are mostly plain text, I also thought it'd be fun +to read them like a usenet group. + +My initial approach was to build a NNTP gateway for slrn, +similar to [nntpit](https://github.com/taviso/nntpit), but +it turned out not to be feasible. +After some prolonged tinkering I concluded that a standalone app +would be simpler and more elegant. + +#### Why not a NNTP gateway? + +NNTP operates on a flat list of messages. +The client asks for message headers N to M, uses them to draw a tree, and then +asks one by one for the full content when messages are selected. +There's no support for requesting a list of top-level messages first (let +alone paginated), and fetching their responses only when individual threads are expanded. + +The gateway would need to download all threads to display at once, and since the +underlying API can take several seconds per story, it'd be unacceptably slow. +It also wouldn't be possible to request threads from older pages or specified by id. + +#### Why not a web application? + +The traditional newsreader TUI has several limitations compared to a web app. +It doesn't support opening multiple stories at once in separate +tabs, it shows only one message at a time, it's not available on smartphones, +and it requires one more step to open a link. + + +These limitations can be seen as a benefit :wink: +They force you to process the information at a slower pace, in +a less compulsive and more focused way. + +## Known issues and limitations + +- The script is read-only, there are no plans to support voting and posting +- The message renderer has glitches, but I prefer to keep it simple than solve + every corner case + +## Related projects + +- [HN Search @ Algolia](https://hn.algolia.com/about) - The underlying API used to retrieve messages +- [nntpit](https://github.com/taviso/nntpit) - An NNTP gateway to reddit.com diff --git a/screenshot.png b/screenshot.png Binary files differ.