Swiftpack.co - Package - kiliankoe/DVB

🚆DVB

Travis Version License Platform Docs Codecov

This is an unofficial Swift package giving you a few options to query Dresden's public transport system for current bus- and tramstop data.

Want something like this for another language, look no further 🙂

Example

Have a look at the example iOS app.

Installation

DVB is available through Cocoapods, Carthage/Punic and Swift Package Manager, take your pick.

// Cocoapods
pod 'DVB'

// Carthage
github "kiliankoe/DVB"

// Swift Package Manager
.Package(url: "https://github.com/kiliankoe/DVB", majorVersion: 2)

Quick Start

Be sure to check the docs for more detailed information on how to use this library, but here are some quick examples for getting started right away.

Caveat: Stops are always represented by their ID. You can get a stop's ID via Stop.find(). Some of the methods listed below offer convenience overloads, which are listed here since they look nicer. The downside to these is that they have to send of a find request for every stop first resulting in a significant overhead. Should you already have a stop's ID at hand I strongly suggest you use that instead.

Monitor a single stop

Monitor a single stop to see every bus, tram or whatever leaving this stop. The necessary stop id can be found by using the find() function.

// See caveat above
Departure.monitor(stopWithName: "Postplatz") { result in
    guard let response = result.success else { return }
    print(response.departures)
}

Find a specific stop

Say you're looking for "Helmholtzstraße". You can use the following to find a list of matches.

Stop.find("Helmholtzstraße") { result in
    guard let response = result.success else { return }
    print(response.stops)
}

Find a route from A to B

Want to go somewhere?

// See caveat above
Trip.find(from: "Albertplatz", to: "Hauptbahnhof") { result in
    guard let response = result.success else { return }
    print(response.routes)
}

Look up current route changes

Want to see if your favorite lines are currently being re-routed due to construction or some other reason? Check the published list of route changes.

RouteChange.get { result in
    guard let response = result.success else { return }
    print(response.lines)
    print(response.changes)
}

Lines running at a specific stop

Looking to find which lines service a specific stop? There's a func for that.

// See caveat above
Line.get(forStopName: "Postplatz") { result in
    guard let response = result.success else { return }
    print(response.lines)
}

Authors

Kilian Koeltzsch, @kiliankoe

Max Kattner, @maxkattner

License

DVB is available under the MIT license. See the LICENSE file for more info.

Terms of Service

Please refer to the VVO Terms of Service regarding their widget. Take particular care not to use this library to send off to many requests to their graciously-provided API.

Github

link
Stars: 14
Help us keep the lights on

Dependencies

Used By

Total: 1

Releases

2.3.0 - May 30, 2017

Added

  • Route.find(from:to:)
  • .localizedETA() on Departure
  • Stop.monitor()

Fixed

  • A few Route properties are now optional

Changed

  • Renamed Trip to Route
  • some coordinate handling, should now work better
  • Departure's actualETA is now just ETA and no longer optional

2.2.0 - Mar 20, 2017

Added

  • Trip Requests 🛤

Fixed

  • Depature.platform is optional, as it should be

Changed

  • now dependent on Marshal, Carthage users will have to pull this in as well

2.1.0 - Feb 27, 2017

Added

  • Route change lookups
  • Serviced lines lookup
  • convenience Departure.monitor(stopWithName:)

Fixed

  • Coordinates are back :clap:

Changed

  • Some argument labels were made more explicit

Removed

  • Stop.findNear() since the previous implementation was broken. Will hopefully find its way back soon.

2.0.0 - Feb 19, 2017

Added

  • Compatibility with SPM.

Changed

  • Migrated to use WebAPI instead of old Widgets endpoint.
  • Basic API, no more DVB class to interact with.

Removed

  • Example app from repo. That will live somewhere else.
  • Local stop list, since there's now a good endpoint for this.
  • Monitor filters, please implement this yourself if you need this functionality.

Broke

  • Everything regarding coordinates, will fix soon (hopefully)!

1.0.0 - Sep 28, 2016