Print diffTime %H:%M:%S for each change

This commit is contained in:
horhik 2022-02-10 07:11:00 +03:00
parent 07d0311ed5
commit 40eb73a48b

View file

@ -4,12 +4,15 @@ import Data.Char
import Control.Concurrent
import System.Environment
import Data.Time.Clock
import Data.Time.Format
import Data.Time.Clock.POSIX
import Network.HTTP.Conduit
import Data.List.Split
import Data.Algorithm.Diff
import Data.Algorithm.DiffOutput
import qualified Data.ByteString.Lazy.Char8 as L8
data GeneratorState = IsRunning | IsFinished
deriving (Eq)
@ -21,12 +24,21 @@ getChanges _ = False
showRunning :: [String] -> GeneratorState
showRunning html = IsRunning
myFormatDiffTime :: (UTCTime, UTCTime) -> String
myFormatDiffTime (a,b)= formatTime defaultTimeLocale "%H:%M:%S" . posixSecondsToUTCTime $ diffUTCTime a b
hasDiff :: [a] -> Bool
hasDiff [] = False
hasDiff _ = True
timecodeGenerator :: GeneratorState -> [String] -> UTCTime -> IO ()
timecodeGenerator IsFinished _ _ = return ()
timecodeGenerator IsRunning text time = do
html <- simpleHttp "https://hd.socks.town/s/h0jnEJQWy/download"
currTime <- getCurrentTime
let body = (splitOn ("\n")) . L8.unpack $ html
print $ filter getChanges $ getDiff body text
print $ myFormatDiffTime (currTime, time)
-- Waiting for 1 second
threadDelay 1000000
-- Creating a loop until `IsFinished`