{- | Module : $Header$ Description : NNTP extentions from RFC2980 Copyright : (c) Maciej Piechotka License : LGPL 3 or later Maintainer : uzytkownik2@gmail.com Stability : none Portability : portable This module contains the common features and common interface. -} module Network.NNTP.Common ( -- * Functions xhdr ) where import Control.Applicative hiding (empty) import Control.Monad.Trans import Data.ByteString.Lazy.Char8(empty) import Network.NNTP.Internal import Network.NNTP.Internal.Article import Network.NNTP.ParserHelpers import Text.Parsec hiding (many) xhdr :: Monad m => (Article -> m a) -> NntpT m [a] xhdr f = nntpSendCommand "XHDR Message-ID 0-" empty [ (211, many (integer *> many1 space *> iD <* line >>= (\i -> lift $ lift $ f $ Article i Nothing Nothing))), (412, error "No news group selected")]