amtrak 3.0.2 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/amtrak/train_fetcher.rb +1 -0
- data/lib/amtrak/train_parser.rb +14 -4
- data/lib/amtrak/version.rb +1 -1
- data/spec/amtrak/train_parser_spec.rb +16 -0
- data/spec/fixtures/json/_get.json +22 -22
- data/spec/fixtures/json/_parse.json +22 -22
- data/spec/fixtures/json/_parse_canceled.json +236 -0
- data/spec/fixtures/json/canceled.json +1126 -0
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 777d9e8f065d34422f498f3bbaaa471fc309dba1
|
4
|
+
data.tar.gz: 29935d5c7a3f659b2901af24b27253e39372aa2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5292b610e3c8e51d8ba1deb5c472084bf2f7edc29fef4fc2bd758a9d1d4a505c7dd614337f04871a144edc55407921956e2d291adb7b822ec63e327f9fca5d3c
|
7
|
+
data.tar.gz: a271a5af2c8333d491bf0517f4541d5341e2b76b0c71ce3dc5d1e2e2ef58b0e22d281f06e521c453be91413097df517611dd4a7c9ca04e458747f10c3aeeff1a
|
data/lib/amtrak/train_fetcher.rb
CHANGED
data/lib/amtrak/train_parser.rb
CHANGED
@@ -35,28 +35,38 @@ module Amtrak
|
|
35
35
|
date, scheduled_time = segment['originScheduledDepartureDateTime'].split('T')
|
36
36
|
estimated_depart = segment['originEstimatedDepartureDateTime']
|
37
37
|
_, estimated_time = estimated_depart.split('T') if estimated_depart
|
38
|
+
status = segment['originStatusComment']
|
38
39
|
|
39
40
|
{
|
40
41
|
date: date,
|
41
42
|
scheduled_time: format_time(scheduled_time),
|
42
|
-
estimated_time: format_time(estimated_time)
|
43
|
+
estimated_time: or_cancelled(format_time(estimated_time), status)
|
43
44
|
}
|
44
45
|
end
|
45
46
|
|
46
47
|
def find_arrival_times(segment)
|
47
|
-
date, scheduled_time = segment['
|
48
|
-
estimated_arrival = segment['
|
48
|
+
date, scheduled_time = segment['destinationScheduledArrivalDateTime'].split('T')
|
49
|
+
estimated_arrival = segment['destinationEstimatedArrivalDateTime']
|
49
50
|
_, estimated_time = estimated_arrival.split('T') if estimated_arrival
|
51
|
+
status = segment['destinationStatusComment']
|
50
52
|
|
51
53
|
{
|
52
54
|
date: date,
|
53
55
|
scheduled_time: format_time(scheduled_time),
|
54
|
-
estimated_time: format_time(estimated_time)
|
56
|
+
estimated_time: or_cancelled(format_time(estimated_time), status)
|
55
57
|
}
|
56
58
|
end
|
57
59
|
|
58
60
|
private
|
59
61
|
|
62
|
+
def or_cancelled(time, status)
|
63
|
+
if status == 'Canceled'
|
64
|
+
'Canceled'
|
65
|
+
else
|
66
|
+
time
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
60
70
|
def format_time(time)
|
61
71
|
return unless time
|
62
72
|
|
data/lib/amtrak/version.rb
CHANGED
@@ -29,6 +29,22 @@ describe Amtrak::TrainParser do
|
|
29
29
|
expect(output).to eq(expected)
|
30
30
|
end
|
31
31
|
|
32
|
+
context 'when the train status is canceled' do
|
33
|
+
let(:document) do
|
34
|
+
File.read(File.join('spec', 'fixtures', 'json', 'canceled.json'))
|
35
|
+
end
|
36
|
+
let(:expected) do
|
37
|
+
JSON.parse(
|
38
|
+
File.read(File.join('spec', 'fixtures', 'json', '_parse_canceled.json')),
|
39
|
+
symbolize_names: true
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'puts canceled in the time field' do
|
44
|
+
expect(output).to eq(expected)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
32
48
|
context 'when the train status is unavailable' do
|
33
49
|
let(:document) do
|
34
50
|
File.read(File.join('spec', 'fixtures', 'json', 'unavailable.json'))
|
@@ -7,9 +7,9 @@
|
|
7
7
|
"estimated_time": "11:29 pm"
|
8
8
|
},
|
9
9
|
"arrival": {
|
10
|
-
"date": "2017-10-
|
11
|
-
"scheduled_time": "
|
12
|
-
"estimated_time": "11
|
10
|
+
"date": "2017-10-12",
|
11
|
+
"scheduled_time": "12:14 am",
|
12
|
+
"estimated_time": "12:11 am"
|
13
13
|
}
|
14
14
|
},
|
15
15
|
{
|
@@ -21,8 +21,8 @@
|
|
21
21
|
},
|
22
22
|
"arrival": {
|
23
23
|
"date": "2017-10-12",
|
24
|
-
"scheduled_time": "
|
25
|
-
"estimated_time": "
|
24
|
+
"scheduled_time": " 7:53 am",
|
25
|
+
"estimated_time": " 7:38 am"
|
26
26
|
}
|
27
27
|
},
|
28
28
|
{
|
@@ -34,7 +34,7 @@
|
|
34
34
|
},
|
35
35
|
"arrival": {
|
36
36
|
"date": "2017-10-12",
|
37
|
-
"scheduled_time": " 9:
|
37
|
+
"scheduled_time": " 9:56 am",
|
38
38
|
"estimated_time": null
|
39
39
|
}
|
40
40
|
},
|
@@ -47,7 +47,7 @@
|
|
47
47
|
},
|
48
48
|
"arrival": {
|
49
49
|
"date": "2017-10-12",
|
50
|
-
"scheduled_time": "10:
|
50
|
+
"scheduled_time": "10:59 am",
|
51
51
|
"estimated_time": null
|
52
52
|
}
|
53
53
|
},
|
@@ -60,7 +60,7 @@
|
|
60
60
|
},
|
61
61
|
"arrival": {
|
62
62
|
"date": "2017-10-12",
|
63
|
-
"scheduled_time": "
|
63
|
+
"scheduled_time": "11:34 am",
|
64
64
|
"estimated_time": null
|
65
65
|
}
|
66
66
|
},
|
@@ -73,7 +73,7 @@
|
|
73
73
|
},
|
74
74
|
"arrival": {
|
75
75
|
"date": "2017-10-12",
|
76
|
-
"scheduled_time": "
|
76
|
+
"scheduled_time": "12:39 pm",
|
77
77
|
"estimated_time": null
|
78
78
|
}
|
79
79
|
},
|
@@ -86,7 +86,7 @@
|
|
86
86
|
},
|
87
87
|
"arrival": {
|
88
88
|
"date": "2017-10-12",
|
89
|
-
"scheduled_time": "
|
89
|
+
"scheduled_time": " 1:39 pm",
|
90
90
|
"estimated_time": null
|
91
91
|
}
|
92
92
|
},
|
@@ -99,7 +99,7 @@
|
|
99
99
|
},
|
100
100
|
"arrival": {
|
101
101
|
"date": "2017-10-12",
|
102
|
-
"scheduled_time": "
|
102
|
+
"scheduled_time": " 3:09 pm",
|
103
103
|
"estimated_time": null
|
104
104
|
}
|
105
105
|
},
|
@@ -112,7 +112,7 @@
|
|
112
112
|
},
|
113
113
|
"arrival": {
|
114
114
|
"date": "2017-10-12",
|
115
|
-
"scheduled_time": "
|
115
|
+
"scheduled_time": " 3:42 pm",
|
116
116
|
"estimated_time": null
|
117
117
|
}
|
118
118
|
},
|
@@ -125,7 +125,7 @@
|
|
125
125
|
},
|
126
126
|
"arrival": {
|
127
127
|
"date": "2017-10-12",
|
128
|
-
"scheduled_time": "
|
128
|
+
"scheduled_time": " 4:28 pm",
|
129
129
|
"estimated_time": null
|
130
130
|
}
|
131
131
|
},
|
@@ -138,7 +138,7 @@
|
|
138
138
|
},
|
139
139
|
"arrival": {
|
140
140
|
"date": "2017-10-12",
|
141
|
-
"scheduled_time": " 4:
|
141
|
+
"scheduled_time": " 4:45 pm",
|
142
142
|
"estimated_time": null
|
143
143
|
}
|
144
144
|
},
|
@@ -151,7 +151,7 @@
|
|
151
151
|
},
|
152
152
|
"arrival": {
|
153
153
|
"date": "2017-10-12",
|
154
|
-
"scheduled_time": "
|
154
|
+
"scheduled_time": " 6:23 pm",
|
155
155
|
"estimated_time": null
|
156
156
|
}
|
157
157
|
},
|
@@ -164,7 +164,7 @@
|
|
164
164
|
},
|
165
165
|
"arrival": {
|
166
166
|
"date": "2017-10-12",
|
167
|
-
"scheduled_time": "
|
167
|
+
"scheduled_time": " 6:39 pm",
|
168
168
|
"estimated_time": null
|
169
169
|
}
|
170
170
|
},
|
@@ -177,7 +177,7 @@
|
|
177
177
|
},
|
178
178
|
"arrival": {
|
179
179
|
"date": "2017-10-12",
|
180
|
-
"scheduled_time": "
|
180
|
+
"scheduled_time": " 7:35 pm",
|
181
181
|
"estimated_time": null
|
182
182
|
}
|
183
183
|
},
|
@@ -190,7 +190,7 @@
|
|
190
190
|
},
|
191
191
|
"arrival": {
|
192
192
|
"date": "2017-10-12",
|
193
|
-
"scheduled_time": "
|
193
|
+
"scheduled_time": " 8:06 pm",
|
194
194
|
"estimated_time": null
|
195
195
|
}
|
196
196
|
},
|
@@ -203,7 +203,7 @@
|
|
203
203
|
},
|
204
204
|
"arrival": {
|
205
205
|
"date": "2017-10-12",
|
206
|
-
"scheduled_time": "
|
206
|
+
"scheduled_time": " 8:40 pm",
|
207
207
|
"estimated_time": null
|
208
208
|
}
|
209
209
|
},
|
@@ -216,7 +216,7 @@
|
|
216
216
|
},
|
217
217
|
"arrival": {
|
218
218
|
"date": "2017-10-12",
|
219
|
-
"scheduled_time": "
|
219
|
+
"scheduled_time": " 9:38 pm",
|
220
220
|
"estimated_time": null
|
221
221
|
}
|
222
222
|
},
|
@@ -229,7 +229,7 @@
|
|
229
229
|
},
|
230
230
|
"arrival": {
|
231
231
|
"date": "2017-10-12",
|
232
|
-
"scheduled_time": "
|
232
|
+
"scheduled_time": "10:02 pm",
|
233
233
|
"estimated_time": null
|
234
234
|
}
|
235
235
|
},
|
@@ -242,7 +242,7 @@
|
|
242
242
|
},
|
243
243
|
"arrival": {
|
244
244
|
"date": "2017-10-12",
|
245
|
-
"scheduled_time": "10:
|
245
|
+
"scheduled_time": "10:44 pm",
|
246
246
|
"estimated_time": null
|
247
247
|
}
|
248
248
|
}
|
@@ -7,9 +7,9 @@
|
|
7
7
|
"estimated_time": "11:29 pm"
|
8
8
|
},
|
9
9
|
"arrival": {
|
10
|
-
"date": "2017-10-
|
11
|
-
"scheduled_time": "
|
12
|
-
"estimated_time": "11
|
10
|
+
"date": "2017-10-12",
|
11
|
+
"scheduled_time": "12:14 am",
|
12
|
+
"estimated_time": "12:11 am"
|
13
13
|
}
|
14
14
|
},
|
15
15
|
{
|
@@ -21,8 +21,8 @@
|
|
21
21
|
},
|
22
22
|
"arrival": {
|
23
23
|
"date": "2017-10-12",
|
24
|
-
"scheduled_time": "
|
25
|
-
"estimated_time": "
|
24
|
+
"scheduled_time": " 7:53 am",
|
25
|
+
"estimated_time": " 7:38 am"
|
26
26
|
}
|
27
27
|
},
|
28
28
|
{
|
@@ -34,7 +34,7 @@
|
|
34
34
|
},
|
35
35
|
"arrival": {
|
36
36
|
"date": "2017-10-12",
|
37
|
-
"scheduled_time": " 9:
|
37
|
+
"scheduled_time": " 9:56 am",
|
38
38
|
"estimated_time": null
|
39
39
|
}
|
40
40
|
},
|
@@ -47,7 +47,7 @@
|
|
47
47
|
},
|
48
48
|
"arrival": {
|
49
49
|
"date": "2017-10-12",
|
50
|
-
"scheduled_time": "10:
|
50
|
+
"scheduled_time": "10:59 am",
|
51
51
|
"estimated_time": null
|
52
52
|
}
|
53
53
|
},
|
@@ -60,7 +60,7 @@
|
|
60
60
|
},
|
61
61
|
"arrival": {
|
62
62
|
"date": "2017-10-12",
|
63
|
-
"scheduled_time": "
|
63
|
+
"scheduled_time": "11:34 am",
|
64
64
|
"estimated_time": null
|
65
65
|
}
|
66
66
|
},
|
@@ -73,7 +73,7 @@
|
|
73
73
|
},
|
74
74
|
"arrival": {
|
75
75
|
"date": "2017-10-12",
|
76
|
-
"scheduled_time": "
|
76
|
+
"scheduled_time": "12:39 pm",
|
77
77
|
"estimated_time": null
|
78
78
|
}
|
79
79
|
},
|
@@ -86,7 +86,7 @@
|
|
86
86
|
},
|
87
87
|
"arrival": {
|
88
88
|
"date": "2017-10-12",
|
89
|
-
"scheduled_time": "
|
89
|
+
"scheduled_time": " 1:39 pm",
|
90
90
|
"estimated_time": null
|
91
91
|
}
|
92
92
|
},
|
@@ -99,7 +99,7 @@
|
|
99
99
|
},
|
100
100
|
"arrival": {
|
101
101
|
"date": "2017-10-12",
|
102
|
-
"scheduled_time": "
|
102
|
+
"scheduled_time": " 3:09 pm",
|
103
103
|
"estimated_time": null
|
104
104
|
}
|
105
105
|
},
|
@@ -112,7 +112,7 @@
|
|
112
112
|
},
|
113
113
|
"arrival": {
|
114
114
|
"date": "2017-10-12",
|
115
|
-
"scheduled_time": "
|
115
|
+
"scheduled_time": " 3:42 pm",
|
116
116
|
"estimated_time": null
|
117
117
|
}
|
118
118
|
},
|
@@ -125,7 +125,7 @@
|
|
125
125
|
},
|
126
126
|
"arrival": {
|
127
127
|
"date": "2017-10-12",
|
128
|
-
"scheduled_time": "
|
128
|
+
"scheduled_time": " 4:28 pm",
|
129
129
|
"estimated_time": null
|
130
130
|
}
|
131
131
|
},
|
@@ -138,7 +138,7 @@
|
|
138
138
|
},
|
139
139
|
"arrival": {
|
140
140
|
"date": "2017-10-12",
|
141
|
-
"scheduled_time": " 4:
|
141
|
+
"scheduled_time": " 4:45 pm",
|
142
142
|
"estimated_time": null
|
143
143
|
}
|
144
144
|
},
|
@@ -151,7 +151,7 @@
|
|
151
151
|
},
|
152
152
|
"arrival": {
|
153
153
|
"date": "2017-10-12",
|
154
|
-
"scheduled_time": "
|
154
|
+
"scheduled_time": " 6:23 pm",
|
155
155
|
"estimated_time": null
|
156
156
|
}
|
157
157
|
},
|
@@ -164,7 +164,7 @@
|
|
164
164
|
},
|
165
165
|
"arrival": {
|
166
166
|
"date": "2017-10-12",
|
167
|
-
"scheduled_time": "
|
167
|
+
"scheduled_time": " 6:39 pm",
|
168
168
|
"estimated_time": null
|
169
169
|
}
|
170
170
|
},
|
@@ -177,7 +177,7 @@
|
|
177
177
|
},
|
178
178
|
"arrival": {
|
179
179
|
"date": "2017-10-12",
|
180
|
-
"scheduled_time": "
|
180
|
+
"scheduled_time": " 7:35 pm",
|
181
181
|
"estimated_time": null
|
182
182
|
}
|
183
183
|
},
|
@@ -190,7 +190,7 @@
|
|
190
190
|
},
|
191
191
|
"arrival": {
|
192
192
|
"date": "2017-10-12",
|
193
|
-
"scheduled_time": "
|
193
|
+
"scheduled_time": " 8:06 pm",
|
194
194
|
"estimated_time": null
|
195
195
|
}
|
196
196
|
},
|
@@ -203,7 +203,7 @@
|
|
203
203
|
},
|
204
204
|
"arrival": {
|
205
205
|
"date": "2017-10-12",
|
206
|
-
"scheduled_time": "
|
206
|
+
"scheduled_time": " 8:40 pm",
|
207
207
|
"estimated_time": null
|
208
208
|
}
|
209
209
|
},
|
@@ -216,7 +216,7 @@
|
|
216
216
|
},
|
217
217
|
"arrival": {
|
218
218
|
"date": "2017-10-12",
|
219
|
-
"scheduled_time": "
|
219
|
+
"scheduled_time": " 9:38 pm",
|
220
220
|
"estimated_time": null
|
221
221
|
}
|
222
222
|
},
|
@@ -229,7 +229,7 @@
|
|
229
229
|
},
|
230
230
|
"arrival": {
|
231
231
|
"date": "2017-10-12",
|
232
|
-
"scheduled_time": "
|
232
|
+
"scheduled_time": "10:02 pm",
|
233
233
|
"estimated_time": null
|
234
234
|
}
|
235
235
|
},
|
@@ -242,7 +242,7 @@
|
|
242
242
|
},
|
243
243
|
"arrival": {
|
244
244
|
"date": "2017-10-12",
|
245
|
-
"scheduled_time": "10:
|
245
|
+
"scheduled_time": "10:44 pm",
|
246
246
|
"estimated_time": null
|
247
247
|
}
|
248
248
|
}
|
@@ -0,0 +1,236 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"number": 2153,
|
4
|
+
"departure": {
|
5
|
+
"date": "2018-03-21",
|
6
|
+
"scheduled_time": " 6:06 am",
|
7
|
+
"estimated_time": null
|
8
|
+
},
|
9
|
+
"arrival": {
|
10
|
+
"date": "2018-03-21",
|
11
|
+
"scheduled_time": " 6:36 am",
|
12
|
+
"estimated_time": null
|
13
|
+
}
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"number": 95,
|
17
|
+
"departure": {
|
18
|
+
"date": "2018-03-21",
|
19
|
+
"scheduled_time": " 6:10 am",
|
20
|
+
"estimated_time": null
|
21
|
+
},
|
22
|
+
"arrival": {
|
23
|
+
"date": "2018-03-21",
|
24
|
+
"scheduled_time": " 6:43 am",
|
25
|
+
"estimated_time": null
|
26
|
+
}
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"number": 2155,
|
30
|
+
"departure": {
|
31
|
+
"date": "2018-03-21",
|
32
|
+
"scheduled_time": " 7:20 am",
|
33
|
+
"estimated_time": "Canceled"
|
34
|
+
},
|
35
|
+
"arrival": {
|
36
|
+
"date": "2018-03-21",
|
37
|
+
"scheduled_time": " 7:49 am",
|
38
|
+
"estimated_time": "Canceled"
|
39
|
+
}
|
40
|
+
},
|
41
|
+
{
|
42
|
+
"number": 171,
|
43
|
+
"departure": {
|
44
|
+
"date": "2018-03-21",
|
45
|
+
"scheduled_time": " 8:16 am",
|
46
|
+
"estimated_time": " 8:16 am"
|
47
|
+
},
|
48
|
+
"arrival": {
|
49
|
+
"date": "2018-03-21",
|
50
|
+
"scheduled_time": " 8:49 am",
|
51
|
+
"estimated_time": " 8:49 am"
|
52
|
+
}
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"number": 2159,
|
56
|
+
"departure": {
|
57
|
+
"date": "2018-03-21",
|
58
|
+
"scheduled_time": " 9:05 am",
|
59
|
+
"estimated_time": "Canceled"
|
60
|
+
},
|
61
|
+
"arrival": {
|
62
|
+
"date": "2018-03-21",
|
63
|
+
"scheduled_time": " 9:34 am",
|
64
|
+
"estimated_time": "Canceled"
|
65
|
+
}
|
66
|
+
},
|
67
|
+
{
|
68
|
+
"number": 93,
|
69
|
+
"departure": {
|
70
|
+
"date": "2018-03-21",
|
71
|
+
"scheduled_time": " 9:32 am",
|
72
|
+
"estimated_time": "Canceled"
|
73
|
+
},
|
74
|
+
"arrival": {
|
75
|
+
"date": "2018-03-21",
|
76
|
+
"scheduled_time": "10:07 am",
|
77
|
+
"estimated_time": "Canceled"
|
78
|
+
}
|
79
|
+
},
|
80
|
+
{
|
81
|
+
"number": 2163,
|
82
|
+
"departure": {
|
83
|
+
"date": "2018-03-21",
|
84
|
+
"scheduled_time": "11:06 am",
|
85
|
+
"estimated_time": "Canceled"
|
86
|
+
},
|
87
|
+
"arrival": {
|
88
|
+
"date": "2018-03-21",
|
89
|
+
"scheduled_time": "11:39 am",
|
90
|
+
"estimated_time": "Canceled"
|
91
|
+
}
|
92
|
+
},
|
93
|
+
{
|
94
|
+
"number": 173,
|
95
|
+
"departure": {
|
96
|
+
"date": "2018-03-21",
|
97
|
+
"scheduled_time": "11:11 am",
|
98
|
+
"estimated_time": "Canceled"
|
99
|
+
},
|
100
|
+
"arrival": {
|
101
|
+
"date": "2018-03-21",
|
102
|
+
"scheduled_time": "12:00 pm",
|
103
|
+
"estimated_time": "Canceled"
|
104
|
+
}
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"number": 2165,
|
108
|
+
"departure": {
|
109
|
+
"date": "2018-03-21",
|
110
|
+
"scheduled_time": "12:11 pm",
|
111
|
+
"estimated_time": "Canceled"
|
112
|
+
},
|
113
|
+
"arrival": {
|
114
|
+
"date": "2018-03-21",
|
115
|
+
"scheduled_time": "12:40 pm",
|
116
|
+
"estimated_time": "Canceled"
|
117
|
+
}
|
118
|
+
},
|
119
|
+
{
|
120
|
+
"number": 2167,
|
121
|
+
"departure": {
|
122
|
+
"date": "2018-03-21",
|
123
|
+
"scheduled_time": " 1:06 pm",
|
124
|
+
"estimated_time": "Canceled"
|
125
|
+
},
|
126
|
+
"arrival": {
|
127
|
+
"date": "2018-03-21",
|
128
|
+
"scheduled_time": " 1:34 pm",
|
129
|
+
"estimated_time": "Canceled"
|
130
|
+
}
|
131
|
+
},
|
132
|
+
{
|
133
|
+
"number": 137,
|
134
|
+
"departure": {
|
135
|
+
"date": "2018-03-21",
|
136
|
+
"scheduled_time": " 1:36 pm",
|
137
|
+
"estimated_time": "Canceled"
|
138
|
+
},
|
139
|
+
"arrival": {
|
140
|
+
"date": "2018-03-21",
|
141
|
+
"scheduled_time": " 2:10 pm",
|
142
|
+
"estimated_time": "Canceled"
|
143
|
+
}
|
144
|
+
},
|
145
|
+
{
|
146
|
+
"number": 2171,
|
147
|
+
"departure": {
|
148
|
+
"date": "2018-03-21",
|
149
|
+
"scheduled_time": " 3:11 pm",
|
150
|
+
"estimated_time": "Canceled"
|
151
|
+
},
|
152
|
+
"arrival": {
|
153
|
+
"date": "2018-03-21",
|
154
|
+
"scheduled_time": " 3:42 pm",
|
155
|
+
"estimated_time": "Canceled"
|
156
|
+
}
|
157
|
+
},
|
158
|
+
{
|
159
|
+
"number": 175,
|
160
|
+
"departure": {
|
161
|
+
"date": "2018-03-21",
|
162
|
+
"scheduled_time": " 3:21 pm",
|
163
|
+
"estimated_time": "Canceled"
|
164
|
+
},
|
165
|
+
"arrival": {
|
166
|
+
"date": "2018-03-21",
|
167
|
+
"scheduled_time": " 3:54 pm",
|
168
|
+
"estimated_time": "Canceled"
|
169
|
+
}
|
170
|
+
},
|
171
|
+
{
|
172
|
+
"number": 2173,
|
173
|
+
"departure": {
|
174
|
+
"date": "2018-03-21",
|
175
|
+
"scheduled_time": " 4:16 pm",
|
176
|
+
"estimated_time": "Canceled"
|
177
|
+
},
|
178
|
+
"arrival": {
|
179
|
+
"date": "2018-03-21",
|
180
|
+
"scheduled_time": " 4:46 pm",
|
181
|
+
"estimated_time": "Canceled"
|
182
|
+
}
|
183
|
+
},
|
184
|
+
{
|
185
|
+
"number": 2175,
|
186
|
+
"departure": {
|
187
|
+
"date": "2018-03-21",
|
188
|
+
"scheduled_time": " 5:26 pm",
|
189
|
+
"estimated_time": "Canceled"
|
190
|
+
},
|
191
|
+
"arrival": {
|
192
|
+
"date": "2018-03-21",
|
193
|
+
"scheduled_time": " 5:53 pm",
|
194
|
+
"estimated_time": "Canceled"
|
195
|
+
}
|
196
|
+
},
|
197
|
+
{
|
198
|
+
"number": 177,
|
199
|
+
"departure": {
|
200
|
+
"date": "2018-03-21",
|
201
|
+
"scheduled_time": " 5:40 pm",
|
202
|
+
"estimated_time": "Canceled"
|
203
|
+
},
|
204
|
+
"arrival": {
|
205
|
+
"date": "2018-03-21",
|
206
|
+
"scheduled_time": " 6:14 pm",
|
207
|
+
"estimated_time": "Canceled"
|
208
|
+
}
|
209
|
+
},
|
210
|
+
{
|
211
|
+
"number": 179,
|
212
|
+
"departure": {
|
213
|
+
"date": "2018-03-21",
|
214
|
+
"scheduled_time": " 6:51 pm",
|
215
|
+
"estimated_time": "Canceled"
|
216
|
+
},
|
217
|
+
"arrival": {
|
218
|
+
"date": "2018-03-21",
|
219
|
+
"scheduled_time": " 7:23 pm",
|
220
|
+
"estimated_time": "Canceled"
|
221
|
+
}
|
222
|
+
},
|
223
|
+
{
|
224
|
+
"number": 67,
|
225
|
+
"departure": {
|
226
|
+
"date": "2018-03-21",
|
227
|
+
"scheduled_time": " 9:36 pm",
|
228
|
+
"estimated_time": "Canceled"
|
229
|
+
},
|
230
|
+
"arrival": {
|
231
|
+
"date": "2018-03-21",
|
232
|
+
"scheduled_time": "10:19 pm",
|
233
|
+
"estimated_time": "Canceled"
|
234
|
+
}
|
235
|
+
}
|
236
|
+
]
|