-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds. -- -- Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds. -- -- To help working with the multiple feed formats we've ended up with, -- this set of modules provides parsers, pretty printers and some utility -- code for querying and just generally working with a concrete -- representation of feeds in Haskell. -- -- See here for an example of how to create an Atom feed: -- https://github.com/bergmark/feed/blob/master/tests/Example/CreateAtom.hs -- -- For basic reading and editing of feeds, consult the documentation of -- the Text.Feed.* hierarchy. @package feed @version 1.3.2.0 module Text.Atom.Feed type URI = Text type NCName = Text type Date = Text type MediaType = Text type Attr = (Name, [Content]) data Feed Feed :: URI -> TextContent -> Date -> [Person] -> [Category] -> [Person] -> Maybe Generator -> Maybe URI -> [Link] -> Maybe URI -> Maybe TextContent -> Maybe TextContent -> [Entry] -> [Attr] -> [Element] -> Feed [feedId] :: Feed -> URI [feedTitle] :: Feed -> TextContent [feedUpdated] :: Feed -> Date [feedAuthors] :: Feed -> [Person] [feedCategories] :: Feed -> [Category] [feedContributors] :: Feed -> [Person] [feedGenerator] :: Feed -> Maybe Generator [feedIcon] :: Feed -> Maybe URI [feedLinks] :: Feed -> [Link] [feedLogo] :: Feed -> Maybe URI [feedRights] :: Feed -> Maybe TextContent [feedSubtitle] :: Feed -> Maybe TextContent [feedEntries] :: Feed -> [Entry] [feedAttrs] :: Feed -> [Attr] [feedOther] :: Feed -> [Element] data Entry Entry :: URI -> TextContent -> Date -> [Person] -> [Category] -> Maybe EntryContent -> [Person] -> [Link] -> Maybe Date -> Maybe TextContent -> Maybe Source -> Maybe TextContent -> Maybe InReplyTo -> Maybe InReplyTotal -> [Attr] -> [Element] -> Entry [entryId] :: Entry -> URI [entryTitle] :: Entry -> TextContent [entryUpdated] :: Entry -> Date [entryAuthors] :: Entry -> [Person] [entryCategories] :: Entry -> [Category] [entryContent] :: Entry -> Maybe EntryContent [entryContributor] :: Entry -> [Person] [entryLinks] :: Entry -> [Link] [entryPublished] :: Entry -> Maybe Date [entryRights] :: Entry -> Maybe TextContent [entrySource] :: Entry -> Maybe Source [entrySummary] :: Entry -> Maybe TextContent [entryInReplyTo] :: Entry -> Maybe InReplyTo [entryInReplyTotal] :: Entry -> Maybe InReplyTotal [entryAttrs] :: Entry -> [Attr] [entryOther] :: Entry -> [Element] data EntryContent TextContent :: Text -> EntryContent HTMLContent :: Text -> EntryContent XHTMLContent :: Element -> EntryContent MixedContent :: Maybe Text -> [Node] -> EntryContent ExternalContent :: Maybe MediaType -> URI -> EntryContent data Category Category :: Text -> Maybe URI -> Maybe Text -> [Element] -> Category -- | the tag/term of the category. [catTerm] :: Category -> Text -- | optional URL for identifying the categorization scheme. [catScheme] :: Category -> Maybe URI -- | human-readable label of the category [catLabel] :: Category -> Maybe Text -- | unknown elements, for extensibility. [catOther] :: Category -> [Element] data Generator Generator :: Maybe URI -> Maybe Text -> Text -> Generator [genURI] :: Generator -> Maybe URI [genVersion] :: Generator -> Maybe Text [genText] :: Generator -> Text data Link Link :: URI -> Maybe (Either NCName URI) -> Maybe MediaType -> Maybe Text -> Maybe Text -> Maybe Text -> [Attr] -> [Element] -> Link [linkHref] :: Link -> URI [linkRel] :: Link -> Maybe (Either NCName URI) [linkType] :: Link -> Maybe MediaType [linkHrefLang] :: Link -> Maybe Text [linkTitle] :: Link -> Maybe Text [linkLength] :: Link -> Maybe Text [linkAttrs] :: Link -> [Attr] [linkOther] :: Link -> [Element] data TextContent TextString :: Text -> TextContent HTMLString :: Text -> TextContent XHTMLString :: Element -> TextContent txtToString :: TextContent -> String data Source Source :: [Person] -> [Category] -> Maybe Generator -> Maybe URI -> Maybe URI -> [Link] -> Maybe URI -> Maybe TextContent -> Maybe TextContent -> Maybe TextContent -> Maybe Date -> [Element] -> Source [sourceAuthors] :: Source -> [Person] [sourceCategories] :: Source -> [Category] [sourceGenerator] :: Source -> Maybe Generator [sourceIcon] :: Source -> Maybe URI [sourceId] :: Source -> Maybe URI [sourceLinks] :: Source -> [Link] [sourceLogo] :: Source -> Maybe URI [sourceRights] :: Source -> Maybe TextContent [sourceSubtitle] :: Source -> Maybe TextContent [sourceTitle] :: Source -> Maybe TextContent [sourceUpdated] :: Source -> Maybe Date [sourceOther] :: Source -> [Element] data Person Person :: Text -> Maybe URI -> Maybe Text -> [Element] -> Person [personName] :: Person -> Text [personURI] :: Person -> Maybe URI [personEmail] :: Person -> Maybe Text [personOther] :: Person -> [Element] data InReplyTo InReplyTo :: URI -> Maybe URI -> Maybe MediaType -> Maybe URI -> [Attr] -> [Node] -> InReplyTo [replyToRef] :: InReplyTo -> URI [replyToHRef] :: InReplyTo -> Maybe URI [replyToType] :: InReplyTo -> Maybe MediaType [replyToSource] :: InReplyTo -> Maybe URI [replyToOther] :: InReplyTo -> [Attr] [replyToContent] :: InReplyTo -> [Node] data InReplyTotal InReplyTotal :: Integer -> [Attr] -> InReplyTotal [replyToTotal] :: InReplyTotal -> Integer [replyToTotalOther] :: InReplyTotal -> [Attr] newCategory :: Text -> Category nullFeed :: URI -> TextContent -> Date -> Feed nullEntry :: URI -> TextContent -> Date -> Entry nullGenerator :: Text -> Generator nullLink :: URI -> Link nullSource :: Source nullPerson :: Person instance GHC.Show.Show Text.Atom.Feed.EntryContent instance GHC.Show.Show Text.Atom.Feed.Category instance GHC.Show.Show Text.Atom.Feed.Generator instance GHC.Classes.Eq Text.Atom.Feed.Generator instance GHC.Show.Show Text.Atom.Feed.Link instance GHC.Show.Show Text.Atom.Feed.TextContent instance GHC.Show.Show Text.Atom.Feed.Person instance GHC.Show.Show Text.Atom.Feed.Source instance GHC.Show.Show Text.Atom.Feed.InReplyTo instance GHC.Show.Show Text.Atom.Feed.InReplyTotal instance GHC.Show.Show Text.Atom.Feed.Entry instance GHC.Show.Show Text.Atom.Feed.Feed -- | Convert from Atom to XML module Text.Atom.Feed.Export atom_prefix :: Maybe Text atom_thr_prefix :: Maybe Text atomNS :: Text atomThreadNS :: Text xmlns_atom :: Attr xmlns_atom_thread :: Attr atomName :: Text -> Name atomAttr :: Text -> Text -> Attr atomNode :: Text -> [Node] -> Element atomLeaf :: Text -> Text -> Element atomThreadName :: Text -> Name atomThreadAttr :: Text -> Text -> Attr atomThreadNode :: Text -> [Node] -> Element atomThreadLeaf :: Text -> Text -> Element xmlFeed :: Feed -> Element textFeed :: Feed -> Maybe Text xmlEntry :: Entry -> Element xmlContent :: EntryContent -> Element xmlCategory :: Category -> Element xmlLink :: Link -> Element xmlSource :: Source -> Element xmlGenerator :: Generator -> Element xmlAuthor :: Person -> Element xmlContributor :: Person -> Element xmlPerson :: Person -> [Node] xmlInReplyTo :: InReplyTo -> Element xmlInReplyTotal :: InReplyTotal -> Element xmlId :: Text -> Element xmlIcon :: URI -> Element xmlLogo :: URI -> Element xmlUpdated :: Date -> Element xmlPublished :: Date -> Element xmlRights :: TextContent -> Element xmlTitle :: TextContent -> Element xmlSubtitle :: TextContent -> Element xmlSummary :: TextContent -> Element xmlTextContent :: Text -> TextContent -> Element mb :: (a -> b) -> Maybe a -> [b] -- | Convert from XML to Atom module Text.Atom.Feed.Import pNodes :: Text -> [Element] -> [Element] pQNodes :: Name -> [Element] -> [Element] pNode :: Text -> [Element] -> Maybe Element pQNode :: Name -> [Element] -> Maybe Element pLeaf :: Text -> [Element] -> Maybe Text pQLeaf :: Name -> [Element] -> Maybe Text pAttr :: Text -> Element -> Maybe Text pAttrs :: Text -> Element -> [Text] pQAttr :: Name -> Element -> Maybe Text pMany :: Text -> (Element -> Maybe a) -> [Element] -> [a] children :: Element -> [Element] elementFeed :: Element -> Maybe Feed pTextContent :: Text -> [Element] -> Maybe TextContent pPerson :: Element -> Maybe Person pCategory :: Element -> Maybe Category pGenerator :: Element -> Generator pSource :: Element -> Source pLink :: Element -> Maybe Link pEntry :: Element -> Maybe Entry pContent :: Element -> Maybe EntryContent pInReplyTotal :: [Element] -> Maybe InReplyTotal pInReplyTo :: [Element] -> Maybe InReplyTo module Text.Atom.Feed.Link -- | Atom feeds uses typed IRI links to represent information / metadata -- that is of interest to the consumers (software, in the main) of feeds. -- For instance, the edit link relation attached to an atom:entry element -- points to the IRI to use to update/edit it. -- -- The Atom standard encourages that such typed links to be registered -- with IANA if they have wider applicability, and the -- LinkRelation data type encodes the currently registered link -- types (derived from: -- http://www.iana.org/assignments/link-relations.html on 2007-10-28] data LinkRelation LinkAlternate :: LinkRelation LinkCurrent :: LinkRelation LinkEnclosure :: LinkRelation LinkEdit :: LinkRelation LinkEditMedia :: LinkRelation LinkFirst :: LinkRelation LinkLast :: LinkRelation LinkLicense :: LinkRelation LinkNext :: LinkRelation LinkNextArchive :: LinkRelation LinkPayment :: LinkRelation LinkPrevArchive :: LinkRelation LinkPrevious :: LinkRelation LinkRelated :: LinkRelation LinkReplies :: LinkRelation LinkSelf :: LinkRelation LinkVia :: LinkRelation LinkOther :: String -> LinkRelation showLinkRelation :: LinkRelation -> String showLinkAttr :: LinkRelation -> String -> String instance GHC.Show.Show Text.Atom.Feed.Link.LinkRelation instance GHC.Classes.Eq Text.Atom.Feed.Link.LinkRelation module Text.Atom.Feed.Validate data VTree a VNode :: [a] -> [VTree a] -> VTree a VLeaf :: [a] -> VTree a type ValidatorResult = VTree (Bool, String) advice :: String -> ValidatorResult demand :: String -> ValidatorResult valid :: ValidatorResult mkTree :: [(Bool, String)] -> [ValidatorResult] -> ValidatorResult flattenT :: VTree a -> [a] validateEntry :: Element -> ValidatorResult checkEntryAuthor :: Element -> ValidatorResult checkCats :: Element -> ValidatorResult checkContents :: Element -> ValidatorResult checkContributor :: Element -> ValidatorResult checkContentLink :: Element -> ValidatorResult checkLinks :: Element -> ValidatorResult checkId :: Element -> ValidatorResult checkPublished :: Element -> ValidatorResult checkRights :: Element -> ValidatorResult checkSource :: Element -> ValidatorResult checkSummary :: Element -> ValidatorResult checkTitle :: Element -> ValidatorResult checkUpdated :: Element -> ValidatorResult checkCat :: Element -> ValidatorResult checkContent :: Element -> ValidatorResult checkTerm :: Element -> ValidatorResult checkAuthor :: Element -> ValidatorResult checkPerson :: Element -> ValidatorResult checkName :: Element -> ValidatorResult checkEmail :: Element -> ValidatorResult checkUri :: Element -> ValidatorResult instance GHC.Show.Show a => GHC.Show.Show (Text.Atom.Feed.Validate.VTree a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Text.Atom.Feed.Validate.VTree a) -- | Types for the Atom Publishing Protocol (APP) module Text.Atom.Pub data Service Service :: [Workspace] -> [Element] -> Service [serviceWorkspaces] :: Service -> [Workspace] [serviceOther] :: Service -> [Element] data Workspace Workspace :: TextContent -> [Collection] -> [Element] -> Workspace [workspaceTitle] :: Workspace -> TextContent [workspaceCols] :: Workspace -> [Collection] [workspaceOther] :: Workspace -> [Element] data Collection Collection :: URI -> TextContent -> [Accept] -> [Categories] -> [Element] -> Collection [collectionURI] :: Collection -> URI [collectionTitle] :: Collection -> TextContent [collectionAccept] :: Collection -> [Accept] [collectionCats] :: Collection -> [Categories] [collectionOther] :: Collection -> [Element] data Categories CategoriesExternal :: URI -> Categories Categories :: Maybe Bool -> Maybe URI -> [Category] -> Categories newtype Accept Accept :: Text -> Accept [acceptType] :: Accept -> Text instance GHC.Show.Show Text.Atom.Pub.Categories -- | Serializing Atom Publishing Protocol types as XML. module Text.Atom.Pub.Export mkQName :: Maybe Text -> Text -> Name mkElem :: Name -> [Attr] -> [Element] -> Element mkLeaf :: Name -> [Attr] -> Text -> Element mkAttr :: Text -> Text -> Attr xmlns_app :: Attr appNS :: Text xmlService :: Service -> Element xmlWorkspace :: Workspace -> Element xmlCollection :: Collection -> Element xmlCategories :: Categories -> Element xmlAccept :: Accept -> Element -- | Representing the DublinCore metadata elements in Haskell. For -- information on the Dublin Core Metadata Element Set, see: -- http://dublincore.org/ module Text.DublinCore.Types -- | A DCItem pairs a specific element with its (string) value. data DCItem DCItem :: DCInfo -> Text -> DCItem [dcElt] :: DCItem -> DCInfo [dcText] :: DCItem -> Text -- | The Dublin Core Metadata Element Set, all 15 of them (plus an -- extension constructor.) data DCInfo -- | A name given to the resource. DC_Title :: DCInfo -- | An entity primarily responsible for making the content of the -- resource. DC_Creator :: DCInfo -- | The topic of the content of the resource. DC_Subject :: DCInfo -- | An account of the content of the resource. DC_Description :: DCInfo -- | An entity responsible for making the resource available DC_Publisher :: DCInfo -- | An entity responsible for making contributions to the content of the -- resource. DC_Contributor :: DCInfo -- | A date associated with an event in the life cycle of the resource -- (YYYY-MM-DD) DC_Date :: DCInfo -- | The nature or genre of the content of the resource. DC_Type :: DCInfo -- | The physical or digital manifestation of the resource. DC_Format :: DCInfo -- | An unambiguous reference to the resource within a given context. DC_Identifier :: DCInfo -- | A Reference to a resource from which the present resource is derived. DC_Source :: DCInfo -- | A language of the intellectual content of the resource. DC_Language :: DCInfo -- | A reference to a related resource. DC_Relation :: DCInfo -- | The extent or scope of the content of the resource. DC_Coverage :: DCInfo -- | Information about rights held in and over the resource. DC_Rights :: DCInfo -- | Other; data type extension mechanism. DC_Other :: Text -> DCInfo infoToTag :: DCInfo -> Text dc_element_names :: [Text] instance GHC.Show.Show Text.DublinCore.Types.DCInfo instance GHC.Classes.Eq Text.DublinCore.Types.DCInfo instance GHC.Show.Show Text.DublinCore.Types.DCItem instance GHC.Classes.Eq Text.DublinCore.Types.DCItem -- | The basic syntax for putting together feeds. -- -- For instance, to create a feed with a single item item: (nullRSS "rss -- title" "link") {rssChannel=(nullChannel "channel title" "link") -- {rssItems=[(nullItem "item title")]}} module Text.RSS.Syntax data RSS RSS :: Text -> [Attr] -> RSSChannel -> [Element] -> RSS [rssVersion] :: RSS -> Text [rssAttrs] :: RSS -> [Attr] [rssChannel] :: RSS -> RSSChannel [rssOther] :: RSS -> [Element] type URLString = Text -- | RFC 822 conforming. type DateString = Text data RSSChannel RSSChannel :: Text -> URLString -> Text -> [RSSItem] -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe DateString -> Maybe DateString -> [RSSCategory] -> Maybe Text -> Maybe URLString -> Maybe RSSCloud -> Maybe Integer -> Maybe RSSImage -> Maybe Text -> Maybe RSSTextInput -> Maybe [Integer] -> Maybe [Text] -> [Element] -> RSSChannel [rssTitle] :: RSSChannel -> Text [rssLink] :: RSSChannel -> URLString [rssDescription] :: RSSChannel -> Text [rssItems] :: RSSChannel -> [RSSItem] [rssLanguage] :: RSSChannel -> Maybe Text [rssCopyright] :: RSSChannel -> Maybe Text [rssEditor] :: RSSChannel -> Maybe Text [rssWebMaster] :: RSSChannel -> Maybe Text -- | rfc 822 conforming. [rssPubDate] :: RSSChannel -> Maybe DateString -- | rfc 822 conforming. [rssLastUpdate] :: RSSChannel -> Maybe DateString [rssCategories] :: RSSChannel -> [RSSCategory] [rssGenerator] :: RSSChannel -> Maybe Text [rssDocs] :: RSSChannel -> Maybe URLString [rssCloud] :: RSSChannel -> Maybe RSSCloud [rssTTL] :: RSSChannel -> Maybe Integer [rssImage] :: RSSChannel -> Maybe RSSImage [rssRating] :: RSSChannel -> Maybe Text [rssTextInput] :: RSSChannel -> Maybe RSSTextInput [rssSkipHours] :: RSSChannel -> Maybe [Integer] [rssSkipDays] :: RSSChannel -> Maybe [Text] [rssChannelOther] :: RSSChannel -> [Element] data RSSItem RSSItem :: Maybe Text -> Maybe URLString -> Maybe Text -> Maybe Text -> [RSSCategory] -> Maybe URLString -> Maybe Text -> Maybe RSSEnclosure -> Maybe RSSGuid -> Maybe DateString -> Maybe RSSSource -> [Attr] -> [Element] -> RSSItem [rssItemTitle] :: RSSItem -> Maybe Text [rssItemLink] :: RSSItem -> Maybe URLString -- | if not present, the title is. (per spec, at least.) [rssItemDescription] :: RSSItem -> Maybe Text [rssItemAuthor] :: RSSItem -> Maybe Text [rssItemCategories] :: RSSItem -> [RSSCategory] [rssItemComments] :: RSSItem -> Maybe URLString [rssItemContent] :: RSSItem -> Maybe Text [rssItemEnclosure] :: RSSItem -> Maybe RSSEnclosure [rssItemGuid] :: RSSItem -> Maybe RSSGuid [rssItemPubDate] :: RSSItem -> Maybe DateString [rssItemSource] :: RSSItem -> Maybe RSSSource [rssItemAttrs] :: RSSItem -> [Attr] [rssItemOther] :: RSSItem -> [Element] data RSSSource RSSSource :: URLString -> [Attr] -> Text -> RSSSource [rssSourceURL] :: RSSSource -> URLString [rssSourceAttrs] :: RSSSource -> [Attr] [rssSourceTitle] :: RSSSource -> Text data RSSEnclosure RSSEnclosure :: URLString -> Maybe Integer -> Text -> [Attr] -> RSSEnclosure [rssEnclosureURL] :: RSSEnclosure -> URLString [rssEnclosureLength] :: RSSEnclosure -> Maybe Integer [rssEnclosureType] :: RSSEnclosure -> Text [rssEnclosureAttrs] :: RSSEnclosure -> [Attr] data RSSCategory RSSCategory :: Maybe Text -> [Attr] -> Text -> RSSCategory [rssCategoryDomain] :: RSSCategory -> Maybe Text [rssCategoryAttrs] :: RSSCategory -> [Attr] [rssCategoryValue] :: RSSCategory -> Text data RSSGuid RSSGuid :: Maybe Bool -> [Attr] -> Text -> RSSGuid [rssGuidPermanentURL] :: RSSGuid -> Maybe Bool [rssGuidAttrs] :: RSSGuid -> [Attr] [rssGuidValue] :: RSSGuid -> Text data RSSImage RSSImage :: URLString -> Text -> URLString -> Maybe Integer -> Maybe Integer -> Maybe Text -> [Element] -> RSSImage [rssImageURL] :: RSSImage -> URLString [rssImageTitle] :: RSSImage -> Text [rssImageLink] :: RSSImage -> URLString [rssImageWidth] :: RSSImage -> Maybe Integer [rssImageHeight] :: RSSImage -> Maybe Integer [rssImageDesc] :: RSSImage -> Maybe Text [rssImageOther] :: RSSImage -> [Element] data RSSCloud RSSCloud :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> [Attr] -> RSSCloud [rssCloudDomain] :: RSSCloud -> Maybe Text [rssCloudPort] :: RSSCloud -> Maybe Text [rssCloudPath] :: RSSCloud -> Maybe Text [rssCloudRegisterProcedure] :: RSSCloud -> Maybe Text [rssCloudProtocol] :: RSSCloud -> Maybe Text [rssCloudAttrs] :: RSSCloud -> [Attr] data RSSTextInput RSSTextInput :: Text -> Text -> Text -> URLString -> [Attr] -> [Element] -> RSSTextInput [rssTextInputTitle] :: RSSTextInput -> Text [rssTextInputDesc] :: RSSTextInput -> Text [rssTextInputName] :: RSSTextInput -> Text [rssTextInputLink] :: RSSTextInput -> URLString [rssTextInputAttrs] :: RSSTextInput -> [Attr] [rssTextInputOther] :: RSSTextInput -> [Element] nullRSS :: Text -> URLString -> RSS nullChannel :: Text -> URLString -> RSSChannel nullItem :: Text -> RSSItem nullSource :: URLString -> Text -> RSSSource nullEnclosure :: URLString -> Maybe Integer -> Text -> RSSEnclosure newCategory :: Text -> RSSCategory nullGuid :: Text -> RSSGuid nullPermaGuid :: Text -> RSSGuid nullImage :: URLString -> Text -> URLString -> RSSImage nullCloud :: RSSCloud nullTextInput :: Text -> Text -> URLString -> RSSTextInput instance GHC.Show.Show Text.RSS.Syntax.RSSSource instance GHC.Show.Show Text.RSS.Syntax.RSSEnclosure instance GHC.Show.Show Text.RSS.Syntax.RSSCategory instance GHC.Show.Show Text.RSS.Syntax.RSSGuid instance GHC.Show.Show Text.RSS.Syntax.RSSItem instance GHC.Show.Show Text.RSS.Syntax.RSSImage instance GHC.Show.Show Text.RSS.Syntax.RSSCloud instance GHC.Show.Show Text.RSS.Syntax.RSSTextInput instance GHC.Show.Show Text.RSS.Syntax.RSSChannel instance GHC.Show.Show Text.RSS.Syntax.RSS module Text.RSS.Export qualNode :: Text -> [Node] -> Element qualName :: Text -> Name xmlRSS :: RSS -> Element textRSS :: RSS -> Maybe Text xmlChannel :: RSSChannel -> Element xmlItem :: RSSItem -> Element xmlSource :: RSSSource -> Element xmlEnclosure :: RSSEnclosure -> Element xmlCategory :: RSSCategory -> Element xmlGuid :: RSSGuid -> Element xmlImage :: RSSImage -> Element xmlCloud :: RSSCloud -> Element xmlTextInput :: RSSTextInput -> Element xmlSkipHours :: [Integer] -> Element xmlSkipDays :: [Text] -> Element xmlAttr :: Text -> Text -> Attr xmlLeaf :: Text -> Text -> Element mb :: (a -> b) -> Maybe a -> [b] module Text.RSS1.Syntax type URIString = Text type TitleString = Text type TimeString = Text type TextString = Text data Feed Feed :: Text -> Channel -> Maybe Image -> [Item] -> Maybe TextInputInfo -> [TaxonomyTopic] -> [Element] -> [Attr] -> Feed [feedVersion] :: Feed -> Text [feedChannel] :: Feed -> Channel [feedImage] :: Feed -> Maybe Image [feedItems] :: Feed -> [Item] [feedTextInput] :: Feed -> Maybe TextInputInfo [feedTopics] :: Feed -> [TaxonomyTopic] [feedOther] :: Feed -> [Element] [feedAttrs] :: Feed -> [Attr] data Channel Channel :: URIString -> TitleString -> URIString -> TextString -> Maybe URIString -> [URIString] -> Maybe URIString -> [DCItem] -> Maybe UpdatePeriod -> Maybe Integer -> Maybe TimeString -> [ContentInfo] -> [URIString] -> [Element] -> [Attr] -> Channel [channelURI] :: Channel -> URIString [channelTitle] :: Channel -> TitleString [channelLink] :: Channel -> URIString [channelDesc] :: Channel -> TextString [channelImageURI] :: Channel -> Maybe URIString [channelItemURIs] :: Channel -> [URIString] [channelTextInputURI] :: Channel -> Maybe URIString [channelDC] :: Channel -> [DCItem] [channelUpdatePeriod] :: Channel -> Maybe UpdatePeriod [channelUpdateFreq] :: Channel -> Maybe Integer [channelUpdateBase] :: Channel -> Maybe TimeString [channelContent] :: Channel -> [ContentInfo] [channelTopics] :: Channel -> [URIString] [channelOther] :: Channel -> [Element] [channelAttrs] :: Channel -> [Attr] data Image Image :: URIString -> TextString -> URIString -> URIString -> [DCItem] -> [Element] -> [Attr] -> Image [imageURI] :: Image -> URIString [imageTitle] :: Image -> TextString [imageURL] :: Image -> URIString [imageLink] :: Image -> URIString [imageDC] :: Image -> [DCItem] [imageOther] :: Image -> [Element] [imageAttrs] :: Image -> [Attr] data Item Item :: URIString -> TextString -> URIString -> Maybe TextString -> [DCItem] -> [URIString] -> [ContentInfo] -> [Element] -> [Attr] -> Item [itemURI] :: Item -> URIString [itemTitle] :: Item -> TextString [itemLink] :: Item -> URIString [itemDesc] :: Item -> Maybe TextString [itemDC] :: Item -> [DCItem] [itemTopics] :: Item -> [URIString] [itemContent] :: Item -> [ContentInfo] [itemOther] :: Item -> [Element] [itemAttrs] :: Item -> [Attr] data TextInputInfo TextInputInfo :: URIString -> TextString -> TextString -> TextString -> URIString -> [DCItem] -> [Element] -> [Attr] -> TextInputInfo [textInputURI] :: TextInputInfo -> URIString [textInputTitle] :: TextInputInfo -> TextString [textInputDesc] :: TextInputInfo -> TextString [textInputName] :: TextInputInfo -> TextString [textInputLink] :: TextInputInfo -> URIString [textInputDC] :: TextInputInfo -> [DCItem] [textInputOther] :: TextInputInfo -> [Element] [textInputAttrs] :: TextInputInfo -> [Attr] data TaxonomyTopic TaxonomyTopic :: URIString -> URIString -> Maybe Text -> Maybe Text -> [URIString] -> [DCItem] -> [Element] -> TaxonomyTopic [taxonomyURI] :: TaxonomyTopic -> URIString [taxonomyLink] :: TaxonomyTopic -> URIString [taxonomyTitle] :: TaxonomyTopic -> Maybe Text [taxonomyDesc] :: TaxonomyTopic -> Maybe Text [taxonomyTopics] :: TaxonomyTopic -> [URIString] [taxonomyDC] :: TaxonomyTopic -> [DCItem] [taxonomyOther] :: TaxonomyTopic -> [Element] data UpdatePeriod Update_Hourly :: UpdatePeriod Update_Daily :: UpdatePeriod Update_Weekly :: UpdatePeriod Update_Monthly :: UpdatePeriod Update_Yearly :: UpdatePeriod data ContentInfo ContentInfo :: Maybe URIString -> Maybe URIString -> Maybe URIString -> Maybe Text -> ContentInfo [contentURI] :: ContentInfo -> Maybe URIString [contentFormat] :: ContentInfo -> Maybe URIString [contentEncoding] :: ContentInfo -> Maybe URIString [contentValue] :: ContentInfo -> Maybe Text nullFeed :: URIString -> TitleString -> Feed nullChannel :: URIString -> TitleString -> Channel nullImage :: URIString -> Text -> URIString -> Image nullItem :: URIString -> TextString -> URIString -> Item nullTextInputInfo :: URIString -> TextString -> TextString -> URIString -> TextInputInfo nullTaxonomyTopic :: URIString -> URIString -> TaxonomyTopic nullContentInfo :: ContentInfo instance GHC.Show.Show Text.RSS1.Syntax.Image instance GHC.Show.Show Text.RSS1.Syntax.TextInputInfo instance GHC.Show.Show Text.RSS1.Syntax.TaxonomyTopic instance GHC.Show.Show Text.RSS1.Syntax.UpdatePeriod instance GHC.Classes.Eq Text.RSS1.Syntax.UpdatePeriod instance GHC.Show.Show Text.RSS1.Syntax.ContentInfo instance GHC.Classes.Eq Text.RSS1.Syntax.ContentInfo instance GHC.Show.Show Text.RSS1.Syntax.Item instance GHC.Show.Show Text.RSS1.Syntax.Channel instance GHC.Show.Show Text.RSS1.Syntax.Feed module Text.Feed.Types -- | The abstract type of feed documents. The internal representation is as -- whatever feed variant type the document was either imported or has now -- been translated to. data Feed AtomFeed :: Feed -> Feed RSSFeed :: RSS -> Feed RSS1Feed :: Feed -> Feed XMLFeed :: Element -> Feed -- | The abstract type of feed items. Like the Feed type, the -- representation of a value is as one of the different RSS item/entry -- variants. data Item AtomItem :: Entry -> Item RSSItem :: RSSItem -> Item RSS1Item :: Item -> Item XMLItem :: Element -> Item -- | The kinds of feed documents supported. data FeedKind AtomKind :: FeedKind RSSKind :: Maybe Text -> FeedKind RDFKind :: Maybe Text -> FeedKind instance GHC.Show.Show Text.Feed.Types.Feed instance GHC.Show.Show Text.Feed.Types.Item instance GHC.Show.Show Text.Feed.Types.FeedKind instance GHC.Classes.Eq Text.Feed.Types.FeedKind module Text.Feed.Util -- | toFeedDateString translates a calendar time into the format -- expected by the feed kind. toFeedDateString :: FeedKind -> ClockTime -> String -- | toFeedDateStringUTC translates a UTC time into the format -- expected by the feed kind. toFeedDateStringUTC :: FeedKind -> UTCTime -> String module Text.Feed.Query feedItems :: Feed -> [Item] type FeedGetter a = Feed -> Maybe a getFeedTitle :: Feed -> Text getFeedAuthor :: FeedGetter Text getFeedHome :: FeedGetter URLString getFeedHTML :: FeedGetter URLString getFeedDescription :: FeedGetter Text getFeedPubDate :: FeedGetter DateString getFeedLastUpdate :: FeedGetter Text getFeedDate :: FeedGetter DateString getFeedLogoLink :: FeedGetter URLString getFeedLanguage :: FeedGetter Text getFeedCategories :: Feed -> [(Text, Maybe Text)] getFeedGenerator :: FeedGetter Text getFeedItems :: Feed -> [Item] type ItemGetter a = Item -> Maybe a getItemTitle :: ItemGetter Text getItemLink :: ItemGetter Text -- | 'getItemPublishDate item' returns the publication date of the item, -- but first parsed per the supported RFC 822 and RFC 3339 formats. -- -- If the date string cannot be parsed as such, Just Nothing is returned. -- The caller must then instead fall back to processing the date string -- from getItemPublishDateString. -- -- The parsed date representation is one of the ParseTime instances; see -- Format. getItemPublishDate :: ParseTime t => ItemGetter (Maybe t) getItemPublishDateString :: ItemGetter DateString getItemDate :: ItemGetter DateString -- | 'getItemAuthor f' returns the optional author of the item. getItemAuthor :: ItemGetter Text getItemCommentLink :: ItemGetter URLString getItemEnclosure :: ItemGetter (URI, Maybe Text, Maybe Integer) getItemFeedLink :: ItemGetter URLString getItemId :: ItemGetter (Bool, Text) getItemCategories :: Item -> [Text] getItemRights :: ItemGetter Text getItemSummary :: ItemGetter Text getItemContent :: ItemGetter Text getItemDescription :: ItemGetter Text module Text.Feed.Constructor -- | The kinds of feed documents supported. data FeedKind AtomKind :: FeedKind RSSKind :: Maybe Text -> FeedKind RDFKind :: Maybe Text -> FeedKind -- | Construct an empty feed document, intending to output it in the -- fk feed format. 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 Text withFeedHome :: FeedSetter URLString -- | withFeedHTML sets the URL where an HTML version of the feed is -- published. withFeedHTML :: FeedSetter URLString -- | withFeedHTML sets the URL where an HTML version of the feed is -- published. withFeedDescription :: FeedSetter Text withFeedPubDate :: FeedSetter Text withFeedLastUpdate :: 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. withFeedDate :: FeedSetter DateString withFeedLogoLink :: URLString -> FeedSetter URLString withFeedLanguage :: FeedSetter Text withFeedCategories :: FeedSetter [(Text, Maybe Text)] withFeedGenerator :: FeedSetter (Text, 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 myTitle' associates a new title, myTitle, with -- a feed item. withItemTitle :: ItemSetter Text -- | 'withItemTitle myLink' associates a new URL, myLink, with a -- feed item. withItemLink :: ItemSetter URLString -- | 'withItemPubDate dt' associates the creation/ publication date -- dt with a feed item. withItemPubDate :: ItemSetter DateString -- | withItemDate is a synonym for withItemPubDate. withItemDate :: ItemSetter DateString -- | 'withItemAuthor auStr' associates new author info with a feed item. withItemAuthor :: ItemSetter Text -- | 'withItemCommentLink url' sets the URL reference to the comment page -- to url. withItemCommentLink :: ItemSetter Text -- | 'withItemEnclosure url mbTy len' sets the URL reference to the comment -- page to url. withItemEnclosure :: Text -> Maybe Text -> ItemSetter (Maybe Integer) -- | 'withItemFeedLink name myFeed' associates the parent feed URL -- myFeed with a feed item. It is labelled as name. withItemFeedLink :: Text -> ItemSetter Text -- | '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. withItemId :: Bool -> ItemSetter Text withItemCategories :: ItemSetter [(Text, Maybe Text)] -- | 'withItemDescription desc' associates a new descriptive string (aka -- summary) with a feed item. withItemDescription :: ItemSetter Text -- | 'withItemRights rightStr' associates the rights information -- rightStr with a feed item. withItemRights :: ItemSetter Text -- | Translating between RSS formats; work in progress. module Text.Feed.Translate translateItemTo :: FeedKind -> Item -> Item withAtomEntry :: (Entry -> Entry) -> Item -> Item withRSSItem :: (RSSItem -> RSSItem) -> Item -> Item withRSS1Item :: (Item -> Item) -> Item -> Item module Text.RSS1.Utils pQNodes :: Name -> Element -> [Element] pNode :: Text -> Element -> Maybe Element pQNode :: Name -> Element -> Maybe Element pLeaf :: Text -> Element -> Maybe Text pQLeaf :: (Text, Maybe Text) -> Text -> Element -> Maybe Text pQLeaf' :: (Text, Text) -> Text -> Element -> Maybe Text pAttr :: (Maybe Text, Maybe Text) -> Text -> Element -> Maybe Text pAttr' :: (Text, Text) -> Text -> Element -> Maybe Text pMany :: (Maybe Text, Maybe Text) -> Text -> (Element -> Maybe a) -> Element -> [a] children :: Element -> [Element] qualName :: (Maybe Text, Maybe Text) -> Text -> Name qualName' :: (Text, Text) -> Text -> Name rss10NS :: Text rdfPrefix :: Text rdfNS :: Text synPrefix :: Text synNS :: Text taxPrefix :: Text taxNS :: Text conPrefix :: Text conNS :: Text dcPrefix :: Text dcNS :: Text rdfName :: Text -> Name rssName :: Text -> Name synName :: Text -> Name known_rss_elts :: [Name] known_syn_elts :: [Name] known_dc_elts :: [Name] known_tax_elts :: [Name] known_con_elts :: [Name] removeKnownElts :: Element -> [Element] removeKnownAttrs :: Element -> [Attr] module Text.RSS1.Import elementToFeed :: Element -> Maybe Feed module Text.RSS1.Export xmlFeed :: Feed -> Element textFeed :: Feed -> Maybe Text -- | Convert from Feeds to XML. module Text.Feed.Export -- | 'xmlFeed f' serializes a Feed document into a conforming XML -- toplevel element. xmlFeed :: Feed -> Element textFeed :: Feed -> Maybe Text textFeedWith :: RenderSettings -> Feed -> Maybe Text -- | Converting from XML to RSS module Text.RSS.Import pNodes :: Text -> [Element] -> [Element] pQNodes :: Name -> [Element] -> [Element] pNode :: Text -> [Element] -> Maybe Element pQNode :: Name -> [Element] -> Maybe Element pLeaf :: Text -> [Element] -> Maybe Text pQLeaf :: Name -> [Element] -> Maybe Text pAttr :: Text -> Element -> Maybe Text pMany :: Text -> (Element -> Maybe a) -> [Element] -> [a] children :: Element -> [Element] qualName :: Text -> Name dcName :: Text -> Name elementToRSS :: Element -> Maybe RSS elementToChannel :: Element -> Maybe RSSChannel elementToImage :: Element -> Maybe RSSImage elementToCategory :: Element -> Maybe RSSCategory elementToCloud :: Element -> Maybe RSSCloud elementToItem :: Element -> Maybe RSSItem elementToSource :: Element -> Maybe RSSSource elementToEnclosure :: Element -> Maybe RSSEnclosure elementToGuid :: Element -> Maybe RSSGuid elementToTextInput :: Element -> Maybe RSSTextInput elementToSkipHours :: Element -> Maybe [Integer] elementToSkipDays :: Element -> Maybe [Text] readInt :: Text -> Maybe Integer readBool :: Text -> Maybe Bool -- | Convert from XML to Feeds. module Text.Feed.Import -- | 'parseFeedFromFile fp' reads in the contents of the file at -- fp; the assumed encoding is UTF-8. parseFeedFromFile :: FilePath -> IO (Maybe Feed) parseFeedString :: String -> Maybe Feed -- | 'parseFeedSource s' tries to parse the source s as one of the -- feed formats. First as Atom, then RSS2 before giving RSS1 a try. -- Nothing is, rather unhelpfully, returned as an indication of -- error. parseFeedSource :: FeedSource s => s -> Maybe Feed class FeedSource s -- | 'readRSS2 elt' tries to derive an RSS2.x, RSS-0.9x feed document from -- the XML element e. readRSS2 :: Element -> Maybe Feed -- | 'readRSS1 elt' tries to derive an RSS1.0 feed document from the XML -- element e. readRSS1 :: Element -> Maybe Feed -- | 'readAtom elt' tries to derive an Atom feed document from the XML -- element e. readAtom :: Element -> Maybe Feed instance Text.Feed.Import.FeedSource Data.ByteString.Lazy.Internal.ByteString instance Text.Feed.Import.FeedSource Data.Text.Internal.Lazy.Text instance Text.Feed.Import.FeedSource GHC.Base.String