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.
35 lines
1.0 KiB
Rust
35 lines
1.0 KiB
Rust
//! `daily-epub` — a personalized daily newspaper as an EPUB (spec §1, §2).
|
|
//!
|
|
//! The crate ships both a library and a thin `daily-epub` binary. Everything the
|
|
//! pipeline does lives here so that integration tests can drive the stages
|
|
//! directly (see `tests/e2e_pipeline.rs`) instead of shelling out to the binary.
|
|
//!
|
|
//! Pipeline order (spec §2), all of it wired in [`crate::pipeline`]:
|
|
//!
|
|
//! ```text
|
|
//! Miniflux ingest → dedupe → extraction → persist → social enrichment
|
|
//! → pre-filter → LLM scoring → selection → comments → world briefing
|
|
//! → editorial → EPUB build (standard + X4) → XTC → publish → report
|
|
//! ```
|
|
|
|
pub mod auth;
|
|
pub mod comments;
|
|
pub mod config;
|
|
pub mod curate;
|
|
pub mod db;
|
|
pub mod dedupe;
|
|
pub mod epub;
|
|
pub mod extract;
|
|
pub mod http;
|
|
pub mod miniflux;
|
|
pub mod pipeline;
|
|
pub mod publish;
|
|
pub mod report;
|
|
pub mod server;
|
|
pub mod social;
|
|
pub mod types;
|
|
pub mod world;
|
|
|
|
/// `CARGO_PKG_VERSION`, printed in the colophon and the OPDS generator tag.
|
|
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
|