@hackage gtfs-realtime0.1.0.0

GTFS RealTime protobafs library (autogenerated from .proto file)

GTFS RealTime

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

Usage example

{-# 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 file was used to generate the modules, it is the same as provided here, only with modified package name.