-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds. -- @package feed @version 0.3.9.3 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 Eq LinkRelation instance Show LinkRelation module Text.Atom.Feed type URI = String type NCName = String type Date = String type MediaType = String data Feed Feed :: String -> TextContent -> Date -> [Person] -> [Category] -> [Person] -> Maybe Generator -> Maybe URI -> [Link] -> Maybe URI -> Maybe TextContent -> Maybe TextContent -> [Entry] -> [Attr] -> [Element] -> Feed feedId :: Feed -> String 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 :: String -> 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 -> String 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 :: String -> EntryContent HTMLContent :: String -> EntryContent XHTMLContent :: Element -> EntryContent MixedContent :: (Maybe String) -> [Content] -> EntryContent ExternalContent :: (Maybe MediaType) -> URI -> EntryContent data Category Category :: String -> Maybe URI -> Maybe String -> [Element] -> Category -- | the tag/term of the category. catTerm :: Category -> String -- | optional URL for identifying the categorization scheme. catScheme :: Category -> Maybe URI -- | human-readable label of the category catLabel :: Category -> Maybe String -- | unknown elements, for extensibility. catOther :: Category -> [Element] data Generator Generator :: Maybe URI -> Maybe String -> String -> Generator genURI :: Generator -> Maybe URI genVersion :: Generator -> Maybe String genText :: Generator -> String data Link Link :: URI -> Maybe (Either NCName URI) -> Maybe MediaType -> Maybe String -> Maybe String -> Maybe String -> [Attr] -> [Element] -> Link linkHref :: Link -> URI linkRel :: Link -> Maybe (Either NCName URI) linkType :: Link -> Maybe MediaType linkHrefLang :: Link -> Maybe String linkTitle :: Link -> Maybe String linkLength :: Link -> Maybe String linkAttrs :: Link -> [Attr] linkOther :: Link -> [Element] data TextContent TextString :: String -> TextContent HTMLString :: String -> TextContent XHTMLString :: Element -> TextContent txtToString :: TextContent -> String data Source Source :: [Person] -> [Category] -> Maybe Generator -> Maybe URI -> Maybe String -> [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 String 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 :: String -> Maybe URI -> Maybe String -> [Element] -> Person personName :: Person -> String personURI :: Person -> Maybe URI personEmail :: Person -> Maybe String personOther :: Person -> [Element] data InReplyTo InReplyTo :: URI -> Maybe URI -> Maybe MediaType -> Maybe URI -> [Attr] -> [Content] -> InReplyTo replyToRef :: InReplyTo -> URI replyToHRef :: InReplyTo -> Maybe URI replyToType :: InReplyTo -> Maybe MediaType replyToSource :: InReplyTo -> Maybe URI replyToOther :: InReplyTo -> [Attr] replyToContent :: InReplyTo -> [Content] data InReplyTotal InReplyTotal :: Integer -> [Attr] -> InReplyTotal replyToTotal :: InReplyTotal -> Integer replyToTotalOther :: InReplyTotal -> [Attr] newCategory :: String -> Category nullFeed :: String -> TextContent -> Date -> Feed nullEntry :: String -> TextContent -> Date -> Entry nullGenerator :: String -> Generator nullLink :: URI -> Link nullSource :: Source nullPerson :: Person instance Show EntryContent instance Show Category instance Eq Generator instance Show Generator instance Show Link instance Show TextContent instance Show Person instance Show Source instance Show InReplyTo instance Show InReplyTotal instance Show Entry instance Show Feed -- | Description: Convert from Atom to XML -- -- Convert from Atom to XML module Text.Atom.Feed.Export atom_prefix :: Maybe String atom_thr_prefix :: Maybe String atomNS :: String atomThreadNS :: String xmlns_atom :: Attr xmlns_atom_thread :: Attr atomName :: String -> QName atomAttr :: String -> String -> Attr atomNode :: String -> [Content] -> Element atomLeaf :: String -> String -> Element atomThreadName :: String -> QName atomThreadAttr :: String -> String -> Attr atomThreadNode :: String -> [Content] -> Element atomThreadLeaf :: String -> String -> Element xmlFeed :: Feed -> Element 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 -> [Content] xmlInReplyTo :: InReplyTo -> Element xmlInReplyTotal :: InReplyTotal -> Element xmlId :: String -> 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 :: String -> TextContent -> Element mb :: (a -> b) -> Maybe a -> [b] -- | Description: Convert from XML to Atom -- -- Convert from XML to Atom module Text.Atom.Feed.Import pNodes :: String -> [Element] -> [Element] pQNodes :: QName -> [Element] -> [Element] pNode :: String -> [Element] -> Maybe Element pQNode :: QName -> [Element] -> Maybe Element pLeaf :: String -> [Element] -> Maybe String pQLeaf :: QName -> [Element] -> Maybe String pAttr :: String -> Element -> Maybe String pAttrs :: String -> Element -> [String] pQAttr :: QName -> Element -> Maybe String pMany :: String -> (Element -> Maybe a) -> [Element] -> [a] children :: Element -> [Element] elementFeed :: Element -> Maybe Feed pTextContent :: String -> [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.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 Eq a => Eq (VTree a) instance Show a => Show (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 :: String -> Accept acceptType :: Accept -> String instance Show Categories -- | Description: Serializing APP types (as XML.) -- -- Serializing Atom Publishing Protocol types as XML. module Text.Atom.Pub.Export showServiceDoc :: Service -> String mkQName :: Maybe String -> String -> QName mkElem :: QName -> [Attr] -> [Element] -> Element mkLeaf :: QName -> [Attr] -> String -> Element mkAttr :: String -> String -> Attr xmlns_app :: Attr appNS :: String appName :: String -> QName 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 -> String -> DCItem dcElt :: DCItem -> DCInfo dcText :: DCItem -> String -- | 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 :: String -> DCInfo infoToTag :: DCInfo -> String dc_element_names :: [String] instance Eq DCInfo instance Show DCInfo instance Eq DCItem instance Show DCItem module Text.RSS1.Syntax type URIString = String type TitleString = String type TimeString = String type TextString = String data Feed Feed :: String -> Channel -> Maybe Image -> [Item] -> Maybe TextInputInfo -> [TaxonomyTopic] -> [Element] -> [Attr] -> Feed feedVersion :: Feed -> String 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 String -> Maybe String -> [URIString] -> [DCItem] -> [Element] -> TaxonomyTopic taxonomyURI :: TaxonomyTopic -> URIString taxonomyLink :: TaxonomyTopic -> URIString taxonomyTitle :: TaxonomyTopic -> Maybe String taxonomyDesc :: TaxonomyTopic -> Maybe String 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 String -> ContentInfo contentURI :: ContentInfo -> Maybe URIString contentFormat :: ContentInfo -> Maybe URIString contentEncoding :: ContentInfo -> Maybe URIString contentValue :: ContentInfo -> Maybe String nullFeed :: URIString -> TitleString -> Feed nullChannel :: URIString -> TitleString -> Channel nullImage :: URIString -> String -> URIString -> Image nullItem :: URIString -> TextString -> URIString -> Item nullTextInputInfo :: URIString -> TextString -> TextString -> URIString -> TextInputInfo nullTaxonomyTopic :: URIString -> URIString -> TaxonomyTopic nullContentInfo :: ContentInfo instance Show Image instance Show TextInputInfo instance Show TaxonomyTopic instance Eq UpdatePeriod instance Show UpdatePeriod instance Eq ContentInfo instance Show ContentInfo instance Show Item instance Show Channel instance Show Feed module Text.RSS1.Utils pQNodes :: QName -> Element -> [Element] pNode :: String -> Element -> Maybe Element pQNode :: QName -> Element -> Maybe Element pLeaf :: String -> Element -> Maybe String pQLeaf :: (Maybe String, Maybe String) -> String -> Element -> Maybe String pAttr :: (Maybe String, Maybe String) -> String -> Element -> Maybe String pMany :: (Maybe String, Maybe String) -> String -> (Element -> Maybe a) -> Element -> [a] children :: Element -> [Element] qualName :: (Maybe String, Maybe String) -> String -> QName rssPrefix :: Maybe String rss10NS :: Maybe String rdfPrefix :: Maybe String rdfNS :: Maybe String synPrefix :: Maybe String synNS :: Maybe String taxPrefix :: Maybe String taxNS :: Maybe String conPrefix :: Maybe String conNS :: Maybe String dcPrefix :: Maybe String dcNS :: Maybe String rdfName :: String -> QName rssName :: String -> QName synName :: String -> QName known_rss_elts :: [QName] known_syn_elts :: [QName] known_dc_elts :: [QName] known_tax_elts :: [QName] known_con_elts :: [QName] removeKnownElts :: Element -> [Element] removeKnownAttrs :: Element -> [Attr] module Text.RSS1.Import elementToFeed :: Element -> Maybe Feed module Text.RSS1.Export xmlFeed :: Feed -> Element -- | 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 :: String -> [Attr] -> RSSChannel -> [Element] -> RSS rssVersion :: RSS -> String rssAttrs :: RSS -> [Attr] rssChannel :: RSS -> RSSChannel rssOther :: RSS -> [Element] type URLString = String -- | RFC 822 conforming. type DateString = String data RSSChannel RSSChannel :: String -> URLString -> String -> [RSSItem] -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe DateString -> Maybe DateString -> [RSSCategory] -> Maybe String -> Maybe URLString -> Maybe RSSCloud -> Maybe Integer -> Maybe RSSImage -> Maybe String -> Maybe RSSTextInput -> Maybe [Integer] -> Maybe [String] -> [Element] -> RSSChannel rssTitle :: RSSChannel -> String rssLink :: RSSChannel -> URLString rssDescription :: RSSChannel -> String rssItems :: RSSChannel -> [RSSItem] rssLanguage :: RSSChannel -> Maybe String rssCopyright :: RSSChannel -> Maybe String rssEditor :: RSSChannel -> Maybe String rssWebMaster :: RSSChannel -> Maybe String -- | rfc 822 conforming. rssPubDate :: RSSChannel -> Maybe DateString -- | rfc 822 conforming. rssLastUpdate :: RSSChannel -> Maybe DateString rssCategories :: RSSChannel -> [RSSCategory] rssGenerator :: RSSChannel -> Maybe String rssDocs :: RSSChannel -> Maybe URLString rssCloud :: RSSChannel -> Maybe RSSCloud rssTTL :: RSSChannel -> Maybe Integer rssImage :: RSSChannel -> Maybe RSSImage rssRating :: RSSChannel -> Maybe String rssTextInput :: RSSChannel -> Maybe RSSTextInput rssSkipHours :: RSSChannel -> Maybe [Integer] rssSkipDays :: RSSChannel -> Maybe [String] rssChannelOther :: RSSChannel -> [Element] data RSSItem RSSItem :: Maybe String -> Maybe URLString -> Maybe String -> Maybe String -> [RSSCategory] -> Maybe URLString -> Maybe RSSEnclosure -> Maybe RSSGuid -> Maybe DateString -> Maybe RSSSource -> [Attr] -> [Element] -> RSSItem rssItemTitle :: RSSItem -> Maybe String rssItemLink :: RSSItem -> Maybe URLString -- | if not present, the title is. (per spec, at least.) rssItemDescription :: RSSItem -> Maybe String rssItemAuthor :: RSSItem -> Maybe String rssItemCategories :: RSSItem -> [RSSCategory] rssItemComments :: RSSItem -> Maybe URLString 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] -> String -> RSSSource rssSourceURL :: RSSSource -> URLString rssSourceAttrs :: RSSSource -> [Attr] rssSourceTitle :: RSSSource -> String data RSSEnclosure RSSEnclosure :: URLString -> Maybe Integer -> String -> [Attr] -> RSSEnclosure rssEnclosureURL :: RSSEnclosure -> URLString rssEnclosureLength :: RSSEnclosure -> Maybe Integer rssEnclosureType :: RSSEnclosure -> String rssEnclosureAttrs :: RSSEnclosure -> [Attr] data RSSCategory RSSCategory :: Maybe String -> [Attr] -> String -> RSSCategory rssCategoryDomain :: RSSCategory -> Maybe String rssCategoryAttrs :: RSSCategory -> [Attr] rssCategoryValue :: RSSCategory -> String data RSSGuid RSSGuid :: Maybe Bool -> [Attr] -> String -> RSSGuid rssGuidPermanentURL :: RSSGuid -> Maybe Bool rssGuidAttrs :: RSSGuid -> [Attr] rssGuidValue :: RSSGuid -> String data RSSImage RSSImage :: URLString -> String -> URLString -> Maybe Integer -> Maybe Integer -> Maybe String -> [Element] -> RSSImage rssImageURL :: RSSImage -> URLString rssImageTitle :: RSSImage -> String rssImageLink :: RSSImage -> URLString rssImageWidth :: RSSImage -> Maybe Integer rssImageHeight :: RSSImage -> Maybe Integer rssImageDesc :: RSSImage -> Maybe String rssImageOther :: RSSImage -> [Element] data RSSCloud RSSCloud :: Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> [Attr] -> RSSCloud rssCloudDomain :: RSSCloud -> Maybe String rssCloudPort :: RSSCloud -> Maybe String rssCloudPath :: RSSCloud -> Maybe String rssCloudRegister :: RSSCloud -> Maybe String rssCloudProtocol :: RSSCloud -> Maybe String rssCloudAttrs :: RSSCloud -> [Attr] data RSSTextInput RSSTextInput :: String -> String -> String -> URLString -> [Attr] -> [Element] -> RSSTextInput rssTextInputTitle :: RSSTextInput -> String rssTextInputDesc :: RSSTextInput -> String rssTextInputName :: RSSTextInput -> String rssTextInputLink :: RSSTextInput -> URLString rssTextInputAttrs :: RSSTextInput -> [Attr] rssTextInputOther :: RSSTextInput -> [Element] nullRSS :: String -> URLString -> RSS nullChannel :: String -> URLString -> RSSChannel nullItem :: String -> RSSItem nullSource :: URLString -> String -> RSSSource nullEnclosure :: URLString -> Maybe Integer -> String -> RSSEnclosure newCategory :: String -> RSSCategory nullGuid :: String -> RSSGuid nullPermaGuid :: String -> RSSGuid nullImage :: URLString -> String -> URLString -> RSSImage nullCloud :: RSSCloud nullTextInput :: String -> String -> URLString -> RSSTextInput instance Show RSSSource instance Show RSSEnclosure instance Show RSSCategory instance Show RSSGuid instance Show RSSItem instance Show RSSImage instance Show RSSCloud instance Show RSSTextInput instance Show RSSChannel instance Show RSS -- | Converting from XML to RSS module Text.RSS.Import pNodes :: String -> [Element] -> [Element] pQNodes :: QName -> [Element] -> [Element] pNode :: String -> [Element] -> Maybe Element pQNode :: QName -> [Element] -> Maybe Element pLeaf :: String -> [Element] -> Maybe String pQLeaf :: QName -> [Element] -> Maybe String pAttr :: String -> Element -> Maybe String pMany :: String -> (Element -> Maybe a) -> [Element] -> [a] children :: Element -> [Element] qualName :: String -> QName dcName :: String -> QName 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 [String] readInt :: String -> Maybe Integer readBool :: String -> Maybe Bool -- | Description: Convert from RSS to XML module Text.RSS.Export qualNode :: String -> [Content] -> Element qualName :: String -> QName xmlRSS :: RSS -> Element 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 :: [String] -> Element xmlAttr :: String -> String -> Attr xmlLeaf :: String -> String -> Element mb :: (a -> b) -> Maybe a -> [b] 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 String) -> FeedKind RDFKind :: (Maybe String) -> FeedKind instance Show Feed instance Show Item instance Eq FeedKind instance Show FeedKind -- | 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 Feed -- | 'parseFeedString str' tries to parse the string str 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. parseFeedString :: String -> Maybe Feed -- | '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 -- | Convert from Feeds to XML. module Text.Feed.Export -- | 'xmlFeed f' serializes a Feed document into a conforming XML -- toplevel element. xmlFeed :: Feed -> Element module Text.Feed.Util -- | toFeedDate translates a calendar time into the format -- expected by the feed kind. toFeedDateString :: FeedKind -> ClockTime -> String module Text.Feed.Query feedItems :: Feed -> [Item] type FeedGetter a = Feed -> Maybe a getFeedTitle :: Feed -> String getFeedAuthor :: FeedGetter String getFeedHome :: FeedGetter URLString getFeedHTML :: FeedGetter URLString getFeedDescription :: FeedGetter String getFeedPubDate :: FeedGetter DateString getFeedLastUpdate :: FeedGetter (String) getFeedDate :: FeedGetter DateString getFeedLogoLink :: FeedGetter URLString getFeedLanguage :: FeedGetter String getFeedCategories :: Feed -> [(String, Maybe String)] getFeedGenerator :: FeedGetter String getFeedItems :: Feed -> [Item] type ItemGetter a = Item -> Maybe a getItemTitle :: ItemGetter String getItemLink :: ItemGetter String -- | '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 String getItemCommentLink :: ItemGetter URLString getItemEnclosure :: ItemGetter (String, Maybe String, Maybe Integer) getItemFeedLink :: ItemGetter URLString getItemId :: ItemGetter (Bool, String) getItemCategories :: Item -> [String] getItemRights :: ItemGetter String getItemSummary :: ItemGetter String getItemDescription :: ItemGetter String -- | Description: Module for an abstraction layer between different kinds -- of feeds. module Text.Feed.Constructor -- | The kinds of feed documents supported. data FeedKind AtomKind :: FeedKind RSSKind :: (Maybe String) -> FeedKind RDFKind :: (Maybe String) -> 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 String 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 String withFeedPubDate :: FeedSetter String 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 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 myTitle' associates a new title, myTitle, with -- a feed item. withItemTitle :: ItemSetter String -- | '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 String -- | 'withItemCommentLink url' sets the URL reference to the comment page -- to url. withItemCommentLink :: ItemSetter String -- | 'withItemEnclosure url mbTy len' sets the URL reference to the comment -- page to url. withItemEnclosure :: String -> Maybe String -> ItemSetter (Maybe Integer) -- | 'withItemFeedLink name myFeed' associates the parent feed URL -- myFeed with a feed item. It is labelled as name. withItemFeedLink :: String -> 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. withItemId :: Bool -> ItemSetter String withItemCategories :: ItemSetter [(String, Maybe String)] -- | 'withItemDescription desc' associates a new descriptive string (aka -- summary) with a feed item. withItemDescription :: ItemSetter String -- | 'withItemRights rightStr' associates the rights information -- rightStr with a feed item. withItemRights :: ItemSetter String -- | 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