mod parser; use log::{debug, info}; use crate::{law::LawBuilder, par::parser::Risdok, Error}; fn fetch_page(url: &str) -> Result { Ok(ureq::get(url).call()?.into_string()?) } pub(crate) fn parse(url: &str, builder: &mut LawBuilder) -> Result { info!("Parsing {url}"); let xml = fetch_page(url)?; let xml = xml.replace("", "-"); // used e.g. in §11 Abs. 3 UrhG // // let xml = xml.replace( // in § 17 (2) r#"(2) Einer Rundfunksendung steht es gleich, wenn ein Werk von einer im In- oder im Ausland gelegenen Stelle aus der Öffentlichkeit im Inland, ähnlich wie durch Rundfunk, aber mit Hilfe von Leitungen wahrnehmbar gemacht wird."#, r#"(2) Einer Rundfunksendung steht es gleich, wenn ein Werk von einer im In- oder im Ausland gelegenen Stelle aus der Öffentlichkeit im Inland, ähnlich wie durch Rundfunk, aber mit Hilfe von Leitungen wahrnehmbar gemacht wird."#, ); let xml = xml.replace( r#"1. Verwertungsrechte."#, r#"1. Verwertungsrechte."#, ); // 1. Verwertungsrechte. before § 14 let xml = xml.replace( r#"4b. Presseveröffentlichungen."#, r#"4b. Presseveröffentlichungen."#, ); // § 99d UrhG, Titel kein Para.... //TODO: not working let xml = xml.replace(".", "."); // e.g. § 37d Abs. 4 (last point)... let xml = xml.replace(". ", "."); // e.g. § 23a in MSchG let xml = xml.replace("", ""); // e.g. § 23a in MSchG let xml = xml.replace("", ""); // e.g. § 23a in MSchG let xml = xml.replace("", ""); // § 69 in MSchG let xml = xml.replace("", ""); // Artikel 18 UrhG let xml = xml.replace("", ""); let xml = xml.replace("", ""); let xml = xml.replace( r#"(Anm.: § 69 aufgehoben durch Art. 1 Z 12, BGBl. I Nr. 124/2017)"#, r#"§ 69.(Anm.: § 69 aufgehoben durch Art. 1 Z 12, BGBl. I Nr. 124/2017)"#, ); debug!("{xml}"); let continue_parsing = Risdok::from_str(&xml, builder)?; Ok(continue_parsing) }