Text.Feed.Constructor

feed-0.3.12.0: Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds.

Copyright | (c) Galois, Inc. 2008, (c) Sigbjorn Finne 2009-
License | BSD3
Maintainer | Sigbjorn Finne <sof@forkIO.com>
Stability | provisional
Safe Haskell | Safe
Language | Haskell98

Text.Feed.Constructor

Description

Description: Module for an abstraction layer between different kinds of feeds.

Synopsis

- data FeedKind
  - = AtomKind
  - | RSSKind (Maybe String)
  - | RDFKind (Maybe String)
- newFeed :: FeedKind -> Feed
- feedFromRSS :: RSS -> Feed
- feedFromAtom :: Feed -> Feed
- feedFromRDF :: Feed -> Feed
- feedFromXML :: Element -> Feed
- getFeedKind :: Feed -> FeedKind
- type FeedSetter a = a -> Feed -> Feed
- addItem :: Item -> Feed -> Feed
- withFeedTitle :: FeedSetter String
- withFeedHome :: FeedSetter URLString
- withFeedHTML :: FeedSetter URLString
- withFeedDescription :: FeedSetter String
- withFeedPubDate :: FeedSetter String
- withFeedLastUpdate :: FeedSetter DateString
- withFeedDate :: FeedSetter DateString
- withFeedLogoLink :: URLString -> FeedSetter URLString
- withFeedLanguage :: FeedSetter String
- withFeedCategories :: FeedSetter [(String, Maybe String)]
- withFeedGenerator :: FeedSetter (String, Maybe URLString)
- withFeedItems :: FeedSetter [Item]
- newItem :: FeedKind -> Item
- getItemKind :: Item -> FeedKind
- atomEntryToItem :: Entry -> Item
- rssItemToItem :: RSSItem -> Item
- rdfItemToItem :: Item -> Item
- type ItemSetter a = a -> Item -> Item
- withItemTitle :: ItemSetter String
- withItemLink :: ItemSetter URLString
- withItemPubDate :: ItemSetter DateString
- withItemDate :: ItemSetter DateString
- withItemAuthor :: ItemSetter String
- withItemCommentLink :: ItemSetter String
- withItemEnclosure :: String -> Maybe String -> ItemSetter (Maybe Integer)
- withItemFeedLink :: String -> ItemSetter String
- withItemId :: Bool -> ItemSetter String
- withItemCategories :: ItemSetter [(String, Maybe String)]
- withItemDescription :: ItemSetter String
- withItemRights :: ItemSetter String

# Documentation

data FeedKind #

The kinds of feed documents supported.

Constructors

AtomKind |
RSSKind (Maybe String) |
RDFKind (Maybe String) |

Instances

Eq FeedKind # |
Methods (==) :: FeedKind -> FeedKind -> Bool # (/=) :: FeedKind -> FeedKind -> Bool #
Show FeedKind # |
Methods showsPrec :: Int -> FeedKind -> ShowS # show :: FeedKind -> String # showList :: [FeedKind] -> ShowS #

newFeed :: FeedKind -> Feed #

Construct an empty feed document, intending to output it in the `fk` feed format.

feedFromRSS :: RSS -> Feed #

feedFromAtom :: Feed -> Feed #

feedFromRDF :: Feed -> Feed #

feedFromXML :: Element -> Feed #

getFeedKind :: Feed -> FeedKind #

type FeedSetter a = a -> Feed -> Feed #

addItem :: Item -> Feed -> Feed #

withFeedTitle :: FeedSetter String #

withFeedHome :: FeedSetter URLString #

withFeedHTML :: FeedSetter URLString #

`withFeedHTML` sets the URL where an HTML version of the feed is published.

withFeedDescription :: FeedSetter String #

`withFeedHTML` sets the URL where an HTML version of the feed is published.

withFeedPubDate :: FeedSetter String #

withFeedLastUpdate :: FeedSetter DateString #

withFeedDate :: FeedSetter DateString #

'withFeedDate dt' is the composition of `withFeedPubDate` and `withFeedLastUpdate`, setting both publication date and last update date to `dt`. Notice that RSS2.0 is the only format supporting both pub and last-update.

withFeedLogoLink :: URLString -> FeedSetter URLString #

withFeedLanguage :: FeedSetter String #

withFeedCategories :: FeedSetter [(String, Maybe String)] #

withFeedGenerator :: FeedSetter (String, Maybe URLString) #

withFeedItems :: FeedSetter [Item] #

newItem :: FeedKind -> Item #

getItemKind :: Item -> FeedKind #

atomEntryToItem :: Entry -> Item #

rssItemToItem :: RSSItem -> Item #

rdfItemToItem :: Item -> Item #

type ItemSetter a = a -> Item -> Item #

withItemTitle :: ItemSetter String #

'withItemTitle myTitle' associates a new title, `myTitle`, with a feed item.

withItemLink :: ItemSetter URLString #

'withItemTitle myLink' associates a new URL, `myLink`, with a feed item.

withItemPubDate :: ItemSetter DateString #

'withItemPubDate dt' associates the creation/ publication date `dt` with a feed item.

withItemDate :: ItemSetter DateString #

`withItemDate` is a synonym for `withItemPubDate`.

withItemAuthor :: ItemSetter String #

'withItemAuthor auStr' associates new author info with a feed item.

withItemCommentLink :: ItemSetter String #

'withItemCommentLink url' sets the URL reference to the comment page to `url`.

withItemEnclosure :: String -> Maybe String -> ItemSetter (Maybe Integer) #

'withItemEnclosure url mbTy len' sets the URL reference to the comment page to `url`.

withItemFeedLink :: String -> ItemSetter String #

'withItemFeedLink name myFeed' associates the parent feed URL `myFeed` with a feed item. It is labelled as `name`.

withItemId :: Bool -> ItemSetter String #

'withItemId isURL id' associates new unique identifier with a feed item. If `isURL` is `True`, then the id is assumed to point to a valid web resource.

withItemCategories :: ItemSetter [(String, Maybe String)] #

withItemDescription :: ItemSetter String #

'withItemDescription desc' associates a new descriptive string (aka summary) with a feed item.

withItemRights :: ItemSetter String #

'withItemRights rightStr' associates the rights information `rightStr` with a feed item.