Haskell protobuf definitions for GTFS RealTime feed data. Autogenerated by and supposed to be used with protocol-buffers.
{-# 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
This transport.proto file was used to generate the modules, it is the same as provided here, only with modified package name.