initial commit
This commit is contained in:
parent
632034cbd2
commit
26ce916e80
32
default.nix
Normal file
32
default.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
let
|
||||||
|
compilerVersion = "ghc8107";
|
||||||
|
compilerSet = pkgs.haskell.packages."${compilerVersion}";
|
||||||
|
|
||||||
|
|
||||||
|
pkgs = import <nixpkgs> { inherit config; };
|
||||||
|
gitIgnore = pkgs.nix-gitignore.gitignoreSourcePure;
|
||||||
|
|
||||||
|
config = {
|
||||||
|
packageOverrides = super: let self = super.pkgs; in rec {
|
||||||
|
haskell = super.haskell // {
|
||||||
|
packageOverrides = self: super: {
|
||||||
|
haskell-nix = super.callCabal2nix "timecode-generator" (gitIgnore [./.gitignore] ./.) {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
in {
|
||||||
|
inherit pkgs;
|
||||||
|
shell = compilerSet.shellFor {
|
||||||
|
packages = p: [p.haskell-nix];
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
compilerSet.cabal-install
|
||||||
|
haskellPackages.tagsoup
|
||||||
|
haskellPackages.HTTP
|
||||||
|
haskellPackages.zlib
|
||||||
|
zlib
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
39
src/Main.hs
Normal file
39
src/Main.hs
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
module Main where
|
||||||
|
|
||||||
|
import Data.Char
|
||||||
|
import Control.Concurrent
|
||||||
|
import System.Environment
|
||||||
|
import Data.Time.Clock
|
||||||
|
import qualified Data.ByteString.Lazy.Char8 as L8
|
||||||
|
import Network.HTTP.Conduit
|
||||||
|
import Data.List.Split
|
||||||
|
import Data.Algorithm.Diff
|
||||||
|
import Data.Algorithm.DiffOutput
|
||||||
|
|
||||||
|
data GeneratorState = IsRunning | IsFinished
|
||||||
|
deriving (Eq)
|
||||||
|
|
||||||
|
showRunning html = IsRunning
|
||||||
|
|
||||||
|
getCheckBoxList html = html
|
||||||
|
|
||||||
|
timecodeGenerator :: GeneratorState -> [String] -> UTCTime -> IO ()
|
||||||
|
timecodeGenerator IsFinished _ _ = return ()
|
||||||
|
timecodeGenerator IsRunning text time = do
|
||||||
|
html <- simpleHttp "https://hd.socks.town/s/h0jnEJQWy/download"
|
||||||
|
let body = (splitOn ("\n")) . L8.unpack $ html
|
||||||
|
print $ getDiff body text
|
||||||
|
|
||||||
|
threadDelay 1000000
|
||||||
|
if showRunning body == IsRunning then
|
||||||
|
timecodeGenerator IsRunning body time
|
||||||
|
else
|
||||||
|
timecodeGenerator IsFinished body time
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = do
|
||||||
|
time <- getCurrentTime
|
||||||
|
timecodeGenerator IsRunning [""] time
|
20
timecode-generator.cabal
Normal file
20
timecode-generator.cabal
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
cabal-version: >= 2.0
|
||||||
|
name: timecode-generator
|
||||||
|
version: 0.1.0
|
||||||
|
build-type: Simple
|
||||||
|
|
||||||
|
executable timecode-generator
|
||||||
|
hs-source-dirs: src
|
||||||
|
main-is: Main.hs
|
||||||
|
default-language: Haskell2010
|
||||||
|
build-depends:
|
||||||
|
base >= 4.14.3,
|
||||||
|
bytestring,
|
||||||
|
aeson,
|
||||||
|
time,
|
||||||
|
split,
|
||||||
|
HTTP >= 4000,
|
||||||
|
http-client>= 0.6.4.1,
|
||||||
|
http-conduit >= 2.3.8,
|
||||||
|
tagsoup >= 0.14.6,
|
||||||
|
Diff
|
Loading…
Reference in a new issue