diff options
author | Joris | 2015-11-21 21:41:38 +0100 |
---|---|---|
committer | Joris | 2015-11-21 21:41:38 +0100 |
commit | 5375ad26dd78220185f1ffe05222250c06dc1a0c (patch) | |
tree | 30998d4fe19206e8c5c9e564db116d2022e5e313 /src/BirthdateParser.hs | |
parent | 7acd7a42f7663aa79d18e24bdb9fe19bf15f8fae (diff) | |
download | events-5375ad26dd78220185f1ffe05222250c06dc1a0c.tar.gz events-5375ad26dd78220185f1ffe05222250c06dc1a0c.tar.bz2 events-5375ad26dd78220185f1ffe05222250c06dc1a0c.zip |
Get next week birthdays and send an empty mail for the moment
Diffstat (limited to 'src/BirthdateParser.hs')
-rw-r--r-- | src/BirthdateParser.hs | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/BirthdateParser.hs b/src/BirthdateParser.hs deleted file mode 100644 index 9fa7c50..0000000 --- a/src/BirthdateParser.hs +++ /dev/null @@ -1,57 +0,0 @@ -module BirthdateParser - ( parseBirthdates - ) where - -import Control.Arrow (left) - -import Data.Text (Text) -import qualified Data.Text as T - -import Text.ParserCombinators.Parsec - -import Birthdate -import Date - -parseBirthdates :: Text -> Either Text [Birthdate] -parseBirthdates input = - left - (T.pack . show) - (parse birthdatesParser "" (T.unpack input)) - -birthdatesParser :: Parser [Birthdate] -birthdatesParser = many (many newline >> birthdateParser <* many newline) - -birthdateParser :: Parser Birthdate -birthdateParser = - Birthdate <$> - dateParser <* spaces <* char ',' <*> - valueParser <* char ',' <*> - valueParser - -valueParser :: Parser Text -valueParser = T.strip . T.pack <$> many (noneOf ",\n") - -dateParser :: Parser Date -dateParser = - Date <$> - integerParser <* spaces <*> - monthParser <* spaces <*> - integerParser - -integerParser :: Parser Int -integerParser = (read :: String -> Int) <$> many1 digit - -monthParser :: Parser Int -monthParser = - (try $ string "Jan" >> return 1) - <|> (try $ string "Feb" >> return 2) - <|> (try $ string "Mar" >> return 3) - <|> (try $ string "Apr" >> return 4) - <|> (try $ string "May" >> return 5) - <|> (try $ string "Jun" >> return 6) - <|> (try $ string "Jul" >> return 7) - <|> (try $ string "Aug" >> return 8) - <|> (try $ string "Sep" >> return 9) - <|> (try $ string "Oct" >> return 10) - <|> (try $ string "Nov" >> return 11) - <|> (try $ string "Dec" >> return 12) |