#23854: Add an RSS feed for https://metrics.torproject.org/news.html
-----------------------------+--------------------------
 Reporter:  cypherpunks      |          Owner:  irl
     Type:  enhancement      |         Status:  accepted
 Priority:  Medium           |      Milestone:
Component:  Metrics/Website  |        Version:
 Severity:  Normal           |     Resolution:
 Keywords:                   |  Actual Points:
Parent ID:                   |         Points:
 Reviewer:                   |        Sponsor:
-----------------------------+--------------------------

Comment (by irl):

 Done a little hacking on this, I think my plan looks like:

 * Add a formatAsFeedItem method to `org.torproject.metrics.web.News`
 * Point the resource `/feed.xml` at `NewsServlet`
 * Add a JSP named `feed.jsp`, which is used instead of `news.jsp` to
 render the feed version
 * Implement only ATOM (RFC4287), not RSS, as ATOM has far better support
 for internationalisation that may be used later, where internationalising
 RSS may hold back that work

 This would be the way to do it to match the way the news page is currently
 built. I do wonder though if perhaps we should instead refactor the way
 the news page works:

 * Remove the formatAsTableRow method from
 `org.torproject.metrics.web.News`
 * Make getters for `org.torproject.metrics.news.News` public
 * Re-implement formatAsTableRow using JSTL in `news.jsp`
 * Point the resource `/feed.xml` at `NewsServlet`
 * Add a `feed.jsp` using JSTL

 We definitely do not need to add ROME, or a similar library, at least for
 now. As an example to get an idea, the RSS 0.91 hacky JSP (where I made
 getDescription public so that it could be available):

 {{{
 <%@ page contentType="text/xml" %><?xml version="1.0"?>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>
 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"; %>
 <rss version="0.91">
 <channel>
     <title>Tor Metrics - News</title>
     <link>https://metrics.torproject.org/</link>
     <c:forEach var="entry" items="${news}">
       <item>
         <title>
           <c:out value="${entry.description}"/>
         </title>
       </item>
     </c:forEach>
 </channel>
 }}}

 karsten, iwakeh - Which approach do you think would be best?

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/23854#comment:4>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs

Reply via email to