packages feed

yesod-newsfeed 1.4.0.1 → 1.5

raw patch · 5 files changed

+49/−3 lines, 5 filesnew-uploader

Files

ChangeLog.md view
@@ -0,0 +1,23 @@+# Changelog++## 1.5++### Yesod/FeedTypes.hs++* added `feedLogo` field to `Feed` type as `Maybe (url, Text)`. Should this field result in `Nothing`, nothing will be added to the feed.+	* `url`: Defines the URL to the logi image+	* `Text`: Is the description of the logo image. Will only be used for RSS feeds+* added `feedEntryEnclosure` field to `FeedEntry` type as `Maybe (url, Int, Text)`. Should this field result in `Nothing`, no data will be added to the feed entry.+	* `url`: Defines the URL to the enclosed data+	* `Int`: Is the content size in bytes. RSS requires this.+	* `Text`: Is the MIME-type of the enclosed file. RSS requires this++### Yesod/AtomFeed.hs++* modified `template` function to append an `<logo>url</logo>` tag at the end of the feed, when the provided `feedLogo` is not `Nothing`. This might look awkward, since it will be appended *after* the entries.+* modified `entryTemplate` to append an `<link rel="enclosure" href=url>` to the feed entry.++### Yesod/RssFeed.hs++* modified `template` function to append an `<image>` tag with its three required components `<url>`, `<title>` and `<link>`. `<url>` and `<title>` will be filled from `feedLogo`, `<link>` will be `feedLinkHome`.+* modified `entryTemplate` function to append an `<enclosure type=mime length=length url=url>` to the feed entry
Yesod/AtomFeed.hs view
@@ -70,15 +70,23 @@         : Element "id" Map.empty [NodeContent $ render feedLinkHome]         : Element "author" Map.empty [NodeElement $ Element "name" Map.empty [NodeContent feedAuthor]]         : map (flip entryTemplate render) feedEntries+        +++        case feedLogo of+            Nothing -> []+            Just (route, _) -> [Element "logo" Map.empty [NodeContent $ render route]]  entryTemplate :: FeedEntry url -> (url -> Text) -> Element-entryTemplate FeedEntry {..} render = Element "entry" Map.empty $ map NodeElement+entryTemplate FeedEntry {..} render = Element "entry" Map.empty $ map NodeElement $     [ Element "id" Map.empty [NodeContent $ render feedEntryLink]     , Element "link" (Map.singleton "href" $ render feedEntryLink) []     , Element "updated" Map.empty [NodeContent $ formatW3 feedEntryUpdated]     , Element "title" Map.empty [NodeContent feedEntryTitle]     , Element "content" (Map.singleton "type" "html") [NodeContent $ toStrict $ renderHtml feedEntryContent]     ]+    +++    case feedEntryEnclosure of+        Nothing -> []+        Just (route, _, _) -> [Element "link" (Map.fromList [("rel", "enclosure"), ("href", render route)]) []]  -- | Generates a link tag in the head of a widget. atomLink :: MonadWidget m
Yesod/FeedTypes.hs view
@@ -23,6 +23,7 @@     , feedLanguage    :: Text      , feedUpdated     :: UTCTime+    , feedLogo        :: Maybe (url, Text)     , feedEntries     :: [FeedEntry url]     } @@ -32,4 +33,5 @@     , feedEntryUpdated :: UTCTime     , feedEntryTitle   :: Text     , feedEntryContent :: Html+    , feedEntryEnclosure :: Maybe (url, Int, Text)     }
Yesod/RssFeed.hs view
@@ -66,15 +66,28 @@         : Element "lastBuildDate" Map.empty [NodeContent $ formatRFC822 feedUpdated]         : Element "language" Map.empty [NodeContent feedLanguage]         : map (flip entryTemplate render) feedEntries+        +++        case feedLogo of+            Nothing -> []+            Just (route, desc) -> [Element "image" Map.empty +                [ NodeElement $ Element "url" Map.empty [NodeContent $ render route]+                , NodeElement $ Element "title" Map.empty [NodeContent desc]+                , NodeElement $ Element "link" Map.empty [NodeContent $ render feedLinkHome]+                ]+                ]  entryTemplate :: FeedEntry url -> (url -> Text) -> Element-entryTemplate FeedEntry {..} render = Element "item" Map.empty $ map NodeElement+entryTemplate FeedEntry {..} render = Element "item" Map.empty $ map NodeElement $     [ Element "title" Map.empty [NodeContent feedEntryTitle]     , Element "link" Map.empty [NodeContent $ render feedEntryLink]     , Element "guid" Map.empty [NodeContent $ render feedEntryLink]     , Element "pubDate" Map.empty [NodeContent $ formatRFC822 feedEntryUpdated]     , Element "description" Map.empty [NodeContent $ toStrict $ renderHtml feedEntryContent]     ]+    +++    case feedEntryEnclosure of+        Nothing -> []+        Just (route, length, mime) -> [Element "enclosure" (Map.fromList [("type", mime), ("length", pack $ show length), ("url", render route)]) []]  -- | Generates a link tag in the head of a widget. rssLink :: MonadWidget m
yesod-newsfeed.cabal view
@@ -1,5 +1,5 @@ name:            yesod-newsfeed-version:         1.4.0.1+version:         1.5 license:         MIT license-file:    LICENSE author:          Michael Snoyman, Patrick Brisbin