Improved feed aggregation module.
Added support to choose either atom or rss for the "/feed" format. Added support for feed format view to feed aggregation. Use proper content type for RSS and ATOM response. For feed aggregation use `?view=feed` or `?view=feed.atom` or `?view=feed.rss` Improved sized feed view. Use site name for recent changes feed title. Better name for node feeds (include the site name). Use current date when a feed aggregation is converted to a new feed, to set the last build date. Fixed category filter per feed location for the feed aggregation module. Fixed authentication module, where a potential case (but not probable) had no response content. Cosmetic and minor changes on messaging module.
This commit is contained in:
@@ -52,6 +52,7 @@ feature -- Access: router
|
||||
do
|
||||
a_router.handle ("/recent_changes/", create {WSF_URI_AGENT_HANDLER}.make (agent handle_recent_changes (a_api, ?, ?)), a_router.methods_head_get)
|
||||
a_router.handle ("/recent_changes/feed", create {WSF_URI_AGENT_HANDLER}.make (agent handle_recent_changes_feed (a_api, ?, ?)), a_router.methods_head_get)
|
||||
a_router.handle ("/recent_changes/feed.{format}", create {WSF_URI_TEMPLATE_AGENT_HANDLER}.make (agent handle_recent_changes_feed (a_api, ?, ?)), a_router.methods_head_get)
|
||||
end
|
||||
|
||||
feature -- Hook
|
||||
@@ -104,6 +105,7 @@ feature -- Hook
|
||||
ch: CMS_RECENT_CHANGE_ITEM
|
||||
l_user: detachable CMS_USER
|
||||
l_feed: FEED
|
||||
l_feed_name: STRING_32
|
||||
l_feed_item: FEED_ITEM
|
||||
lnk: FEED_LINK
|
||||
nb: NATURAL_32
|
||||
@@ -127,7 +129,9 @@ feature -- Hook
|
||||
end
|
||||
end
|
||||
end
|
||||
create l_feed.make ("CMS Recent changes")
|
||||
create l_feed_name.make_from_string (a_response.api.setup.site_name)
|
||||
l_feed_name.append_string ({STRING_32} " : recent changes")
|
||||
create l_feed.make (l_feed_name)
|
||||
l_feed.set_date (create {DATE_TIME}.make_now_utc)
|
||||
nb := a_size
|
||||
across
|
||||
@@ -197,10 +201,22 @@ feature -- Handler
|
||||
l_size := 25
|
||||
end
|
||||
|
||||
create mesg.make ({HTTP_STATUS_CODE}.ok)
|
||||
|
||||
create {GENERIC_VIEW_CMS_RESPONSE} r.make (req, res, api)
|
||||
create l_content.make (1024)
|
||||
recent_changes_feed (r, l_size, l_filter_source).accept (create {ATOM_FEED_GENERATOR}.make (l_content))
|
||||
create mesg.make ({HTTP_STATUS_CODE}.ok)
|
||||
if
|
||||
attached {WSF_STRING} req.path_parameter ("format") as p_format and then
|
||||
p_format.same_string ("rss")
|
||||
then
|
||||
mesg.header.put_content_type ("application/rss+xml")
|
||||
|
||||
recent_changes_feed (r, l_size, l_filter_source).accept (create {RSS_2_FEED_GENERATOR}.make (l_content))
|
||||
else
|
||||
mesg.header.put_content_type ("application/atom+xml")
|
||||
|
||||
recent_changes_feed (r, l_size, l_filter_source).accept (create {ATOM_FEED_GENERATOR}.make (l_content))
|
||||
end
|
||||
mesg.set_payload (l_content)
|
||||
res.send (mesg)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user