[jetrix-cvs] SF.net SVN: jetrix:[828] monitor/trunk
Brought to you by:
smanux
From: <sm...@us...> - 2010-02-24 00:36:30
|
Revision: 828 http://jetrix.svn.sourceforge.net/jetrix/?rev=828&view=rev Author: smanux Date: 2010-02-24 00:36:21 +0000 (Wed, 24 Feb 2010) Log Message: ----------- Added an atom feed with the latest servers submitted Modified Paths: -------------- monitor/trunk/pom.xml monitor/trunk/src/main/java/net/jetrix/monitor/dao/ServerInfoDao.java monitor/trunk/src/main/webapp/WEB-INF/classes/messages.properties monitor/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties monitor/trunk/src/main/webapp/index.jsp Added Paths: ----------- monitor/trunk/src/main/webapp/feed-servers.jsp Modified: monitor/trunk/pom.xml =================================================================== --- monitor/trunk/pom.xml 2010-02-24 00:33:46 UTC (rev 827) +++ monitor/trunk/pom.xml 2010-02-24 00:36:21 UTC (rev 828) @@ -133,6 +133,12 @@ <version>1.2</version> </dependency> + <dependency> + <groupId>rome</groupId> + <artifactId>rome</artifactId> + <version>0.9</version> + </dependency> + <!-- Needed for testing --> <dependency> <groupId>junit</groupId> Modified: monitor/trunk/src/main/java/net/jetrix/monitor/dao/ServerInfoDao.java =================================================================== --- monitor/trunk/src/main/java/net/jetrix/monitor/dao/ServerInfoDao.java 2010-02-24 00:33:46 UTC (rev 827) +++ monitor/trunk/src/main/java/net/jetrix/monitor/dao/ServerInfoDao.java 2010-02-24 00:36:21 UTC (rev 828) @@ -50,6 +50,17 @@ return getSession().createQuery("FROM ServerInfo ORDER BY stats.playerCount DESC, hostname").list(); } + /** + * Returns the latest servers added. + */ + public List<ServerInfo> getLatestServers(int n) + { + Query query = getSession().createQuery("FROM ServerInfo WHERE lastOnline != null ORDER BY dateAdded DESC"); + query.setMaxResults(n); + + return query.list(); + } + public void save(ServerInfo server) { getSession().saveOrUpdate(server); Modified: monitor/trunk/src/main/webapp/WEB-INF/classes/messages.properties =================================================================== --- monitor/trunk/src/main/webapp/WEB-INF/classes/messages.properties 2010-02-24 00:33:46 UTC (rev 827) +++ monitor/trunk/src/main/webapp/WEB-INF/classes/messages.properties 2010-02-24 00:36:21 UTC (rev 828) @@ -48,3 +48,6 @@ title.server = TetriNET Server - {0} title.player = TetriNET Player - {0} title.channel = TetriNET Channel - {0} on {1} + +feed.title = Latest TetriNET Servers +feed.description = The latest TetriNET servers submitted to the directory Modified: monitor/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties =================================================================== --- monitor/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties 2010-02-24 00:33:46 UTC (rev 827) +++ monitor/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties 2010-02-24 00:36:21 UTC (rev 828) @@ -48,3 +48,6 @@ title.server = Serveur TetriNET - {0} title.player = Joueur TetriNET - {0} title.channel = Channel TetriNET - {0} sur {1} + +feed.title = Les derniers serveurs TetriNET +feed.description = Les derniers serveurs TetriNET ajout\xE9s \xE0 la liste Added: monitor/trunk/src/main/webapp/feed-servers.jsp =================================================================== --- monitor/trunk/src/main/webapp/feed-servers.jsp (rev 0) +++ monitor/trunk/src/main/webapp/feed-servers.jsp 2010-02-24 00:36:21 UTC (rev 828) @@ -0,0 +1,45 @@ +<%@ page contentType="application/atom+xml" %> +<%@ page import="java.util.*" %> +<%@ page import="com.sun.syndication.feed.synd.*" %> +<%@ page import="com.sun.syndication.io.SyndFeedOutput" %> +<%@ page import="org.springframework.web.context.ContextLoader" %> +<%@ page import="org.springframework.web.context.WebApplicationContext" %> +<%@ page import="net.jetrix.monitor.ServerInfo" %> +<%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> +<% + WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); + ServerInfoDao dao = (ServerInfoDao) context.getBean("serverInfoDao"); + + ResourceBundle bundle = ResourceBundle.getBundle("messages", request.getLocale()); + + String basePath = request.getRequestURI().substring(0, request.getRequestURI().lastIndexOf('/')); + + List<ServerInfo> servers = dao.getLatestServers(10); + + SyndFeed feed = new SyndFeedImpl(); + feed.setFeedType("atom_1.0"); + feed.setTitle(bundle.getString("feed.title")); + feed.setLink(basePath); + feed.setDescription(bundle.getString("feed.description")); + + List<SyndEntry> entries = new ArrayList<SyndEntry>(); + for (ServerInfo server : servers) { + SyndEntry entry = new SyndEntryImpl(); + entry.setTitle(server.getHostname()); + entry.setLink(basePath + "/server/" + server.getHostname()); + entry.setPublishedDate(server.getDateAdded()); + + SyndContent description = new SyndContentImpl(); + description.setType("text/plain"); + description.setValue(server.getVersion()); + + entry.setDescription(description); + entries.add(entry); + } + + feed.setEntries(entries); + + SyndFeedOutput output = new SyndFeedOutput(); + output.output(feed,response.getWriter()); + response.getWriter().flush(); +%> \ No newline at end of file Modified: monitor/trunk/src/main/webapp/index.jsp =================================================================== --- monitor/trunk/src/main/webapp/index.jsp 2010-02-24 00:33:46 UTC (rev 827) +++ monitor/trunk/src/main/webapp/index.jsp 2010-02-24 00:36:21 UTC (rev 828) @@ -35,6 +35,7 @@ <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> <link rel="Shorcut Icon" href="favicon.ico"> <link rel="alternate" type="text/xml" title="Servers XML summary" href="servers.xml"> + <link rel="alternate" type="application/atom+xml" title="Latest TetriNET Servers" href="feed-servers.jsp" /> <script type="text/javascript" src="scripts/sortable.js"></script> </head> <body> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |