55 lines
2.5 KiB
Rust
55 lines
2.5 KiB
Rust
mod parser;
|
||
|
||
use log::{debug, info};
|
||
|
||
use crate::{law::LawBuilder, par::parser::Risdok, Error};
|
||
|
||
fn fetch_page(url: &str) -> Result<String, Error> {
|
||
Ok(ureq::get(url).call()?.into_string()?)
|
||
}
|
||
|
||
pub(crate) fn parse(url: &str, builder: &mut LawBuilder) -> Result<bool, Error> {
|
||
info!("Parsing {url}");
|
||
let xml = fetch_page(url)?;
|
||
let xml = xml.replace("<gdash />", "-"); // used e.g. in §11 Abs. 3 UrhG
|
||
//
|
||
//
|
||
let xml = xml.replace(
|
||
// in § 17 (2)
|
||
r#"<liste><schlussteil ebene="0" art="normal" ct="text">(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.</schlussteil></liste>"#,
|
||
r#"<absatz typ="abs" ct="text" halign="j">(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.</absatz>"#,
|
||
);
|
||
|
||
let xml = xml.replace(
|
||
r#"<ueberschrift typ="para" ct="text" halign="c">1. Verwertungsrechte.</ueberschrift>"#,
|
||
r#"<ueberschrift typ="g1" ct="text" halign="c">1. Verwertungsrechte.</ueberschrift>"#,
|
||
); // 1. Verwertungsrechte. before § 14
|
||
|
||
let xml = xml.replace(
|
||
r#"<ueberschrift typ="para" ct="text" halign="c">4b. Presseveröffentlichungen.</ueberschrift>"#,
|
||
r#"<ueberschrift typ="g1" ct="text" halign="c">4b. Presseveröffentlichungen.</ueberschrift>"#,
|
||
); // § 99d UrhG, Titel kein Para.... //TODO: not working
|
||
|
||
let xml = xml.replace("<i>.</i>", "."); // e.g. § 37d Abs. 4 (last point)...
|
||
let xml = xml.replace("<i>. </i>", "."); // e.g. § 23a in MSchG
|
||
let xml = xml.replace("<super>", ""); // e.g. § 23a in MSchG
|
||
let xml = xml.replace("</super>", ""); // e.g. § 23a in MSchG
|
||
let xml = xml.replace("<i>", ""); // § 69 in MSchG
|
||
let xml = xml.replace("</i>", "");
|
||
|
||
// Artikel 18 UrhG
|
||
let xml = xml.replace("<n><i>", "");
|
||
let xml = xml.replace("</i></n>", "");
|
||
|
||
let xml = xml.replace(
|
||
r#"(Anm.: § 69 aufgehoben durch Art. 1 Z 12, BGBl. I Nr. 124/2017)"#,
|
||
r#"<gldsym>§ 69.</gldsym>(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)
|
||
}
|