Compare commits
1 commit
master
...
rss-with-c
Author | SHA1 | Date | |
---|---|---|---|
4aee13abb5 |
|
@ -153,6 +153,7 @@ noteToRssEntry usernamep (Entity entryId entry) =
|
|||
, feedEntryTitle = (noteTitle entry)
|
||||
, feedEntryContent = (toHtml (noteText entry))
|
||||
, feedEntryEnclosure = Nothing
|
||||
, feedEntryCategories = []
|
||||
}
|
||||
|
||||
getNotesFeedR :: UserNameP -> Handler RepRss
|
||||
|
|
|
@ -7,6 +7,7 @@ import Import
|
|||
import Text.Blaze.Html (toHtml)
|
||||
import qualified Text.Blaze.Html5 as H
|
||||
import Yesod.RssFeed
|
||||
import qualified Database.Esqueleto as E
|
||||
|
||||
getUserR :: UserNameP -> Handler Html
|
||||
getUserR uname@(UserNameP name) = do
|
||||
|
@ -65,15 +66,23 @@ _getUser unamep@(UserNameP uname) sharedp' filterp' (TagsP pathtags) = do
|
|||
PS['Main'].renderBookmarks('##{rawJS renderEl}')(app.dat.bmarks)();
|
||||
|]
|
||||
|
||||
bookmarkToRssEntry :: Entity Bookmark -> FeedEntry Text
|
||||
bookmarkToRssEntry (Entity entryId entry) =
|
||||
bookmarkToRssEntry :: (Entity Bookmark,[Text]) -> FeedEntry Text
|
||||
bookmarkToRssEntry ((Entity entryId entry), tags) =
|
||||
FeedEntry { feedEntryLink = (bookmarkHref entry)
|
||||
, feedEntryUpdated = (bookmarkTime entry)
|
||||
, feedEntryTitle = (bookmarkDescription entry)
|
||||
, feedEntryContent = (toHtml (bookmarkExtended entry))
|
||||
, feedEntryCategories = map (EntryCategory Nothing Nothing) tags
|
||||
, feedEntryEnclosure = Nothing
|
||||
}
|
||||
|
||||
toBookmarkWithTagsList :: [Entity Bookmark] -> [Entity BookmarkTag] -> [(Entity Bookmark, [Text])]
|
||||
toBookmarkWithTagsList bs as = do
|
||||
b <- bs
|
||||
let bid = E.entityKey b
|
||||
let btags = filter ((==) bid . bookmarkTagBookmarkId . E.entityVal) as
|
||||
pure $ (b, map (bookmarkTagTag . E.entityVal) btags)
|
||||
|
||||
getUserFeedR :: UserNameP -> Handler RepRss
|
||||
getUserFeedR unamep@(UserNameP uname) = do
|
||||
mauthuname <- maybeAuthUsername
|
||||
|
@ -83,14 +92,17 @@ getUserFeedR unamep@(UserNameP uname) = do
|
|||
queryp = "query" :: Text
|
||||
isowner = maybe False (== uname) mauthuname
|
||||
mquery <- lookupGetParam queryp
|
||||
(_, bmarks) <-
|
||||
(_, bmarks, alltags) <-
|
||||
runDB $
|
||||
do Entity userId user <- getBy404 (UniqueUserName uname)
|
||||
when (not isowner && userPrivacyLock user)
|
||||
(redirect (AuthR LoginR))
|
||||
bookmarksQuery userId SharedPublic FilterAll [] mquery limit page
|
||||
(cnt, bm) <- bookmarksQuery userId SharedPublic FilterAll [] mquery limit page
|
||||
tg <- tagsQuery bm
|
||||
pure (cnt, bm, tg)
|
||||
let (descr :: Html) = toHtml $ H.text ("Bookmarks saved by " <> uname)
|
||||
entries = map bookmarkToRssEntry bmarks
|
||||
entriesWithTags = toBookmarkWithTagsList bmarks alltags
|
||||
entries = map bookmarkToRssEntry entriesWithTags
|
||||
updated <- case maximumMay (map feedEntryUpdated entries) of
|
||||
Nothing -> liftIO $ getCurrentTime
|
||||
Just m -> return m
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
resolver: lts-14.3
|
||||
# allow-newer: true
|
||||
extra-deps:
|
||||
packages:
|
||||
- '.'
|
||||
extra-deps:
|
||||
- ekg-0.4.0.15
|
||||
- ekg-json-0.1.0.6
|
||||
- monad-metrics-0.2.1.4
|
||||
- wai-middleware-metrics-0.2.4
|
||||
packages:
|
||||
- '.'
|
||||
- yesod-newsfeed-1.7.0.0
|
||||
|
|
|
@ -32,6 +32,13 @@ packages:
|
|||
sha256: 99366b831109417cd8e739fb45e9fd214cb79f28a507f8154e5528120042d0ac
|
||||
original:
|
||||
hackage: wai-middleware-metrics-0.2.4
|
||||
- completed:
|
||||
hackage: yesod-newsfeed-1.7.0.0@sha256:ba49f9af47fe96c521ed889bf041c559b4bddb60a81f385449f7557f8f4aaef2,1345
|
||||
pantry-tree:
|
||||
size: 488
|
||||
sha256: 96027436cc6dc07bca3f691f2d17a5b3993e980f73076c7b1b4d9c5c3ac5cb86
|
||||
original:
|
||||
hackage: yesod-newsfeed-1.7.0.0
|
||||
snapshots:
|
||||
- completed:
|
||||
size: 523878
|
||||
|
|
Loading…
Reference in a new issue