1#![forbid(unsafe_code)]
5
6pub mod change;
7pub mod crawl;
8pub mod discovery;
9pub mod engine;
10pub mod notice;
11pub mod scripts;
12
13pub use pagesift_frontier::{focus, frontier};
14pub use pagesift_plan::learn;
15pub use pagesift_sink::audit;
16
17use pagesift_api::types::{Document, ScrapeOptions};
18use pagesift_api::{ApiError, BoxFuture};
19use pagesift_policy::RobotsMode;
20
21pub trait PageRunner: Send + Sync {
24 fn run<'a>(
25 &'a self,
26 kind: &'static str,
27 url: &'a str,
28 opts: &'a ScrapeOptions,
29 mode: RobotsMode,
30 ) -> BoxFuture<'a, Result<Document, ApiError>>;
31
32 fn capacity(&self) -> Option<usize> {
34 None
35 }
36}
37
38pub use crawl::normalize as normalize_url;
39pub use engine::{
40 AUTO_RENDER_ARTICLE_MIN_CHARS, AUTO_RENDER_MIN_CHARS, EngineProbe, Scraper, ScraperConfig,
41 ScraperError, needs_render, office_markdown, office_markdown_from, set_cpu_capacity,
42 set_cpu_groups, text_weight,
43};