packages feed

gtfs-realtime-0.1.0.0: README.md

# GTFS RealTime

Haskell protobuf definitions for [GTFS RealTime][1] feed data.
Autogenerated by and supposed to be used with [protocol-buffers][2].

### Usage example

```haskell
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}

module Main where

import qualified Data.ByteString.Lazy as LBS
import           Data.Function
import           GTFS.RealTime.Protobuf.FeedMessage
import           Network.HTTP.Simple (Request, setRequestQueryString, httpLBS, getResponseBody)
import qualified Text.ProtocolBuffers as Protobuf

main :: IO ()
main = do
  resp <- httpLBS $ "http://transport.orgp.spb.ru/Portal/transport/internalapi/gtfs/realtime/vehicle"
                      & setRequestQueryString [("routeIDs", Just "1843")]

  msg <- case Protobuf.messageGet $ getResponseBody resp of
    Left err                       -> fail err
    Right (msg :: FeedMessage, "") -> pure msg
    _                              -> fail "parse incomplete"

  -- | You now have FeedMessage parsed
  print msg

```

### Source proto file

This [transport.proto][3] file was used to generate the modules,
it is the same as provided [here][4], only with modified package name.

[1]: https://developers.google.com/transit/gtfs-realtime/reference/
[2]: http://hackage.haskell.org/package/protocol-buffers
[3]: https://github.com/CthulhuDen/gtfs-realtime/blob/master/transport.proto
[4]: https://developers.google.com/transit/gtfs-realtime/gtfs-realtime-proto