packages feed

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 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