KDE PIM/KPublicTransport/Endpoint Configuration

From KDE Community Wiki
Revision as of 14:11, 30 April 2020 by Vkrause (talk | contribs)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Public Transport Provider Endpoint Configurations

Can we share public transport provider API endpoint configurations with a wider set of users, beyond KDE? What would be a sensible subset of information?

Motivation

  • All existing projects use subsets of available endpoints, so most if not all could benefit from more endpoint configurations becoming available with little extra effort for them.
  • Maintaining endpoint configurations is work, some parameters require elaborate research to obtain.

Existing Implementations

Gnome Maps

Code: https://github.com/GNOME/gnome-maps/tree/mainline/src/transitplugins
Format: JSON - see https://gis.gnome.org/services/v1/service.json
Backends: OTP (via REST), custom (OpenDataCH, Resrobot)
Additional information:

  • Attribution
  • Geographic bounding box
  • Description
  • Priority

hafas-client

Code: https://github.com/public-transport/hafas-client
Format: JS, partly JSON-ish - see https://github.com/public-transport/hafas-client/tree/master/p
Backends: Hafas
Additional information:

  • Product mapping
  • Locale
  • Timezone

KPublicTransport

Code: https://phabricator.kde.org/source/kpublictransport/
Format: JSON - https://phabricator.kde.org/source/kpublictransport/browse/master/src/lib/networks/
Backends: Navitia, OTP (3 variants), Hafas (2 variants), EFA (2 variants)
Additional information:

  • Hafas product mapping
  • Location identifier normalization/mapping to UIC/IBNR station codes
  • Localized names/descriptions
  • Supported languages
  • Static timezones for backends not providing timezone information
  • Attribution
  • Geographic bounding box
  • Primary country/region ISO 3166-1/2 codes as part of the file name.

marudor.de

Code: https://github.com/marudor/BahnhofsAbfahrten/tree/master/src/server/HAFAS
Format: TypeScript, but largely declarative/JSON-ish: https://github.com/marudor/BahnhofsAbfahrten/blob/master/src/server/HAFAS/profiles.ts
Backends: Hafas
Additional information:

oeffisear.ch

Code: https://git.ctu.cx/ctucx/oeffisearch
Format: N/A (hardcoded)
Backends: Hafas

public-transport-enabler

Code: https://gitlab.com/oeffi/public-transport-enabler/
Format: Java code, API keys not included (part of Öffi/Transportr) - see https://gitlab.com/oeffi/public-transport-enabler/-/tree/master/src/de/schildbach/pte
Backends: Navitia, Hafas (2 variants), EFA (2 variants), custom (VRS, and one other one IIRC)
Additional information:

  • Hafas product mapping, line and product name normalization (in code)

pyhafas

Code: https://github.com/n0emis/pyhafas
Format: Python code, some JSON elements - see https://github.com/n0emis/pyhafas/tree/master/pyhafas/profile
Backends: Hafas

smurfy/fahrplan

Code: https://github.com/smurfy/fahrplan/
Format: in code? - see https://github.com/smurfy/fahrplan/tree/master/src/parser
Backends: Hafas (2 variants), EFA

TripKit

Code: https://github.com/alexander-albers/tripkit
Format: Swift Code - see https://github.com/alexander-albers/tripkit/tree/master/TripKit
Note: Swift port of public-transport-enabler, with matching backend/configuration approach.