-- 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. @package feed @version 0.3.2 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 -> [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 linkOther :: Link -> [Element] data TextContent TextString :: String -> TextContent HTMLString :: String -> TextContent XHTMLString :: Element -> TextContent 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 InReplyTotal instance Show InReplyTo instance Show Person instance Show Source instance Show TextContent instance Show Link instance Eq Generator instance Show Generator instance Show Category instance Show EntryContent instance Show Entry instance Show Feed -- | Description: 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 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) 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.) 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 -- | Description: Representing the DublinCore metadata elements in Haskell. -- The Dublin Core Metadata Element Set. See: -- http://dublincore.org/ module Text.DublinCore.Types -- | A DCItem 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.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 rss10NS :: Maybe String rssPrefix :: Maybe String rdfNS :: Maybe String rdfPrefix :: Maybe String synNS :: Maybe String synPrefix :: Maybe String taxNS :: Maybe String taxPrefix :: Maybe String conNS :: Maybe String conPrefix :: Maybe String dcNS :: Maybe String dcPrefix :: 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.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 Eq ContentInfo instance Show ContentInfo instance Eq UpdatePeriod instance Show UpdatePeriod instance Show TaxonomyTopic instance Show TextInputInfo instance Show Item instance Show Image instance Show Channel instance Show Feed module Text.RSS1.Import elementToFeed :: Element -> Maybe Feed module Text.RSS1.Export xmlFeed :: Feed -> Element -- | Description: 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 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 -> Integer -> String -> [Attr] -> RSSEnclosure rssEnclosureURL :: RSSEnclosure -> URLString rssEnclosureLength :: RSSEnclosure -> 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 -> 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 RSSTextInput instance Show RSSCloud instance Show RSSImage instance Show RSSGuid instance Show RSSCategory instance Show RSSEnclosure instance Show RSSSource instance Show RSSItem instance Show RSSChannel instance Show RSS -- | Description: Converting from XML to RSS module Text.RSS.Import pNodes :: String -> [Element] -> [Element] pNode :: String -> [Element] -> Maybe Element pLeaf :: String -> [Element] -> Maybe String pAttr :: String -> Element -> Maybe String pMany :: String -> (Element -> Maybe a) -> [Element] -> [a] children :: Element -> [Element] qualName :: 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 Eq FeedKind instance Show FeedKind instance Show Item instance Show Feed -- | Description: Convert from XML to Feeds. module Text.Feed.Import parseFeedFromFile :: FilePath -> IO Feed parseFeedString :: String -> Maybe Feed -- | Description: Convert from Feeds to XML. module Text.Feed.Export xmlFeed :: Feed -> Element module Text.Feed.Query feedItems :: Feed -> [Item] type FeedGetter a = Feed -> Maybe a getFeedTitle :: Feed -> String getFeedAuthor :: Feed -> (Maybe 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 :: ItemGetter DateString getItemDate :: ItemGetter DateString getItemAuthor :: ItemGetter String getItemCommentLink :: ItemGetter URLString getItemEnclosure :: ItemGetter (String, Maybe String, Integer) getItemFeedLink :: ItemGetter URLString getItemId :: ItemGetter (Bool, String) getItemCategories :: Item -> [String] getItemRights :: 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 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 module Text.Feed.Translate translateItemTo :: FeedKind -> Item -> Item withAtomEntry :: (Entry -> Entry) -> Item -> Item withRSSItem :: (RSSItem -> RSSItem) -> Item -> Item withRSS1Item :: (Item -> Item) -> Item -> Item