Compare commits
No commits in common. "2ca94d8a02dc18da0d30377082c99dfc33fb54da" and "bbfa3d569818694db5d540230518f6358e0f543c" have entirely different histories.
2ca94d8a02
...
bbfa3d5698
2 changed files with 10 additions and 19 deletions
|
|
@ -22,7 +22,7 @@ impl EventHandler for Handler {
|
||||||
dest_1: String::from("Hannover/Wettbergen"),
|
dest_1: String::from("Hannover/Wettbergen"),
|
||||||
dest_2: String::from("Hannover/Misburg"),
|
dest_2: String::from("Hannover/Misburg"),
|
||||||
headline: String::from("Linie 7 fährt erst bzw. bis Haltestelle In den Sieben Stücken"),
|
headline: String::from("Linie 7 fährt erst bzw. bis Haltestelle In den Sieben Stücken"),
|
||||||
detail: String::from("Gültig ab 27.07.2026 07:00 bis 13.08.2026 02:59<br><br>Aufgrund von Bauarbeiten kommt es in der Zeit von Montag, 27.07.2026, ca. 07:00 Uhr bis Donnerstag, 13.08.2026, ca. 02:59 Uhr an der Haltestelle Hannover, Stadionbrücke zu Einschränkungen. <br><br>Die Haltestelle Hannover, Stadionbrücke der Linien in Fahrtrichtung:<br> • Linie 3 - Altwarmbüchen<br> • Linie 7 - Hannover/Misburg<br> • Linie 13 - Hannover/Fasanenkrug<br> • Linie 17 - Hannover Hauptbahnhof/ZOB<br> wird nicht bedient. <br><br>Wir bitten um Ihr Verständnis."),
|
detail: String::from("Die Stadtbahnlinie 7 fährt während der Baumaßnahme erst ab beziehungsweise bis zur Haltestelle In den Sieben Stücken. Dort besteht die Umsteigemöglichkeit vom bzw. in den Schienenersatzverkehr (SEV) und die Stadtbahnlinien 3 und 13. An der Haltestelle Buchholz/Betriebshof ist kein Zustieg bzw. Ausstieg möglich."),
|
||||||
from: None,
|
from: None,
|
||||||
to: None,
|
to: None,
|
||||||
last_modified: String::from("2026-07-24T13:37:00Z"),
|
last_modified: String::from("2026-07-24T13:37:00Z"),
|
||||||
|
|
|
||||||
|
|
@ -39,33 +39,24 @@ impl Notice {
|
||||||
|
|
||||||
pub fn get_validity_period(&mut self) {
|
pub fn get_validity_period(&mut self) {
|
||||||
let re = Regex::new(
|
let re = Regex::new(
|
||||||
r"Gültig ab (\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})(?: bis (\d{2}\.\d{2}\.\d{4} \d{2}:\d{2}))?(?:<br>|\s)*",
|
r"Gültig ab (\d{2}\.\d{2}\.\d{4} \d{2}:\d{2}) bis (\d{2}\.\d{2}\.\d{4} \d{2}:\d{2})",
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let format = "%d.%m.%Y %H:%M";
|
|
||||||
|
|
||||||
if let Some(caps) = re.captures(&self.detail) {
|
if let Some(caps) = re.captures(&self.detail) {
|
||||||
let valid_from = caps.get(1).unwrap().as_str();
|
let valid_from = caps.get(1).unwrap().as_str();
|
||||||
if let Ok(start_dt) = NaiveDateTime::parse_from_str(valid_from, format) {
|
let valid_to = caps.get(1).unwrap().as_str();
|
||||||
self.from = Some(start_dt);
|
let format = "%d.%m.%Y %H:%M";
|
||||||
}
|
|
||||||
|
|
||||||
if let Some(valid_to_match) = caps.get(2) {
|
if let (Ok(start_dt), Ok(end_dt)) = (
|
||||||
let valid_to = valid_to_match.as_str();
|
NaiveDateTime::parse_from_str(valid_from, format),
|
||||||
if let Ok(end_dt) = NaiveDateTime::parse_from_str(valid_to, format) {
|
NaiveDateTime::parse_from_str(valid_to, format),
|
||||||
|
) {
|
||||||
|
self.from = Some(start_dt);
|
||||||
self.to = Some(end_dt);
|
self.to = Some(end_dt);
|
||||||
}
|
}
|
||||||
self.detail = re.replace(&self.detail, "").to_string();
|
|
||||||
self.trim();
|
|
||||||
} else {
|
|
||||||
self.to = None;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
println!("No validity period found in the text.");
|
println!("No validity period found in the text.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn trim(&mut self) {
|
|
||||||
self.detail = self.detail.replace("<br>", "\n");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue