Full implementation of a personalized daily newspaper delivered as an EPUB. Articles are pulled from a local self-hosted Miniflux instance, enriched with comments, summarized and filtered by DeepSeek AI, and then assembled into two EPUB editions: standard and optimized for the Xteink X4 e-ink reader. Both are served by the local self-hosted BookOrbit OPDS server in a separate library. Then the X4 edition is futher converted to XTC format and served over a separate OPDS server hosted by the Rust binary. Runs are tracked in a local SQLite database so runs are idempotent per date. Full documentation of the plan is in docs/plans and setup and install instructions are in the README.md file.
75 lines
2.2 KiB
JSON
75 lines
2.2 KiB
JSON
{
|
|
"short_id": "abcdef",
|
|
"short_id_url": "https://lobste.rs/s/abcdef",
|
|
"created_at": "2026-08-14T09:11:04.000-05:00",
|
|
"title": "A Deep Dive Into B-Trees",
|
|
"url": "https://blog.dev/post",
|
|
"score": 78,
|
|
"flags": 1,
|
|
"comment_count": 4,
|
|
"description": "",
|
|
"description_plain": "",
|
|
"comments_url": "https://lobste.rs/s/abcdef/a_deep_dive_into_b_trees",
|
|
"submitter_user": "alice",
|
|
"user_is_author": false,
|
|
"tags": ["databases", "rust"],
|
|
"comments": [
|
|
{
|
|
"short_id": "c00001",
|
|
"short_id_url": "https://lobste.rs/c/c00001",
|
|
"created_at": "2026-08-14T09:40:00.000-05:00",
|
|
"is_deleted": false,
|
|
"is_moderated": false,
|
|
"score": 21,
|
|
"flags": 0,
|
|
"parent_comment": null,
|
|
"comment": "<p>The page-split diagrams are excellent.</p>",
|
|
"comment_plain": "The page-split diagrams are excellent.",
|
|
"indent_level": 1,
|
|
"commenting_user": "bob"
|
|
},
|
|
{
|
|
"short_id": "c00002",
|
|
"short_id_url": "https://lobste.rs/c/c00002",
|
|
"created_at": "2026-08-14T10:02:00.000-05:00",
|
|
"is_deleted": false,
|
|
"is_moderated": false,
|
|
"score": 9,
|
|
"flags": 0,
|
|
"parent_comment": "c00001",
|
|
"comment": "<p>Agreed — and the prose is tight too.</p>",
|
|
"comment_plain": "Agreed - and the prose is tight too.",
|
|
"indent_level": 2,
|
|
"commenting_user": { "username": "carol", "karma": 4021 }
|
|
},
|
|
{
|
|
"short_id": "c00003",
|
|
"short_id_url": "https://lobste.rs/c/c00003",
|
|
"created_at": "2026-08-14T11:15:00.000-05:00",
|
|
"is_deleted": false,
|
|
"is_moderated": false,
|
|
"score": 33,
|
|
"flags": 0,
|
|
"parent_comment": null,
|
|
"comment": "<p>Prior art: the 1979 Comer survey covers most of this.</p>",
|
|
"comment_plain": "Prior art: the 1979 Comer survey covers most of this.",
|
|
"indent_level": 1,
|
|
"commenting_user": "dave"
|
|
},
|
|
{
|
|
"short_id": "c00004",
|
|
"short_id_url": "https://lobste.rs/c/c00004",
|
|
"created_at": "2026-08-14T11:59:00.000-05:00",
|
|
"is_deleted": true,
|
|
"is_moderated": false,
|
|
"score": 0,
|
|
"flags": 0,
|
|
"parent_comment": "c00003",
|
|
"comment": "",
|
|
"comment_plain": "",
|
|
"indent_level": 2,
|
|
"commenting_user": "erin"
|
|
}
|
|
]
|
|
}
|