1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use anyhow::Context as _; use reqwest::blocking::Response; use reqwest::header::LOCATION; use reqwest::Url; use crate::Result; pub mod act; mod cookie; pub mod scrape; pub mod session; pub use self::cookie::CookieStorage; pub use act::Act; pub trait ResponseExt { fn location_url(&self, base: &Url) -> Result<Url>; } impl ResponseExt for Response { fn location_url(&self, base: &Url) -> Result<Url> { let loc_str = self .headers() .get(LOCATION) .context("Could not find location header in response")? .to_str()?; base.join(loc_str) .context("Could not parse redirection url") } }