mbox 0.3.1 → 0.3.3
raw patch · 3 files changed
+40/−8 lines, 3 filesdep ~timePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: time
API changes (from Hackage documentation)
- Data.MBox: body :: Message -> Text
- Data.MBox: fromLine :: Message -> Text
- Data.MBox: headers :: Message -> [Header]
- Data.MBox: instance Read Message
- Data.MBox: instance Show Message
- Data.MBox.String: body :: Message -> String
- Data.MBox.String: fromLine :: Message -> String
- Data.MBox.String: headers :: Message -> [Header]
- Data.MBox.String: instance Read Message
- Data.MBox.String: instance Show Message
+ Data.MBox: [body] :: Message -> Text
+ Data.MBox: [fromLine] :: Message -> Text
+ Data.MBox: [headers] :: Message -> [Header]
+ Data.MBox: instance GHC.Read.Read Data.MBox.Message
+ Data.MBox: instance GHC.Show.Show Data.MBox.Message
+ Data.MBox.String: [body] :: Message -> String
+ Data.MBox.String: [fromLine] :: Message -> String
+ Data.MBox.String: [headers] :: Message -> [Header]
+ Data.MBox.String: instance GHC.Read.Read Data.MBox.String.Message
+ Data.MBox.String: instance GHC.Show.Show Data.MBox.String.Message
- Data.MBox: getHeader :: (Header -> Bool) -> Message -> Text
+ Data.MBox: getHeader :: (Header -> Bool) -> Message -> [Text]
- Data.MBox.String: getHeader :: (Header -> Bool) -> Message -> String
+ Data.MBox.String: getHeader :: (Header -> Bool) -> Message -> [String]
Files
- Data/MBox.hs +19/−3
- Data/MBox/String.hs +19/−3
- mbox.cabal +2/−2
Data/MBox.hs view
@@ -20,6 +20,7 @@ import Prelude hiding (tail, init, last, minimum, maximum, foldr1, foldl1, (!!), read) import Control.Arrow import Data.Char+import Data.Maybe import Data.Time import Safe import qualified Data.Text.Lazy as T@@ -31,7 +32,22 @@ -- | Reads a date header as a UTCTime parseDateHeader :: T.Text -> Maybe UTCTime-parseDateHeader = parseTime LC.defaultTimeLocale "%A, %B %e, %Y %l:%M %p" . T.unpack+parseDateHeader txt = listToMaybe . catMaybes $ map tryParse formats where+ header = T.unpack txt+ tryParse f = parseTime LC.defaultTimeLocale f header+ formats =+ [ "%a, %_d %b %Y %T %z"+ , "%a, %_d %b %Y %T %Z"+ , "%a, %d %b %Y %T %z"+ , "%a, %d %b %Y %T %Z"+ , "%a, %_d %b %Y %T %z (%Z)"+ , "%a, %_d %b %Y %T %z (GMT%:-z)"+ , "%a, %_d %b %Y %T %z (UTC%:-z)"+ , "%a, %_d %b %Y %T %z (GMT%:z)"+ , "%a, %_d %b %Y %T %z (UTC%:z)"+ , "%A, %B %e, %Y %l:%M %p"+ , "%e %b %Y %T %z"+ ] -- | Attempts to retrieve the contents of a forwarded message from an enclosing message. parseForward :: Message -> Message@@ -95,5 +111,5 @@ isDate (x, _) = x == T.pack "Date" -- | Return the values of headers for which predicate is True-getHeader :: (Header -> Bool) -> Message -> T.Text-getHeader predFunc = snd . head . filter predFunc . headers+getHeader :: (Header -> Bool) -> Message -> [T.Text]+getHeader predFunc = map snd . filter predFunc . headers
Data/MBox/String.hs view
@@ -19,6 +19,7 @@ import Control.Arrow import Data.List (isPrefixOf) import Data.Char+import Data.Maybe import Data.Time import Safe import qualified Data.Time.Locale.Compat as LC@@ -29,8 +30,23 @@ -- | Reads a date header as a UTCTime parseDateHeader :: String -> Maybe UTCTime-parseDateHeader = parseTime LC.defaultTimeLocale "%A, %B %e, %Y %l:%M %p"+parseDateHeader header = listToMaybe . catMaybes $ map tryParse formats where+ tryParse f = parseTime LC.defaultTimeLocale f header+ formats =+ [ "%a, %_d %b %Y %T %z"+ , "%a, %_d %b %Y %T %Z"+ , "%a, %d %b %Y %T %z"+ , "%a, %d %b %Y %T %Z"+ , "%a, %_d %b %Y %T %z (%Z)"+ , "%a, %_d %b %Y %T %z (GMT%:-z)"+ , "%a, %_d %b %Y %T %z (UTC%:-z)"+ , "%a, %_d %b %Y %T %z (GMT%:z)"+ , "%a, %_d %b %Y %T %z (UTC%:z)"+ , "%A, %B %e, %Y %l:%M %p"+ , "%e %b %Y %T %z"+ ] + -- | Attempts to retrieve the contents of a forwarded message from an enclosing message. parseForward :: Message -> Message parseForward origMsg@(Message f _ b) =@@ -90,5 +106,5 @@ isDate :: Header -> Bool isDate (x, _y) = x == "Date" -getHeader :: (Header -> Bool) -> Message -> String-getHeader p = snd . head . filter p . headers+getHeader :: (Header -> Bool) -> Message -> [String]+getHeader p = map snd . filter p . headers
mbox.cabal view
@@ -1,5 +1,5 @@ name: mbox-version: 0.3.1+version: 0.3.3 synopsis: Read and write standard mailbox files. description: Read and write standard mailbox (mboxrd) files. category: system, text, data@@ -13,7 +13,7 @@ Cabal-Version: >= 1.6 library- build-depends: base >= 4, base < 6, safe, time < 1.6, time-locale-compat, text+ build-depends: base >= 4, base < 6, safe, time < 1.7, time-locale-compat, text exposed-modules: Data.MBox, Data.MBox.String ghc-options: -Wall