diff options
Diffstat (limited to 'Replay.hs')
-rw-r--r-- | Replay.hs | 27 |
1 files changed, 23 insertions, 4 deletions
@@ -3,10 +3,29 @@ module Replay where import Types import Log import CmdLine +import Session + +import qualified Data.ByteString as B +import System.IO +import Control.Concurrent.Thread.Delay replay :: ReplayOpts -> IO () -replay opts = go =<< loadLog (replayLogFile opts) +replay opts = go Nothing =<< loadLog (replayLogFile opts) where - go [] = return () - go (l:ls) = do - go ls + go _ [] = sessionDone + go prevts (l:ls) = do + case prevts of + Nothing -> return () + Just t -> + let s = loggedTimestamp l - t + ms = s * 1000000 + in delay (ceiling ms) + + case loggedActivity l of + ActivityEntered {} -> return () + ActivitySeen a -> case activity a of + Rejected {} -> return () + Proto s -> do + B.hPut stdout (val (seenData s)) + hFlush stdout + go (Just $ loggedTimestamp l) ls |