aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/http/www/User.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick/http/www/User.java')
-rw-r--r--src/main/java/com/juick/http/www/User.java100
1 files changed, 22 insertions, 78 deletions
diff --git a/src/main/java/com/juick/http/www/User.java b/src/main/java/com/juick/http/www/User.java
index a4fdcf21..d0c1aaee 100644
--- a/src/main/java/com/juick/http/www/User.java
+++ b/src/main/java/com/juick/http/www/User.java
@@ -17,6 +17,7 @@
*/
package com.juick.http.www;
+import com.juick.Tag;
import com.juick.server.MessagesQueries;
import com.juick.server.TagQueries;
import com.juick.server.UserQueries;
@@ -195,25 +196,14 @@ public class User {
out.println("<section id=\"content\">");
out.println("<table class=\"users\"><tr>");
- PreparedStatement stmt = null;
- ResultSet rs = null;
- try {
- stmt = sql.prepareStatement("SELECT users.id,users.nick FROM subscr_users INNER JOIN users ON subscr_users.user_id=users.id WHERE subscr_users.suser_id=? ORDER BY users.nick");
- stmt.setInt(1, user.getUID());
- rs = stmt.executeQuery();
- rs.beforeFirst();
- int cnt = 0;
- while (rs.next()) {
- if (cnt % 3 == 0 && cnt > 0) {
- out.print("</tr><tr>");
- }
- out.print("<td><a href=\"/" + rs.getString(2) + "/\"><img src=\"//i.juick.com/as/" + rs.getInt(1) + ".png\"/>" + rs.getString(2) + "</a></td>");
- cnt++;
+ List<com.juick.User> friends = UserQueries.getUserFriends(sql, user.getUID());
+ for (int i = 0; i < friends.size(); i++) {
+ if (i % 3 == 0 && i > 0) {
+ out.print("</tr><tr>");
}
- } catch (SQLException e) {
- System.err.println(e);
- } finally {
- Utils.finishSQL(rs, stmt);
+ out.print("<td><a href=\"/" + friends.get(i).getUName()
+ + "/\"><img src=\"//i.juick.com/as/" + friends.get(i).getUID() + ".png\"/>"
+ + friends.get(i).getUName() + "</a></td>");
}
out.println("</tr></table>");
@@ -241,25 +231,14 @@ public class User {
out.println("<section id=\"content\">");
out.println("<table class=\"users\"><tr>");
- PreparedStatement stmt = null;
- ResultSet rs = null;
- try {
- stmt = sql.prepareStatement("SELECT users.id,users.nick FROM subscr_users INNER JOIN users ON subscr_users.suser_id=users.id WHERE subscr_users.user_id=? ORDER BY users.nick");
- stmt.setInt(1, user.getUID());
- rs = stmt.executeQuery();
- rs.beforeFirst();
- int cnt = 0;
- while (rs.next()) {
- if (cnt % 3 == 0 && cnt > 0) {
- out.print("</tr><tr>");
- }
- out.print("<td><a href=\"/" + rs.getString(2) + "/\"><img src=\"//i.juick.com/as/" + rs.getInt(1) + ".png\"/>" + rs.getString(2) + "</a></td>");
- cnt++;
+ List<com.juick.User> readers = UserQueries.getUserReaders(sql, user.getUID());
+ for (int i = 0; i < readers.size(); i++) {
+ if (i % 3 == 0 && i > 0) {
+ out.print("</tr><tr>");
}
- } catch (SQLException e) {
- System.err.println(e);
- } finally {
- Utils.finishSQL(rs, stmt);
+ out.print("<td><a href=\"/" + readers.get(i).getUName()
+ + "/\"><img src=\"//i.juick.com/as/" + readers.get(i).getUID() + ".png\"/>"
+ + readers.get(i).getUName() + "</a></td>");
}
out.println("</tr></table>");
@@ -340,55 +319,20 @@ public class User {
}
public static String pageUserTags(JdbcTemplate sql, com.juick.User user, com.juick.User visitor, int cnt) {
- com.juick.Tag tags[] = null;
-
- int maxUsageCnt = 0;
- PreparedStatement stmt = null;
- ResultSet rs = null;
- try {
- if (cnt > 0) {
- stmt = sql.prepareStatement("SELECT tags.name AS name,COUNT(DISTINCT messages_tags.message_id) AS cnt FROM (messages INNER JOIN messages_tags ON (messages.message_id=messages_tags.message_id)) INNER JOIN tags ON messages_tags.tag_id=tags.tag_id WHERE messages.user_id=? GROUP BY messages_tags.tag_id ORDER BY cnt DESC LIMIT ?", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
- stmt.setInt(1, user.getUID());
- stmt.setInt(2, cnt);
- } else {
- stmt = sql.prepareStatement("SELECT tags.name AS name,COUNT(DISTINCT messages_tags.message_id) AS cnt FROM (messages INNER JOIN messages_tags ON (messages.message_id=messages_tags.message_id)) INNER JOIN tags ON messages_tags.tag_id=tags.tag_id WHERE messages.user_id=? GROUP BY messages_tags.tag_id ORDER BY cnt DESC", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
- stmt.setInt(1, user.getUID());
- }
- rs = stmt.executeQuery();
- rs.last();
- tags = new com.juick.Tag[rs.getRow()];
- rs.beforeFirst();
- cnt = 0;
- while (rs.next()) {
- tags[cnt] = new com.juick.Tag();
- tags[cnt].Name = rs.getString(1);
- tags[cnt].UsageCnt = rs.getInt(2);
- if (tags[cnt].UsageCnt > maxUsageCnt) {
- maxUsageCnt = tags[cnt].UsageCnt;
- }
- cnt++;
- }
- } catch (SQLException e) {
- System.err.println(e);
- } finally {
- Utils.finishSQL(rs, stmt);
- }
-
- if (tags != null && cnt > 0) {
- Arrays.sort(tags, 0, cnt);
- }
-
+ List<Tag> tags = TagQueries.getUserTagsAll(sql, user.getUID());
+ int maxUsageCnt = tags.stream().map(t -> t.UsageCnt).max(Integer::max).get();
String ret = "";
for (int i = 0; i < cnt; i++) {
- String tag = Utils.encodeHTML(tags[i].Name);
+ String tag = Utils.encodeHTML(tags.get(i).Name);
try {
- tag = "<a href=\"./?tag=" + URLEncoder.encode(tags[i].Name, "UTF-8") + "\" title=\"" + tags[i].UsageCnt + "\" rel=\"nofollow\">" + tag + "</a>";
+ tag = "<a href=\"./?tag=" + URLEncoder.encode(tags.get(i).Name, "UTF-8") + "\" title=\""
+ + tags.get(i).UsageCnt + "\" rel=\"nofollow\">" + tag + "</a>";
} catch (UnsupportedEncodingException e) {
}
- if (tags[i].UsageCnt > maxUsageCnt / 3 * 2) {
+ if (tags.get(i).UsageCnt > maxUsageCnt / 3 * 2) {
ret += "<big>" + tag + "</big> ";
- } else if (tags[i].UsageCnt > maxUsageCnt / 3) {
+ } else if (tags.get(i).UsageCnt > maxUsageCnt / 3) {
ret += "<small>" + tag + "</small> ";
} else {
ret += tag + " ";