Files
ipx/crates/feed/src/lib.rs
rays ff5d786602 ipx-feed's lib.rs splits into leaf modules (#356)
lib.rs held 2,000 lines: fetching, parsing, OPML, Patreon, discovery,
artwork, categories, Jev and redaction, and their tests. It is now the
module list and the re-exports, so ipx and the directory call
feed::fetch, feed::parse and the rest as before:

  fetch.rs      fetch and its limits    parse.rs     RSS and Atom
  outlines.rs   OPML (not opml.rs, which would shadow the opml crate)
  patreon.rs    a creator's shows       discover.rs  finding a feed
  wordpress.rs  WordPress.com's API     failure.rs   failures in words
  privacy.rs    redact, looks_private   artwork.rs   https art, icons
  category.rs   Apple's categories      jev.rs       Jev's category

Moved verbatim, private items pub(crate) where a sibling calls them,
calls across modules module::function. Every definition and doc comment
line of the old lib.rs is in exactly one of the new files; each test
went with what it tests, and all 40 run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:41:14 +00:00

27 lines
919 B
Rust

//! Feed fetching and parsing, shared by ipx and the directory (#202). Replaces
//! FeedData.__getFeed / __getEntries.
mod artwork;
mod category;
mod discover;
mod failure;
mod fetch;
pub mod guard;
mod jev;
mod outlines;
mod parse;
mod patreon;
mod privacy;
mod wordpress;
pub use artwork::{is_image, prefer_https, site_icon};
pub use category::{categories, category_path};
pub use discover::{expand_input, find_feed};
pub use failure::{Failure, explain_failure, failure_kind, is_temporary_lookup_failure};
pub use fetch::{FEED_SILENCE, FEED_TIMEOUT, FETCHED_BYTES, FETCHES, Fetched, fetch};
pub use jev::{JEV_URL, classify};
pub use outlines::{collect_outlines, is_opml, opml_title, parse_opml, read_opml};
pub use parse::{Enclosure, Entry, ParsedFeed, markdown_html, parse, same_file_key};
pub use patreon::{is_patreon_creator, patreon_shows, same_feed};
pub use privacy::{redact, redact_text, url_looks_private};