Downloads
Mirrors finalrewind Chaosdorf GitHub
See Also CPAN GitHub Issues Docker Image
efa-m ist ein CLI-Client für EFA-basierte Abfahrtstafeln wie efa.vrr.de. Es zeigt Abfahrten von Bus, Bahn, Fähren u.ä. an an vielen Haltestellen in Deutschland, der Schweiz und Österreich. Eine efa-m-Installation enthält das Perlmodul Travel::Status::DE::EFA, welches in eigene Programme eingebunden werden kann.
efa-m is a commandline client for EFA public transit departure monitors such as efa.vrr.de. It shows all upcoming tram/bus/train/ferry/... departures at a given stop and supports most of Germany, Switzerland and Austria. The provided Travel::Status::DE::EFA module can be used by any Perl program.
Beispielausgabe / Example Output:
resonance ~ > efa-m Essen 'Berliner Platz'
22:20 3 166 E-Burgaltendorf Burgruine
22:20 3 105 Essen Frintroper Höhe
22:20 +1 4 101 Essen Helenenstr.
22:21 2 145 Essen Heisingen Baldeneysee
22:22 2 U11 Essen Messe W.-Süd/Gruga
22:30 4 105 Essen Finefraustr.
22:30 2 U18 Mülheim Hauptbahnhof
22:30 3 106 Essen Germaniaplatz
22:33 1 U11 Gelsenkirchen Buerer Str.
22:34 4 166 Essen Dellwig Bahnhof
22:34 1 145 Essen Erbach
22:35 3 103 Essen Wertstr.
22:35 2 U17 Essen Margarethenhöhe
22:40 3 SB16 Essen Hauptbahnhof
22:40 4 109 Essen Steele S
22:40 3 109 Frohnhausen Breilsort
22:45 4 SB16 BOT ZOB Berliner Platz
22:45 4 103 Essen Hauptbahnhof
22:50 3 105 Essen Frintroper Höhe
22:50 3 166 Hattingen Märkische Str.
22:50 4 101 Essen Helenenstr.
Travel::Status::DE::VRR v3.17
Travel-Status-DE-VRR-3.17.tar.gz (signature)
- New dependency:
URI::Escape - URL-Escape umlauts in name/place parameters sent to EFA backends. This fixes umlaut-related issues in LinzAG and VVO requests.
- EFA: Detect "invalid stop" backend errors.
- EFA(3pm): Remove
efa_encoding, which has been unsupported for a long time already.
Travel::Status::DE::VRR v3.16
Travel-Status-DE-VRR-3.16.tar.gz (signature)
- Add AVV ("AVV Augsburg", not Aachen) service definition
Travel::Status::DE::VRR v3.15
Travel-Status-DE-VRR-3.15.tar.gz (signature)
Trip->polyline: improve handling of trips that pass the same stop multiple times
Travel::Status::DE::VRR v3.14
Travel-Status-DE-VRR-3.14.tar.gz (signature)
- Fix handling of stops with just a single departure
Travel::Status::DE::VRR v3.13
Travel-Status-DE-VRR-3.13.tar.gz (signature)
EFA->new_p: Return $self in case of error so that clients can accessplace_candidatesandname_candidates. This behaviour was already documented, but not implemented.
Travel::Status::DE::VRR v3.12
Travel-Status-DE-VRR-3.12.tar.gz (signature)
Departure->id: Include the scheduled departure time. This fixes cases where the trip details (stopseq) endpoint would randomly return yesterday's details or no usable data at all.- efa-m: Trip detail mode now only accepts trip IDs obtained from v3.12+
Travel::Status::DE::VRR v3.11
Travel-Status-DE-VRR-3.11.tar.gz (signature)
efa-m: Show occupancy in trip detailsTrip->route: Provide occupancy data
Travel::Status::DE::VRR v3.10
Travel-Status-DE-VRR-3.10.tar.gz (signature)
- Stop: Add
is_cancelledaccessor - Add BEG, RVV service definitions
- Breaking change:
$efa->name_candidatesand$efa->place_candidatesnow return lists of Travel::Status::DE::EFA::Stop objects rather than just strings.
Travel::Status::DE::VRR v3.09
Travel-Status-DE-VRR-3.09.tar.gz (signature)
- Trip: Add polyline accessor
Travel::Status::DE::VRR v3.08
Travel-Status-DE-VRR-3.08.tar.gz (signature)
EFA->new_p: Return$efainstance in rejected promise if it was rejected after parsing (e.g. due to ambiguous name/place parameter)
Travel::Status::DE::VRR v3.07
Travel-Status-DE-VRR-3.07.tar.gz (signature)
- Departure: Fix
->idaccessor - Add "Rolph" service definition
Travel::Status::DE::VRR v3.06
Travel-Status-DE-VRR-3.06.tar.gz (signature)
- EFA APIs know two types of stop IDs: numbers and codes. This module now
consistently refers to numeric stop IDs as
id_numand stop ID codes asid_code. - Departure: Rename
->stop_idto->stop_id_num - Stop: Rename
->idto->id_num - Stop: Rename
->stop_idto->id_code - Departure: Add
->id accessor.
Travel::Status::DE::VRR v3.05
Travel-Status-DE-VRR-3.05.tar.gz (signature)
- efa-m: add
--raw-jsonoption - EFA stopFinder: add special handling for #results == 1
Travel::Status::DE::VRR v3.04
Travel-Status-DE-VRR-3.04.tar.gz (signature)
- EFA: Add NWL service definition
Travel::Status::DE::VRR v3.03
Travel-Status-DE-VRR-3.03.tar.gz (signature)
- efa-m: handle undefined platforms
Trip->polyline: passfallback => 1to return beeline between stops if the backend did not provide a polyline.
Travel::Status::DE::VRR v3.02
Travel-Status-DE-VRR-3.02.tar.gz (signature)
- Stop: Add
ar_delay,dep_delay,delay,stop_idaccessos - EFA: Fix
place_candidates - EFA: Add stop and stops functions
- EFA: Add static g
et_servicesmethod - efa-m: Add -
j/ --with-jidoption - efa-m -Oa, -Ob, -Of: Show delays
- EFA, efa-m: Add stopfinder ("?foo") and stop search ("lat:lon") modes
- Add ...::Trip and ...::Info modules
- Info, Stop, Trip: Note that the API of these modules is not yet final and may change between minor versions
Travel::Status::DE::VRR v3.01
Travel-Status-DE-VRR-3.01.tar.gz (signature)
- Fix
Departure->route_interesting - efa-m: Add
--jsonoption
Travel::Status::DE::VRR v3.00
Travel-Status-DE-VRR-3.00.tar.gz (signature)
- Drop
XML::LibXMLdependency - New dependencies:
DateTime::Format::Strptime,JSON - Switch API language from XML to JSON
- Rename
Travel::Status::DE::EFA::ResulttoTravel::Status::DE::EFA::Departure - EFA: Add static
get_service_idsfunction - EFA: Add bwegt backend service
- EFA: Remove
identified_dataaccessor (not supported by JSON backends) - EFA: Remove static
get_efa_urlsfunction; useget_service_idsinstead EFA->new,EFA->new_p: Add optionalcachekey- Result/Departure: Add
hintsaccessor - Result/Departure: Remove
infoaccessor; usehintsinstead - Stop: Add
place,full_nameandoccupancyaccessors - Line: Add
numberaccessor - Stop: Remove
name_sufaccessor; usenameinstead - efa-m: -Oa, -Ob, -Of: show per-stop occupancy, if available
Travel::Status::DE::VRR v2.02
Travel-Status-DE-VRR-2.02.tar.gz (signature)
EFA->new: Deprecateefa_urloption. Useserviceinstead.efa_urlis still supported, just not documented anymore.EFA->new: Request departures in Europe/Berlin by default rather than using the system time zone. Fixes EFA operation on machines using UTC.efa-m: Support "FULL" occupancy; change indicators from_ * !to. o * !
Travel::Status::DE::VRR v2.01
Travel-Status-DE-VRR-2.01.tar.gz (signature)
- efa-m: Deprecate
--efa-urlin favour of--service. It is still supported, just not documented anymore. - EFA: Add
new_pconstructor for asynchronous operation with promises - EFA: Add static
get_servicefunction
Travel::Status::DE::VRR v2.00
Travel-Status-DE-VRR-2.00.tar.gz (signature)
- New dependency: DateTime
- Result: Add
datetime,sched_datetime,rt_datetimeaccessors. - Result: Remove
date,time,sched_date,sched_timeaccessors. Usedatetime->strftime('%H:%M')etc. instead. (BREAKING CHANGE) - Stop: Add arr, dep accessors.
- Stop: Remove
arr_date,arr_time,dep_date,dep_timeaccessors. Usearr->strftime('%d.%m.%Y')etc. instead. (BREAKING CHANGE) - efa-m: Remove
--track-viaoption, its behaviour is now included in--via(BREAKING CHANGE)
Travel::Status::DE::VRR v1.24
Travel-Status-DE-VRR-1.24.tar.gz (signature)
- EFA: Fix
full_routecreating route elements with invalid data - efa-m: Fix
-v/-V(as a consequence of the fix above)
Travel::Status::DE::VRR v1.23
Travel-Status-DE-VRR-1.23.tar.gz (signature)
- efa-m: Do not show free-text messages by default. Use the newly introduced -Om option to show them
- efa-m: Show real-time departure rather than scheduled time + delay
- Result: Add
train_typeandtrain_nameaccessors
Travel::Status::DE::VRR v1.22
Travel-Status-DE-VRR-1.22.tar.gz (signature)
- Do not use now-deprecated smartmatch features
Travel::Status::DE::VRR v1.21
Travel-Status-DE-VRR-1.21.tar.gz (signature)
- Add service VRR3
- Update service URLs for VVO, VRN
- Remove discontinued services SVV, TLEM, VBL, Verbundlinie, VOR
Travel::Status::DE::VRR v1.20
Travel-Status-DE-VRR-1.20.tar.gz (signature)
- efa-m, EFA: Accept "stopID" stop type
- EFA: Add
proximity_search(useProxFootSearch) option
Travel::Status::DE::VRR v1.19
Travel-Status-DE-VRR-1.19.tar.gz (signature)
- Result: Add
->train_noaccessor
Travel::Status::DE::VRR v1.18
Travel-Status-DE-VRR-1.18.tar.gz (signature)
- EFA: "place" is now optional
- Result: Add
->occupancyaccessor - efa-m: The "place" argument is now optional
- efa-m: Show expected vehicle occupancy, if available
Travel::Status::DE::VRR v1.17
Travel-Status-DE-VRR-1.17.tar.gz (signature)
- Add MVV (Münchner Verkehrs- und Tarifverbund) and VAG (Freiburger Verkehrs AG) services
- Fix encoding when using VOR or LinzAG services
Travel::Status::DE::VRR v1.16
Travel-Status-DE-VRR-1.16.tar.gz (signature)
- Use HTTPS for DING, VOR, LinzAG, VGN, VRR, VRR2, VVS, NVBW, KVV and BSVG services
- Update VGN, VVO, VMV and KVV service URLs
- Remove IVB, VVV and VRNdelfi services
- Re-add Verbundlinie service
Travel::Status::DE::VRR v1.15
Travel-Status-DE-VRR-1.15.tar.gz (signature)
- Fix encoding issues caused by recent API changes
Travel::Status::DE::VRR v1.14
Travel-Status-DE-VRR-1.14.tar.gz (signature)
- efa-m: Fix broken encoding in
--listoutput
Travel::Status::DE::VRR v1.13
Travel-Status-DE-VRR-1.13.tar.gz (signature)
- EFA: Add accessors
name_candidatesandplace_candidates - EFA: errstr: in cases of ambiguous input, the name/place
candidates list is no longer encoded in the errstr accessor. Use the
new
name_candidates/place_candidatesaccessors instead
Travel::Status::DE::VRR v1.12
Travel-Status-DE-VRR-1.12.tar.gz (signature)
- EFA: Add static method
get_efa_urls - Line: Add mot and
mot_nameaccessors - Result: Add mot and
mot_nameaccessors - efa-m: Add
-A/--auto-url/--discover-and-printoption - efa-m: Add
-D/--discoveroption - efa-m: Add
--listoption - efa-m: Add
-m/--motoption - efa-m: Add
-s/--serviceoption
Travel::Status::DE::VRR v1.11
Travel-Status-DE-VRR-1.11.tar.gz (signature)
- efa-m: Remove
-Valias for--version - efa-m: Add
-V/--track-viaoption - efa-m: Add
-O/--outputoption with outputtypesroute_after,route_before,fullrouteandroute - efa-m: Always output schedule data when absolute times are requested. As before, delays are indicated by a +xyz mark next to the time
Travel::Status::DE::VRR v1.10
Travel-Status-DE-VRR-1.10.tar.gz (signature)
Result->delay: return undef when no data is available. This allows to distinguish between on-time departures (delay 0) and departures without realtime data (delay undef)EFA->new: Addfull_routesconfig option- EFA: Add
identified_dataaccessor - Result: Add
route_pre,route_postandroute_interestingaccessors - Add
Travel::Status::DE::EFA::Stopmodule - efa-m: Add
-v/--viaoption
Travel::Status::DE::VRR v1.09
Travel-Status-DE-VRR-1.09.tar.gz (signature)
- EFA: Fix crash when
->resultsis called after a network error occured - EFA: Add timeout parameter to constructor (default: 10 seconds)
- efa-m: Add
--timeeoutoption
Travel::Status::DE::VRR v1.08
Travel-Status-DE-VRR-1.08.tar.gz (signature)
- efa-m: Add
-o,--offsetoption - Fix
->platformand->platform_dbaccessors (the EFA API was changed)
Travel::Status::DE::VRR v1.07
Travel-Status-DE-VRR-1.07.tar.gz (signature)
- efa-m: Add previously undocumented -L option to manual
- efa-m: Handle UTF8 in place/stop input
- Travel::Status::DE::EFA: Handle decoded input with non-ASCII characters
Travel::Status::DE::VRR v1.06
Travel-Status-DE-VRR-1.06.tar.gz (signature)
- Add
Travel::Status::DE::EFAmodule, move::Resultand::LinetoTravel::Status::DE::EFA.Travel::Status::DE::VRRnow inherits from::EFA, no API changes were made. Travel::Status::DE::EFAhas a mandatory efa_url parameter to set the entry point to an EFA service
Travel::Status::DE::VRR v1.05
Travel-Status-DE-VRR-1.05.tar.gz (signature)
- Add
-r,--relativeoption to use relative times - Support lines without Operator field (e.g. Aachen / ASEAG)
Travel::Status::DE::VRR v1.04
Travel-Status-DE-VRR-1.04.tar.gz (signature)
- Add
->keyaccessor toTravel::Status::DE::VRR::Line(meaning is unknown) - Add
->is_cancelledaccessor toTravel::Status::DE::VRR::Result Travel::Status::DE::VRR::Result->delaywill no longer return-9999for cancelled departures, check->is_cancelledinstead- Allow
Travel::Status::DE::VRR::LineandTraveL::Status::DE::VRR::Resultto be serialized to JSON (viaTO_JSONmethod)
Travel::Status::DE::VRR v1.03
Travel-Status-DE-VRR-1.03.tar.gz (signature)
- Disable smartmatch warnings on perl ≥ 5.018
Travel::Status::DE::VRR v1.02
Travel-Status-DE-VRR-1.02.tar.gz (signature)
- Patch by Roland Hieber: respect proxy environment variables
Travel::Status::DE::VRR v1.01
Travel-Status-DE-VRR-1.01.tar.gz (signature)
- Properly parse "tram canceled" information (EVAG, maybe also VRR)
Travel::Status::DE::VRR v1.00
Travel-Status-DE-VRR-1.00.tar.gz (signature)
- switch to efa.vrr.de XML interface
- properly decode UTF-8 strings
- Switch from WWW::Mechanize to LWP::UserAgent
- Add ->lines and Travel::Status::DE::VRR::Line describing all lines serving the given stop
Travel::Status::DE::VRR::Result
- Add countdown, date, delay, lineref, platform_db, sched_date, sched_time and type accessors
efa-m
- Add -L / --linelist option
Travel::Status::DE::VRR v0.02
Travel-Status-DE-VRR-0.02.tar.gz (signature)
efa-m
- Add --platform / --line options to filter output
- Align times properly if departure list contains a daychange
- Make --date and --time actually work
Travel::Status::DE::VRR v0.01
Travel-Status-DE-VRR-0.01.tar.gz (signature)
- Initial release