Compare commits
No commits in common. "f57b2452f990f9633210479200f700dfc94a9c67" and "f9f9669446af2b540039f741dd12ee7922715c47" have entirely different histories.
f57b2452f9
...
f9f9669446
45
src/main.rs
45
src/main.rs
@ -20,6 +20,7 @@ struct Train {
|
|||||||
number: String,
|
number: String,
|
||||||
//line: String,
|
//line: String,
|
||||||
r#type: String,
|
r#type: String,
|
||||||
|
admin: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
@ -36,11 +37,11 @@ struct DepartureInfo {
|
|||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
struct Departure {
|
struct Departure {
|
||||||
departure: Option<DepartureInfo>,
|
departure: Option<DepartureInfo>,
|
||||||
#[serde(rename = "initialDeparture")]
|
initialDeparture: String,
|
||||||
initial_departure: String,
|
|
||||||
route: Vec<Stop>,
|
route: Vec<Stop>,
|
||||||
train: Train,
|
train: Train,
|
||||||
destination: String,
|
destination: String,
|
||||||
|
initialStopPlace: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
@ -134,9 +135,7 @@ async fn route_index(
|
|||||||
) -> Result<Html<String>, String> {
|
) -> Result<Html<String>, String> {
|
||||||
let mut out = String::new();
|
let mut out = String::new();
|
||||||
|
|
||||||
out.push_str("<html>\n");
|
out.push_str("<html><body>\n");
|
||||||
out.push_str("<header><title>Nur Ausstieg</title></header>\n");
|
|
||||||
out.push_str("<body>\n");
|
|
||||||
out.push_str("<h1>Nur ausstieg</h1>\n");
|
out.push_str("<h1>Nur ausstieg</h1>\n");
|
||||||
out.push_str("<p>Es gibt Züge die innerhalb Berlins fahren, aber nicht im Fahrplan Routing der DB auftauchen, weil sie entweder in Berlin enden oder in Berlin beginnen.<br>\n");
|
out.push_str("<p>Es gibt Züge die innerhalb Berlins fahren, aber nicht im Fahrplan Routing der DB auftauchen, weil sie entweder in Berlin enden oder in Berlin beginnen.<br>\n");
|
||||||
out.push_str("Diese Seite zeigt für verschiene Stationen genau diese Züge an.</p>\n");
|
out.push_str("Diese Seite zeigt für verschiene Stationen genau diese Züge an.</p>\n");
|
||||||
@ -146,9 +145,7 @@ async fn route_index(
|
|||||||
out.push_str(&format!("<li><a href=\"/station/{}\">{}</a></li>\n", id, station.name));
|
out.push_str(&format!("<li><a href=\"/station/{}\">{}</a></li>\n", id, station.name));
|
||||||
}
|
}
|
||||||
|
|
||||||
out.push_str("</ul>\n");
|
out.push_str("</ul></body></html>\n");
|
||||||
out.push_str("<p><small><a href=\"/\">Nur Ausstieg</a> | <a href=\"https://git.clerie.de/clerie/nurausstieg\">Source Code</a></small></p>\n");
|
|
||||||
out.push_str("</body></html>\n");
|
|
||||||
|
|
||||||
return Ok(Html(out));
|
return Ok(Html(out));
|
||||||
}
|
}
|
||||||
@ -168,23 +165,15 @@ async fn route_station_overview(
|
|||||||
|
|
||||||
let mut out = String::new();
|
let mut out = String::new();
|
||||||
|
|
||||||
out.push_str("<html>\n");
|
out.push_str("<html><body>\n");
|
||||||
out.push_str(&format!("<header><title>Ziele für {} | Nur Ausstieg</title></header>\n", station_properties.name));
|
|
||||||
out.push_str("<body>\n");
|
|
||||||
out.push_str(&format!("<h1>Ziele für {}</h1>\n", station_properties.name));
|
out.push_str(&format!("<h1>Ziele für {}</h1>\n", station_properties.name));
|
||||||
out.push_str("<ul>\n");
|
out.push_str("<ul>\n");
|
||||||
|
|
||||||
for (dest_station_id, dest_station) in state.stations.into_iter() {
|
for (dest_station_id, dest_station) in state.stations.into_iter() {
|
||||||
if dest_station_id == station_id {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
out.push_str(&format!("<li><a href=\"/station/{}/to/{}\">{}</a></li>\n", station_id, dest_station_id, dest_station.name));
|
out.push_str(&format!("<li><a href=\"/station/{}/to/{}\">{}</a></li>\n", station_id, dest_station_id, dest_station.name));
|
||||||
}
|
}
|
||||||
|
|
||||||
out.push_str("</ul>\n");
|
out.push_str("</ul></body></html>\n");
|
||||||
out.push_str("<p><small><a href=\"/\">Nur Ausstieg</a> | <a href=\"https://git.clerie.de/clerie/nurausstieg\">Source Code</a></small></p>\n");
|
|
||||||
out.push_str("</body></html>\n");
|
|
||||||
|
|
||||||
return Ok(Html(out));
|
return Ok(Html(out));
|
||||||
}
|
}
|
||||||
@ -202,10 +191,6 @@ async fn route_station_to_dest_station(
|
|||||||
return Err((StatusCode::NOT_FOUND, String::from("Unknown destination station")));
|
return Err((StatusCode::NOT_FOUND, String::from("Unknown destination station")));
|
||||||
}
|
}
|
||||||
|
|
||||||
if dest_station_id == station_id {
|
|
||||||
return Err((StatusCode::NOT_FOUND, String::from("Cannot route to departing station as destination")));
|
|
||||||
}
|
|
||||||
|
|
||||||
let station_properties = match state.stations.get(&station_id) {
|
let station_properties = match state.stations.get(&station_id) {
|
||||||
Some(v) => v,
|
Some(v) => v,
|
||||||
None => return Err((StatusCode::INTERNAL_SERVER_ERROR, String::from("Station properties for departing station missing"))),
|
None => return Err((StatusCode::INTERNAL_SERVER_ERROR, String::from("Station properties for departing station missing"))),
|
||||||
@ -235,10 +220,8 @@ async fn route_station_to_dest_station(
|
|||||||
|
|
||||||
let mut out = String::new();
|
let mut out = String::new();
|
||||||
|
|
||||||
out.push_str("<html>\n");
|
out.push_str("<html><body>\n");
|
||||||
out.push_str(&format!("<header><title>Abfahrten für {} nach {} | Nur Ausstieg</title></header>\n", station_properties.name, dest_station_properties.name));
|
out.push_str(&format!("<h1>Abfahren für {} nach {}</h1>\n", station_properties.name, dest_station_properties.name));
|
||||||
out.push_str("<body>\n");
|
|
||||||
out.push_str(&format!("<h1>Abfahrten für {} nach {}</h1>\n", station_properties.name, dest_station_properties.name));
|
|
||||||
|
|
||||||
let display_all_departures = match query.all {
|
let display_all_departures = match query.all {
|
||||||
Some(_) => true,
|
Some(_) => true,
|
||||||
@ -268,8 +251,10 @@ async fn route_station_to_dest_station(
|
|||||||
if departure.destination.starts_with(&station_properties.name) {
|
if departure.destination.starts_with(&station_properties.name) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut after_current_station = false;
|
let mut after_current_station = false;
|
||||||
|
if departure.initialStopPlace == station_properties.code {
|
||||||
|
after_current_station = true;
|
||||||
|
}
|
||||||
|
|
||||||
let mut stops_at_destination = false;
|
let mut stops_at_destination = false;
|
||||||
for stop in &departure.route {
|
for stop in &departure.route {
|
||||||
@ -292,15 +277,13 @@ async fn route_station_to_dest_station(
|
|||||||
|
|
||||||
if stops_at_destination {
|
if stops_at_destination {
|
||||||
out.push_str(&format!("<li><time datetime=\"{}\">{}</time>: ", departure_info.time, departure_time.format("%H:%M")));
|
out.push_str(&format!("<li><time datetime=\"{}\">{}</time>: ", departure_info.time, departure_time.format("%H:%M")));
|
||||||
out.push_str(&format!("<a href=\"https://bahn.expert/details/{}%20{}/{}?evaNumberAlongRoute={}\">", &departure.train.r#type, &departure.train.number, &departure.initial_departure, station_properties.code));
|
out.push_str(&format!("<a href=\"https://bahn.expert/details/{}%20{}/{}?evaNumberAlongRoute={}\">", &departure.train.r#type, &departure.train.number, &departure.initialDeparture, station_properties.code));
|
||||||
out.push_str(&format!("{} ({} {})</a>", &departure.train.name, &departure.train.r#type, &departure.train.number));
|
out.push_str(&format!("{} ({} {})</a>", &departure.train.name, &departure.train.r#type, &departure.train.number));
|
||||||
out.push_str(&format!("[{}]-> {}\n", departure_info.platform, &departure.destination));
|
out.push_str(&format!("[{}]-> {}\n", departure_info.platform, &departure.destination));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
out.push_str("</ul>\n");
|
out.push_str("</ul></body></html>\n");
|
||||||
out.push_str("<p><small><a href=\"/\">Nur Ausstieg</a> | <a href=\"https://git.clerie.de/clerie/nurausstieg\">Source Code</a></small></p>\n");
|
|
||||||
out.push_str("</body></html>\n");
|
|
||||||
|
|
||||||
return Ok(Html(out));
|
return Ok(Html(out));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user