You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.1 KiB
56 lines
2.1 KiB
{-# LANGUAGE OverloadedStrings #-}
|
|
{-# LANGUAGE RecordWildCards #-}
|
|
|
|
import Data.Aeson as AE
|
|
import Data.ByteString.Lazy as BL
|
|
import Data.ByteString.Lazy.Char8 as BL8
|
|
import Data.HashMap.Strict as HM
|
|
import Prelude as P
|
|
import Worldcup.Continents
|
|
import Worldcup.Countries
|
|
import Worldcup.Events
|
|
import Worldcup.EventsTeams
|
|
import Worldcup.Games
|
|
import Worldcup.Rounds
|
|
import Worldcup.Teams
|
|
import Worldcup.Tourneys
|
|
|
|
data WorldcupData = WorldcupData {
|
|
worldcupTeams :: Teams,
|
|
worldcupCountries :: Countries,
|
|
worldcupContinents :: Continents,
|
|
worldcupTourneys :: Tourneys
|
|
} deriving (Show)
|
|
|
|
instance ToJSON WorldcupData where
|
|
toJSON WorldcupData{..} = object [
|
|
"teams" .= worldcupTeams,
|
|
"countries" .= worldcupCountries,
|
|
"continents" .= worldcupContinents,
|
|
"tourneys" .= worldcupTourneys ]
|
|
|
|
main :: IO ()
|
|
main = do
|
|
dataTeams <- BL.readFile "./data/teams.json"
|
|
dataEventsTeams <- BL.readFile "./data/events_teams.json"
|
|
dataCountries <- BL.readFile "./data/countries.json"
|
|
dataContinents <- BL.readFile "./data/continents.json"
|
|
dataGames <- BL.readFile "./data/games.json"
|
|
dataEvents <- BL.readFile "./data/events.json"
|
|
dataRounds <- BL.readFile "./data/rounds.json"
|
|
|
|
let teams = parseTeams (AE.eitherDecode dataTeams)
|
|
let events = parseEvents (AE.eitherDecode dataEvents)
|
|
let eventsteams = parseEventsTeams (AE.eitherDecode dataEventsTeams)
|
|
let games = parseGames (AE.eitherDecode dataGames)
|
|
let countries = parseCountries (AE.eitherDecode dataCountries)
|
|
let continents = parseContinents (AE.eitherDecode dataContinents)
|
|
let rounds = parseRounds (AE.eitherDecode dataRounds)
|
|
|
|
let tourneys = buildTourneys rounds eventsteams games events
|
|
let worldcup = WorldcupData teams countries continents tourneys
|
|
|
|
let encoded = encode worldcup
|
|
BL8.putStrLn encoded
|
|
BL8.putStrLn "Writing worldcup.json"
|
|
BL8.writeFile "worldcup.json" encoded
|
|
|