commit de1534a63756d766c85a92a7947efeb43240bc26
parent 0f9128220ecf3616862f591aac29a0eae606038d
Author: luke8086 <55237178+luke8086@users.noreply.github.com>
Date: Sat, 17 Jun 2023 14:24:36 +0000
Overall updates to README
Diffstat:
| M | README.md | | | 50 | +++++++++++++------------------------------------- |
1 file changed, 13 insertions(+), 37 deletions(-)
diff --git a/README.md b/README.md
@@ -1,8 +1,8 @@
# 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.
+and [Lobsters](https://lobste.rs/) discussions with an interface emulating
+classical usenet and mail readers, like slrn and mutt.
It only requires Python 3.9 and doesn't need installation, you can run it with:
@@ -11,53 +11,29 @@ $ curl -LO https://raw.githubusercontent.com/luke8086/retronews/main/retronews.p
$ python3 ./retronews.py
```
+Press `?` to see available keybindings.
+
For rationale, see the corresponding [blog post](https://luke8086.neocities.org/retronews.html)
<img src="screenshot.png" width="600" />
-## Default key bindings
-
-```
- q Quit retronews
- ? Show this help message
- UP, DOWN Go up / down by one message / pager line
- PG UP, PG DOWN Gp up / down by one page of messages / pager lines
- p, n Go to previous / next message
- N Go to next unread message
- P Go to parent message
- ; , Set mark, jump to mark & swap (valid within thread)
- RETURN, SPACE Open selected message
- x Close current message / thread
- 1 - 5 Change group
- R Refresh current page
- < > Go to previous / next page
- g Go to specific page
- k j Scroll pager up / down by one line
- s Star / unstar selected message
- S Star / unstar current thread
- r Toggle raw HTML mode
-```
-
## 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
+- The reader is read-only, there are no plans to support voting and posting
+- Message formatting is not perfect, but works well enough most of the time
+- Detecting if threads contain unread responses works by only checking their
+ amount, it's not reliable if any responses were deleted
- No config file is planned, since the code is in Python, it's simpler to
treat it as its own config and customize directly
## 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.
+NNTP doesn't support browsing threads by title (let alone paginated) and requesting
+their messages on demand. Clients need to fetch metadata of all available messages
+in all available threads in advance. Given the volume of messages on HN, synchronizing
+them to the gateway is not practical. Even when attempted, some clients struggle
+with the amount of data in a single group.
## Related projects