From fd0b3c8292ea2665c76ae89489c5717af978150d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tristram=20Gr=C3=A4bener?= Date: Tue, 26 Jan 2021 18:36:46 +0100 Subject: [PATCH 1/3] gtfs2ntfs: read route_desc into comments --- src/gtfs/read.rs | 22 +++++++++++++++++++ .../routes_comments/input/agency.txt | 3 +++ .../routes_comments/input/calendar_dates.txt | 6 +++++ .../routes_comments/input/routes.txt | 5 +++++ .../routes_comments/input/stop_times.txt | 12 ++++++++++ .../gtfs2ntfs/routes_comments/input/stops.txt | 16 ++++++++++++++ .../gtfs2ntfs/routes_comments/input/trips.txt | 6 +++++ .../routes_comments/output/calendar.txt | 3 +++ .../routes_comments/output/comment_links.txt | 4 ++++ .../routes_comments/output/comments.txt | 4 ++++ .../output/commercial_modes.txt | 2 ++ .../routes_comments/output/companies.txt | 3 +++ .../routes_comments/output/contributors.txt | 2 ++ .../routes_comments/output/datasets.txt | 2 ++ .../routes_comments/output/feed_infos.txt | 7 ++++++ .../routes_comments/output/lines.txt | 3 +++ .../routes_comments/output/networks.txt | 3 +++ .../routes_comments/output/object_codes.txt | 17 ++++++++++++++ .../routes_comments/output/physical_modes.txt | 5 +++++ .../routes_comments/output/routes.txt | 3 +++ .../routes_comments/output/stop_times.txt | 12 ++++++++++ .../routes_comments/output/stops.txt | 11 ++++++++++ .../routes_comments/output/trips.txt | 5 +++++ tests/gtfs2ntfs.rs | 14 ++++++++++++ 24 files changed, 170 insertions(+) create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/input/agency.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/input/calendar_dates.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/input/routes.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/input/stop_times.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/input/stops.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/input/trips.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/calendar.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/comment_links.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/comments.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/commercial_modes.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/companies.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/contributors.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/datasets.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/feed_infos.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/lines.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/networks.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/object_codes.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/physical_modes.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/routes.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/stop_times.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/stops.txt create mode 100644 tests/fixtures/gtfs2ntfs/routes_comments/output/trips.txt diff --git a/src/gtfs/read.rs b/src/gtfs/read.rs index 40df4a431..33c93aaf2 100644 --- a/src/gtfs/read.rs +++ b/src/gtfs/read.rs @@ -631,6 +631,16 @@ fn manage_comment_from_stop( comment_links } +fn get_route_comment(route: &Route) -> Option { + route.desc.as_ref().map(|desc| objects::Comment { + id: "route:".to_string() + &route.id, + comment_type: objects::CommentType::Information, + label: None, + name: desc.to_string(), + url: None, + }) +} + fn manage_odt_comment_from_stop_time( collections: &mut Collections, on_demand_transport_comment: &str, @@ -1184,6 +1194,18 @@ where let routes = make_routes(>fs_trips, &map_line_routes); collections.routes = CollectionWithId::new(routes)?; + gtfs_routes_collection.iter().for_each(|(_id, gtfs_route)| { + if let Some(comment) = get_route_comment(>fs_route) { + if let Some(mut route) = collections.routes.get_mut(>fs_route.id) { + route.comment_links.insert(comment.id.to_string()); + collections + .comments + .push(comment) + .expect("Duplicated comment id that shouldn’t be possible"); + } + } + }); + let (vehicle_journeys, trip_properties) = make_ntfs_vehicle_journeys( >fs_trips, >fs_routes_collection, diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/input/agency.txt b/tests/fixtures/gtfs2ntfs/routes_comments/input/agency.txt new file mode 100644 index 000000000..60ad6d7e4 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/input/agency.txt @@ -0,0 +1,3 @@ +agency_id,agency_name,agency_url,agency_timezone,agency_phone +1,mon agence,http://kisio.org,Europe/Paris, +2,my agency,http://kisio.org,Europe/Paris,0123456789 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/input/calendar_dates.txt b/tests/fixtures/gtfs2ntfs/routes_comments/input/calendar_dates.txt new file mode 100644 index 000000000..b251745b3 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/input/calendar_dates.txt @@ -0,0 +1,6 @@ +service_id,date,exception_type +service:1,20180101,1 +service:1,20180102,1 +service:1,20180103,1 +service:2,20180105,1 +service:2,20180106,1 \ No newline at end of file diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/input/routes.txt b/tests/fixtures/gtfs2ntfs/routes_comments/input/routes.txt new file mode 100644 index 000000000..1d8ef16ca --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/input/routes.txt @@ -0,0 +1,5 @@ +route_id,route_short_name,route_long_name,line_id,route_type,agency_id,route_desc +route_not_in_trip:1,ma route 1,,line:1,1,1, +route:2,ma route 1,,line:1,1,1,route 2 comment +route:3,ma route 2,,line:2,1,2, +route_not_in_trip:4,ma route 3,,line:2,1,2, diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/input/stop_times.txt b/tests/fixtures/gtfs2ntfs/routes_comments/input/stop_times.txt new file mode 100644 index 000000000..b89102656 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/input/stop_times.txt @@ -0,0 +1,12 @@ +trip_id,stop_sequence,stop_id,arrival_time,departure_time,pickup_type,drop_off_type +trip:3,0,stop:31,23:50:00,23:50:00,, +trip:3,1,stop:32,24:03:00,24:05:00,, +trip:3,2,stop:33,24:10:00,24:15:00,, +trip:4,0,stop:11,07:23:00,07:23:00,2, +trip:4,1,stop:22,07:32:00,07:32:00,2, +trip:4,2,stop:33,07:40:00,07:42:00,2, +trip:5,0,stop:51,13:23:00,13:23:00,2, +trip:5,1,stop:52,14:10:00,14:10:00,2, +trip:5,2,stop:53,14:40:00,14:40:00,,2 +trip:6,0,stop:61,14:40:00,14:40:00,2, +trip:6,1,stop:61,15:20:00,15:20:00,2, diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/input/stops.txt b/tests/fixtures/gtfs2ntfs/routes_comments/input/stops.txt new file mode 100644 index 000000000..cd6530248 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/input/stops.txt @@ -0,0 +1,16 @@ +stop_id,stop_name,stop_lat,stop_lon,location_type,parent_station,stop_desc +stoparea:1,plop,48.844746,2.372987,1,,stoparea:1_comment +stop:11,pouet,48.844746,2.372987,0,stoparea:1,stop:11_comment +stop:12,pouet,48.844746,2.372987,0,stoparea:1, +stop:13,pouet,48.844746,2.372987,0,stoparea:1, +stop:14,pouet,48.844746,2.372987,0,stoparea:1, +stop:21,pouet,48.844746,2.372987,0,stoparea:1, +stop:22,pouet,48.844746,2.372987,0,stoparea:1, +stop:31,pouet,48.844746,2.372987,0,stoparea:1, +stop:32,pouet,48.844746,2.372987,0,stoparea:1, +stop:33,pouet,48.844746,2.372987,0,stoparea:1, +stop:51,pouet,48.844746,2.372987,0,stoparea:1, +stop:52,pouet,48.844746,2.372987,0,stoparea:1, +stop:53,pouet,48.844746,2.372987,0,stoparea:1, +stop:61,pouet,48.844746,2.372987,0,stoparea:1, +stop:62,pouet,48.844746,2.372987,0,stoparea:1, diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/input/trips.txt b/tests/fixtures/gtfs2ntfs/routes_comments/input/trips.txt new file mode 100644 index 000000000..c3210186c --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/input/trips.txt @@ -0,0 +1,6 @@ +route_id,service_id,trip_id +route:2,service:1,trip:3 +route:2,service:1,trip:4 +route:3,service:2,trip:5 +route:3,service:2,trip:6 +route:3,service:2,with_no_stop_times diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/calendar.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/calendar.txt new file mode 100644 index 000000000..d006cfce8 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/calendar.txt @@ -0,0 +1,3 @@ +service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date +service:1,1,1,1,0,0,0,0,20180101,20180103 +service:2,0,0,0,0,1,1,0,20180105,20180106 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/comment_links.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/comment_links.txt new file mode 100644 index 000000000..c5434c607 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/comment_links.txt @@ -0,0 +1,4 @@ +object_id,object_type,comment_id +route:2,route,route:route:2 +stoparea:1,stop_area,stop:stoparea:1 +stop:11,stop_point,stop:stop:11 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/comments.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/comments.txt new file mode 100644 index 000000000..db2124f47 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/comments.txt @@ -0,0 +1,4 @@ +comment_id,comment_type,comment_label,comment_name,comment_url +stop:stoparea:1,information,,stoparea:1_comment, +stop:stop:11,information,,stop:11_comment, +route:route:2,information,,route 2 comment, diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/commercial_modes.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/commercial_modes.txt new file mode 100644 index 000000000..8560e5b14 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/commercial_modes.txt @@ -0,0 +1,2 @@ +commercial_mode_id,commercial_mode_name +Metro,Metro diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/companies.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/companies.txt new file mode 100644 index 000000000..a279bfebe --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/companies.txt @@ -0,0 +1,3 @@ +company_id,company_name,company_address,company_url,company_mail,company_phone +1,mon agence,,http://kisio.org,, +2,my agency,,http://kisio.org,,0123456789 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/contributors.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/contributors.txt new file mode 100644 index 000000000..bfa64e0e1 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/contributors.txt @@ -0,0 +1,2 @@ +contributor_id,contributor_name,contributor_license,contributor_website +default_contributor,Default contributor,Unknown license, diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/datasets.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/datasets.txt new file mode 100644 index 000000000..f262db430 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/datasets.txt @@ -0,0 +1,2 @@ +dataset_id,contributor_id,dataset_start_date,dataset_end_date,dataset_type,dataset_extrapolation,dataset_desc,dataset_system +default_dataset,default_contributor,20180101,20180106,,0,, diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/feed_infos.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/feed_infos.txt new file mode 100644 index 000000000..67138039d --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/feed_infos.txt @@ -0,0 +1,7 @@ +feed_info_param,feed_info_value +feed_creation_date,20190403 +feed_creation_time,17:19:00 +feed_creation_datetime,2019-04-03T17:19:00+00:00 +feed_end_date,20180106 +feed_start_date,20180101 +ntfs_version,0.11.4 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/lines.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/lines.txt new file mode 100644 index 000000000..9a6bf7907 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/lines.txt @@ -0,0 +1,3 @@ +line_id,line_code,line_name,forward_line_name,backward_line_name,line_color,line_text_color,line_sort_order,network_id,commercial_mode_id,geometry_id,line_opening_time,line_closing_time +route:2,ma route 1,,,,,,,1,Metro,,23:50:00,31:40:00 +route:3,ma route 2,,,,,,,2,Metro,,13:23:00,15:20:00 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/networks.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/networks.txt new file mode 100644 index 000000000..2138f1bb6 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/networks.txt @@ -0,0 +1,3 @@ +network_id,network_name,network_url,network_timezone,network_lang,network_phone,network_address,network_sort_order +1,mon agence,http://kisio.org,Europe/Paris,,,, +2,my agency,http://kisio.org,Europe/Paris,,0123456789,, diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/object_codes.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/object_codes.txt new file mode 100644 index 000000000..175b5a706 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/object_codes.txt @@ -0,0 +1,17 @@ +object_type,object_id,object_system,object_code +stop_area,stoparea:1,source,stoparea:1 +stop_point,stop:11,source,stop:11 +stop_point,stop:22,source,stop:22 +stop_point,stop:31,source,stop:31 +stop_point,stop:32,source,stop:32 +stop_point,stop:33,source,stop:33 +stop_point,stop:51,source,stop:51 +stop_point,stop:52,source,stop:52 +stop_point,stop:53,source,stop:53 +stop_point,stop:61,source,stop:61 +network,1,source,1 +network,2,source,2 +trip,trip:4,source,trip:4 +trip,trip:5,source,trip:5 +trip,trip:3,source,trip:3 +trip,trip:6,source,trip:6 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/physical_modes.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/physical_modes.txt new file mode 100644 index 000000000..ee4377596 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/physical_modes.txt @@ -0,0 +1,5 @@ +physical_mode_id,physical_mode_name,co2_emission +Metro,Metro,3.0 +Bike,Bike,0.0 +BikeSharingService,BikeSharingService,0.0 +Car,Car,184.0 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/routes.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/routes.txt new file mode 100644 index 000000000..58a7ed07f --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/routes.txt @@ -0,0 +1,3 @@ +route_id,route_name,direction_type,line_id,geometry_id,destination_id +route:2,ma route 1,forward,route:2,,stoparea:1 +route:3,ma route 2,forward,route:3,,stoparea:1 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/stop_times.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/stop_times.txt new file mode 100644 index 000000000..1855f7982 --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/stop_times.txt @@ -0,0 +1,12 @@ +stop_id,trip_id,stop_sequence,arrival_time,departure_time,boarding_duration,alighting_duration,pickup_type,drop_off_type,datetime_estimated,local_zone_id,stop_headsign,stop_time_id,stop_time_precision +stop:11,trip:4,0,07:23:00,07:23:00,0,0,2,1,0,,,,0 +stop:22,trip:4,1,07:32:00,07:32:00,0,0,2,0,0,,,,0 +stop:33,trip:4,2,07:40:00,07:42:00,0,0,1,0,0,,,,0 +stop:51,trip:5,0,13:23:00,13:23:00,0,0,2,1,0,,,,0 +stop:52,trip:5,1,14:10:00,14:10:00,0,0,2,0,0,,,,0 +stop:53,trip:5,2,14:40:00,14:40:00,0,0,1,2,0,,,,0 +stop:31,trip:3,0,23:50:00,23:50:00,0,0,0,1,0,,,,0 +stop:32,trip:3,1,24:03:00,24:05:00,0,0,0,0,0,,,,0 +stop:33,trip:3,2,24:10:00,24:15:00,0,0,1,0,0,,,,0 +stop:61,trip:6,0,14:40:00,14:40:00,0,0,2,1,0,,,,0 +stop:61,trip:6,1,15:20:00,15:20:00,0,0,1,0,0,,,,0 diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/stops.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/stops.txt new file mode 100644 index 000000000..9783258df --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/stops.txt @@ -0,0 +1,11 @@ +stop_id,stop_name,stop_code,visible,fare_zone_id,stop_lon,stop_lat,location_type,parent_station,stop_timezone,geometry_id,equipment_id,level_id,platform_code +stop:11,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,, +stop:22,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,, +stop:31,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,, +stop:32,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,, +stop:33,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,, +stop:51,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,, +stop:52,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,, +stop:53,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,, +stop:61,pouet,,1,,2.372987,48.844746,0,stoparea:1,,,,, +stoparea:1,plop,,1,,2.372987,48.844746,1,,,,,, diff --git a/tests/fixtures/gtfs2ntfs/routes_comments/output/trips.txt b/tests/fixtures/gtfs2ntfs/routes_comments/output/trips.txt new file mode 100644 index 000000000..2a8a830fb --- /dev/null +++ b/tests/fixtures/gtfs2ntfs/routes_comments/output/trips.txt @@ -0,0 +1,5 @@ +trip_id,route_id,physical_mode_id,dataset_id,service_id,trip_headsign,trip_short_name,block_id,company_id,trip_property_id,geometry_id,journey_pattern_id +trip:4,route:2,Metro,default_dataset,service:1,pouet,,,1,,, +trip:5,route:3,Metro,default_dataset,service:2,pouet,,,2,,, +trip:3,route:2,Metro,default_dataset,service:1,pouet,,,1,,, +trip:6,route:3,Metro,default_dataset,service:2,pouet,,,2,,, diff --git a/tests/gtfs2ntfs.rs b/tests/gtfs2ntfs.rs index 7e112294a..fbdb05a12 100644 --- a/tests/gtfs2ntfs.rs +++ b/tests/gtfs2ntfs.rs @@ -179,3 +179,17 @@ fn test_minimal_gtfs_frequencies_with_odt_comment() { ); }); } + +#[test] +fn test_minimal_gtfs_with_routes_comments() { + test_in_tmp_dir(|path| { + let input_dir = "./tests/fixtures/gtfs2ntfs/routes_comments/input"; + let model = gtfs::read_from_path(input_dir, gtfs::Configuration::default()).unwrap(); + ntfs::write(&model, path, get_test_datetime()).unwrap(); + compare_output_dir_with_expected( + &path, + None, + "./tests/fixtures/gtfs2ntfs/routes_comments/output", + ); + }); +} From d531acc07aa9cceaf3c0ae04a298ab82d6c04a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tristram=20Gr=C3=A4bener?= Date: Wed, 27 Jan 2021 14:41:19 +0100 Subject: [PATCH 2/3] gtfs2ntfs: wee simplifaction of extracting comments from stops --- src/gtfs/read.rs | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/src/gtfs/read.rs b/src/gtfs/read.rs index 33c93aaf2..dbb41be48 100644 --- a/src/gtfs/read.rs +++ b/src/gtfs/read.rs @@ -611,24 +611,14 @@ where Ok((networks, companies)) } -fn manage_comment_from_stop( - comments: &mut CollectionWithId, - stop: &Stop, -) -> CommentLinksT { - let mut comment_links: CommentLinksT = CommentLinksT::default(); - if let Some(desc) = &stop.desc { - let comment_id = "stop:".to_string() + &stop.id; - let comment = objects::Comment { - id: comment_id.clone(), - comment_type: objects::CommentType::Information, - label: None, - name: desc.to_string(), - url: None, - }; - comments.push(comment).unwrap(); - comment_links.insert(comment_id); - } - comment_links +fn get_stop_comment(stop: &Stop) -> Option { + stop.desc.as_ref().map(|desc| objects::Comment { + id: "stop:".to_string() + &stop.id, + comment_type: objects::CommentType::Information, + label: None, + name: desc.to_string(), + url: None, + }) } fn get_route_comment(route: &Route) -> Option { @@ -764,7 +754,13 @@ where let mut stop_points = vec![]; let mut stop_locations = vec![]; for stop in gtfs_stops { - let comment_links = manage_comment_from_stop(comments, &stop); + let mut comment_links = CommentLinksT::default(); + if let Some(comment) = get_stop_comment(&stop) { + comment_links.insert(comment.id.to_string()); + comments + .push(comment) + .expect("Duplicated comment id that shouldn’t be possible"); + } let equipment_id = get_equipment_id_and_populate_equipments(equipments, &stop); match stop.location_type { StopLocationType::StopPoint => { From a62c6e0b4c2858e779bd6b5216880532acb994e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tristram=20Gr=C3=A4bener?= Date: Wed, 27 Jan 2021 15:04:33 +0100 Subject: [PATCH 3/3] gtfs2ntfs: rename get_[object]_comment to generate_[object]_comment --- src/gtfs/read.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gtfs/read.rs b/src/gtfs/read.rs index dbb41be48..f3cc65a55 100644 --- a/src/gtfs/read.rs +++ b/src/gtfs/read.rs @@ -611,7 +611,7 @@ where Ok((networks, companies)) } -fn get_stop_comment(stop: &Stop) -> Option { +fn generate_stop_comment(stop: &Stop) -> Option { stop.desc.as_ref().map(|desc| objects::Comment { id: "stop:".to_string() + &stop.id, comment_type: objects::CommentType::Information, @@ -621,7 +621,7 @@ fn get_stop_comment(stop: &Stop) -> Option { }) } -fn get_route_comment(route: &Route) -> Option { +fn generate_route_comment(route: &Route) -> Option { route.desc.as_ref().map(|desc| objects::Comment { id: "route:".to_string() + &route.id, comment_type: objects::CommentType::Information, @@ -755,7 +755,7 @@ where let mut stop_locations = vec![]; for stop in gtfs_stops { let mut comment_links = CommentLinksT::default(); - if let Some(comment) = get_stop_comment(&stop) { + if let Some(comment) = generate_stop_comment(&stop) { comment_links.insert(comment.id.to_string()); comments .push(comment) @@ -1191,7 +1191,7 @@ where collections.routes = CollectionWithId::new(routes)?; gtfs_routes_collection.iter().for_each(|(_id, gtfs_route)| { - if let Some(comment) = get_route_comment(>fs_route) { + if let Some(comment) = generate_route_comment(>fs_route) { if let Some(mut route) = collections.routes.get_mut(>fs_route.id) { route.comment_links.insert(comment.id.to_string()); collections