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.
106 lines
2.6 KiB
JSON
106 lines
2.6 KiB
JSON
[
|
|
{
|
|
"kind": "Listing",
|
|
"data": {
|
|
"children": [
|
|
{
|
|
"kind": "t3",
|
|
"data": {
|
|
"subreddit": "programming",
|
|
"id": "1abcd2",
|
|
"name": "t3_1abcd2",
|
|
"title": "A Deep Dive Into B-Trees",
|
|
"score": 845,
|
|
"num_comments": 231,
|
|
"permalink": "/r/programming/comments/1abcd2/a_deep_dive_into_btrees/",
|
|
"url": "https://blog.dev/post"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"kind": "Listing",
|
|
"data": {
|
|
"children": [
|
|
{
|
|
"kind": "t1",
|
|
"data": {
|
|
"id": "kx1",
|
|
"name": "t1_kx1",
|
|
"author": "index_nerd",
|
|
"score": 412,
|
|
"body": "Fan-out is the whole ballgame; everything else is bookkeeping.",
|
|
"depth": 0,
|
|
"stickied": false,
|
|
"replies": {
|
|
"kind": "Listing",
|
|
"data": {
|
|
"children": [
|
|
{
|
|
"kind": "t1",
|
|
"data": {
|
|
"id": "kx2",
|
|
"name": "t1_kx2",
|
|
"author": "pagecache",
|
|
"score": 130,
|
|
"body": "Until your keys are variable length & the math gets ugly.",
|
|
"depth": 1,
|
|
"stickied": false,
|
|
"replies": ""
|
|
}
|
|
},
|
|
{
|
|
"kind": "more",
|
|
"data": {
|
|
"count": 18,
|
|
"name": "t1_more1",
|
|
"id": "more1",
|
|
"children": ["kx9", "kx10"]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"kind": "t1",
|
|
"data": {
|
|
"id": "kx3",
|
|
"name": "t1_kx3",
|
|
"author": "AutoModerator",
|
|
"score": 1,
|
|
"body": "Please keep discussion civil.",
|
|
"depth": 0,
|
|
"stickied": true,
|
|
"replies": ""
|
|
}
|
|
},
|
|
{
|
|
"kind": "t1",
|
|
"data": {
|
|
"id": "kx4",
|
|
"name": "t1_kx4",
|
|
"author": "[deleted]",
|
|
"score": null,
|
|
"body": "[removed]",
|
|
"depth": 0,
|
|
"stickied": false,
|
|
"replies": ""
|
|
}
|
|
},
|
|
{
|
|
"kind": "more",
|
|
"data": {
|
|
"count": 205,
|
|
"name": "t1_more2",
|
|
"id": "more2",
|
|
"children": []
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|