| HN is a treasure trove of information. The primary way I read HN is to bookmark stories and read the comments when the discussion is complete. Others actively participate. Some get jobs via "Who is hiring?". We all use HN differently. There are ways to read HN other than this website. However, I have not found one that meets all of these requirements: - Self-hosted.
- Offline access of data.
- Query data via SQL.
- Full text search of stories and comments.
- Notification of replies to comments.
Some ideas:1) A tool that maintains a copy of the HN API[1] in an SQLite database, with indexing and full-text search[2]. This supports the development of the other tools. 2) A command line tool that demonstrates how to use the database and supports the development of scripts. For example: #!/bin/sh
# Run notify whenever someone replies to a comment.
$ hn replies username | notify
3) A web UI for browsing and searching. This can be hosted locally or on a remote server.What features interest you? [1]: https://github.com/HackerNews/API
[2]: https://www.sqlite.org/fts5.html
|
I have never explored the API, and I'm not a professional programmer, but allow me to describe the ideas from top of head when I read your posts:
Requirements:
1 - Self-hosted: So essentially, it's too heavy to keep the whole sites offline. However, because I always read by topic (e.g. I'd type "SICP ycombinator" in Google and read the top pages), I think one approach is to let the user enter a topic, say "SICP", as well as number of top-level stories to return, say 25, and invoke the API to return stories. The app will then dump the stories and their comments into a database with data modelling that suits for a forum.
2 - Offline access of data: Essentially what I mentioned above. The app should also allow user to remove a story (and its children), modify topics, favorite a story and create new topics. I think those are the barebone requirements. The backend would interact with the database and do updates.
3 - Query data via SQL: I think it might be too much work to parse queries, and the easiest thing to do is to just access a string as query and pass that to the database engine. Or maybe only allow user certain actions and let the backend assemble the queries.
4 - Full text search of stories and comments: Not sure what to do as my programming knowledge is very limited. I saw the second link you provided and it is very interesting.
5 - Notification of replies to comments: Maybe give user a button to update all his favorite stories.
TBH I really want to see what other people's implementations will be.