Skip to content

Commit d110cbe

Browse files
authored
Merge pull request #733 from wiz/master
Set RSS channel timestamps to match last updated item
2 parents 5e7a033 + a383569 commit d110cbe

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

Distribution/Server/Pages/Recent.hs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ import Data.Time.Format
3535
( formatTime )
3636
import Data.Time.Locale.Compat
3737
( defaultTimeLocale )
38+
import Data.Maybe
39+
( listToMaybe)
3840

3941
-- | Takes a list of package info, in reverse order by timestamp.
4042
--
@@ -119,35 +121,36 @@ recentFeed users hostURI now pkgs = RSS
119121
"Recent additions"
120122
(hostURI { uriPath = recentAdditionsURL})
121123
desc
122-
(channel now)
124+
(channel updated)
123125
(map (releaseItem users hostURI) pkgList)
124126
where
125127
desc = "The 20 most recent additions to Hackage (or last 48 hours worth, whichever is greater), the Haskell package database."
126128
twoDaysAgo = addUTCTime (negate $ 60 * 60 * 48) now
127129
pkgListTwoDays = takeWhile (\p -> pkgLatestUploadTime p > twoDaysAgo) pkgs
128130
pkgList = if (length pkgListTwoDays > 20) then pkgListTwoDays else take 20 pkgs
129-
131+
updated = maybe now (fst . pkgOriginalUploadInfo) (listToMaybe pkgList)
130132

131133
recentRevisionsFeed :: Users -> URI -> UTCTime -> [PkgInfo] -> RSS
132134
recentRevisionsFeed users hostURI now pkgs = RSS
133135
"Recent revisions"
134136
(hostURI { uriPath = recentRevisionsURL})
135137
desc
136-
(channel now)
138+
(channel updated)
137139
(map (revisionItem users hostURI) pkgList)
138140
where
139141
desc = "The 40 most recent revisions to cabal metadata in Hackage (or last 48 hours worth, whichever is greater), the Haskell package database."
140142
twoDaysAgo = addUTCTime (negate $ 60 * 60 * 48) now
141143
pkgListTwoDays = takeWhile (\p -> pkgLatestUploadTime p > twoDaysAgo) pkgs
142144
pkgList = if (length pkgListTwoDays > 40) then pkgListTwoDays else take 40 pkgs
145+
updated = maybe now (fst . pkgOriginalUploadInfo) (listToMaybe pkgList)
143146

144147
channel :: UTCTime -> [RSS.ChannelElem]
145-
channel now =
148+
channel updated =
146149
[ RSS.Language "en"
147150
, RSS.ManagingEditor email
148151
, RSS.WebMaster email
149-
, RSS.ChannelPubDate now
150-
, RSS.LastBuildDate now
152+
, RSS.ChannelPubDate updated
153+
, RSS.LastBuildDate updated
151154
, RSS.Generator "rss-feed"
152155
]
153156
where

0 commit comments

Comments
 (0)