From b20f7633312b2f9af6207150e5288f583e9e1024 Mon Sep 17 00:00:00 2001 From: Ugnich Anton Date: Mon, 27 Jan 2014 03:18:29 +0700 Subject: mids.isEmpty bugfix --- src/java/com/juick/rss/Main.java | 58 +++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 27 deletions(-) (limited to 'src/java/com/juick/rss') diff --git a/src/java/com/juick/rss/Main.java b/src/java/com/juick/rss/Main.java index 65169fbb..827ecf39 100644 --- a/src/java/com/juick/rss/Main.java +++ b/src/java/com/juick/rss/Main.java @@ -48,26 +48,26 @@ import javax.servlet.http.HttpServletResponse; */ @WebServlet(name = "Main", urlPatterns = {"/"}) public class Main extends HttpServlet { - + private static SimpleDateFormat sdfSQL = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private static SimpleDateFormat sdfRSS = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z"); Connection sql; - + @Override public void init() throws ServletException { super.init(); try { Properties conf = new Properties(); conf.load(new FileInputStream("/etc/juick/rss.conf")); - + Class.forName("com.mysql.jdbc.Driver"); sql = DriverManager.getConnection("jdbc:mysql://localhost/juick?autoReconnect=true&user=" + conf.getProperty("mysql_username", "") + "&password=" + conf.getProperty("mysql_password", "")); - + } catch (Exception e) { log(null, e); } } - + @Override public void destroy() { super.destroy(); @@ -80,13 +80,13 @@ public class Main extends HttpServlet { } } } - + @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getCharacterEncoding() == null) { request.setCharacterEncoding("UTF-8"); } - + String uri = request.getRequestURI(); if (uri.equals("/")) { int hours = Utils.parseInt(request.getParameter("hours"), 0); @@ -109,8 +109,12 @@ public class Main extends HttpServlet { int uid = UserQueries.getUIDbyName(sql, uname); if (uid > 0) { ArrayList mids = MessagesQueries.getUserBlog(sql, uid, 0, 0); - ArrayList msgs = MessagesQueries.getMessages(sql, mids); - responseMessages(response, uid, uname, msgs); + if (!mids.isEmpty()) { + ArrayList msgs = MessagesQueries.getMessages(sql, mids); + responseMessages(response, uid, uname, msgs); + } else { + response.sendError(404); + } } else { response.sendError(404); } @@ -118,10 +122,10 @@ public class Main extends HttpServlet { response.sendError(404); } } - + private void responseMessages(HttpServletResponse response, int uid, String uname, ArrayList msgs) throws IOException { response.setContentType("application/rss+xml; charset=UTF-8"); - + PrintWriter out = response.getWriter(); try { out.println(""); @@ -138,15 +142,15 @@ public class Main extends HttpServlet { out.println("http://juick.com/"); out.println("The latest messages at Juick"); } - + Iterator i = msgs.iterator(); while (i.hasNext()) { Message msg = i.next(); - + out.println(""); out.println("http://juick.com/" + msg.User.UName + "/" + msg.MID + ""); out.println("http://juick.com/" + msg.User.UName + "/" + msg.MID + ""); - + out.print("<![CDATA[@" + msg.User.UName + ":"); if (!msg.Tags.isEmpty()) { for (int n = 0; n < msg.Tags.size(); n++) { @@ -155,13 +159,13 @@ public class Main extends HttpServlet { } out.println("]]>"); out.println(""); - + try { Date date = sdfSQL.parse(msg.TimestampString); out.println("" + sdfRSS.format(date) + ""); } catch (ParseException e) { } - + out.println("http://juick.com/" + msg.User.UName + "/" + msg.MID + ""); if (!msg.Tags.isEmpty()) { for (int n = 0; n < msg.Tags.size(); n++) { @@ -180,26 +184,26 @@ public class Main extends HttpServlet { out.println(""); out.println(""); } - + out.println(""); } finally { out.close(); } } - + private void responseReplies(HttpServletResponse response, int hours) throws IOException { response.setContentType("application/rss+xml; charset=UTF-8"); - + PrintWriter out = response.getWriter(); try { - + out.println(""); out.println(""); out.println(""); out.println("Juick"); out.println("http://juick.com/"); out.println("The latest comments at Juick"); - + PreparedStatement stmt = null; ResultSet rs = null; try { @@ -212,7 +216,7 @@ public class Main extends HttpServlet { int mid = rs.getInt(2); int rid = rs.getInt(3); String uname = rs.getString(4); - + out.println(""); out.println("http://juick.com/" + muname + "/" + mid + ""); out.println("http://juick.com/" + muname + "/" + mid + "#" + rid + ""); @@ -238,16 +242,16 @@ public class Main extends HttpServlet { } finally { Utils.finishSQL(rs, stmt); } - + out.println(""); } finally { out.close(); } } - + private ArrayList getLastMessages(int hours) { ArrayList mids = new ArrayList(20); - + PreparedStatement stmt = null; ResultSet rs = null; try { @@ -266,7 +270,7 @@ public class Main extends HttpServlet { return mids; } private static Pattern regexLinks2 = Pattern.compile("((?<=\\s)|(?<=\\A))([\\[\\{]|<)((?:ht|f)tps?://(?:www\\.)?([^\\/\\s\\\"\\)\\!]+)/?(?:[^\\]\\}](? citate msg = msg.replaceAll("(?:(?<=\\n)|(?<=\\A))> *(.*)?(\\n|(?=\\Z))", "
$1
"); msg = msg.replaceAll("
", "\n"); - + msg = msg.replaceAll("\n", "
\n"); return msg; } -- cgit v1.2.3