diff options
author | Vitaly Takmazov | 2015-10-24 19:35:41 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2015-10-24 19:35:41 +0300 |
commit | af80956ec669cf48ea6423959b5a4d8f16385d6f (patch) | |
tree | 3589c77814185cd8bf43408f46793aaf8917c27a /src/java/com/juick/http/www/UserThread.java | |
parent | 7a96f3f799e2e2358be246b3e9f0aa412ef28a2d (diff) |
moving to Gradle
Diffstat (limited to 'src/java/com/juick/http/www/UserThread.java')
-rw-r--r-- | src/java/com/juick/http/www/UserThread.java | 370 |
1 files changed, 0 insertions, 370 deletions
diff --git a/src/java/com/juick/http/www/UserThread.java b/src/java/com/juick/http/www/UserThread.java deleted file mode 100644 index 73809f6c..00000000 --- a/src/java/com/juick/http/www/UserThread.java +++ /dev/null @@ -1,370 +0,0 @@ -/* - * Juick - * Copyright (C) 2008-2011, Ugnich Anton - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package com.juick.http.www; - -import com.juick.server.MessagesQueries; -import com.juick.server.UserQueries; -import java.io.IOException; -import java.io.PrintWriter; -import java.sql.Connection; -import java.util.ArrayList; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * - * @author Ugnich Anton - */ -public class UserThread { - - protected void doGetThread(Connection sql, HttpServletRequest request, HttpServletResponse response, int MID) throws ServletException, IOException { - com.juick.User visitor = Utils.getVisitorUser(sql, request, response); - - if (!MessagesQueries.canViewThread(sql, MID, visitor != null ? visitor.UID : 0)) { - response.sendError(403); - return; - } - - com.juick.Message msg = MessagesQueries.getMessage(sql, MID); - - boolean listview = false; - String paramView = request.getParameter("view"); - if (paramView != null) { - if (paramView.equals("list")) { - listview = true; - if (visitor != null) { - UserQueries.setUserOptionInt(sql, visitor.UID, "repliesview", 1); - } - } else if (paramView.equals("tree") && visitor != null) { - UserQueries.setUserOptionInt(sql, visitor.UID, "repliesview", 0); - } - } else if (visitor != null && UserQueries.getUserOptionInt(sql, visitor.UID, "repliesview", 0) == 1) { - listview = true; - } - - String title = msg.User.UName + ": " + msg.getTagsString(); - - if (visitor == null) { - User.pageUserRefCookie(request, response, msg.User.UID); - } - - response.setContentType("text/html; charset=UTF-8"); - PrintWriter out = response.getWriter(); - try { - String headers = "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"@" + msg.User.UName + "\" href=\"//rss.juick.com/" + msg.User.UName + "/blog\"/>"; - if (paramView != null) { - headers += "<link rel=\"canonical\" href=\"http://juick.com/" + msg.User.UName + "/" + msg.MID + "\"/>"; - } - if (msg.Hidden) { - headers += "<meta name=\"robots\" content=\"noindex\"/>"; - } - PageTemplates.pageHead(out, title, headers); - PageTemplates.pageNavigation(out, visitor, null); - - out.println("<section id=\"content\" style=\"margin-left: 0; width: 100%\">"); - printMessage(out, sql, msg, visitor); - printReplies(out, sql, msg, visitor, listview); - out.println("</section>"); - - PageTemplates.pageFooter(request, out, visitor, false); - - out.println("<script type='text/javascript'>"); - if (visitor != null && visitor.UID == 1 && msg.User.UID == 1) { - out.println("var juickDebug=1;"); - } - out.println("var pageMID=" + msg.MID + ";"); - out.println("initWS();"); - out.println("</script>"); - - PageTemplates.pageEnd(out); - } finally { - out.close(); - } - } - - public static com.juick.Message printMessage(PrintWriter out, Connection sql, com.juick.Message msg, com.juick.User visitor) { - msg.VisitorCanComment = visitor != null; - - ArrayList<com.juick.Tag> tags = MessagesQueries.getMessageTags(sql, msg.MID); - String tagsStr = PageTemplates.formatTags(tags); - if (msg.ReadOnly) { - tagsStr += " *readonly"; - msg.VisitorCanComment = false; - } - if (msg.Privacy < 0) { - tagsStr += " *friends"; - } - - String txt; - if (!msg.Tags.isEmpty() && msg.Tags.contains("code")) { - txt = PageTemplates.formatMessageCode(msg.Text); - } else { - txt = PageTemplates.formatMessage(msg.Text); - } - - if (!tags.isEmpty()) { - tagsStr = "<span class=\"msg-tags\">" + tagsStr + "</span>"; - } - - out.println("<ul>"); - out.println(" <li id=\"msg-" + msg.MID + "\" class=\"msg msgthread\">"); - out.println(" <div class=\"msg-avatar\"><a href=\"/" + msg.User.UName + "/\"><img src=\"//i.juick.com/a/" + msg.User.UID + ".png\" alt=\"" + msg.User.UName + "\"/></a></div>"); - out.println(" <div class=\"msg-cont\">"); - out.println(" <div class=\"msg-menu\"><a href=\"#\" onclick=\"showMessageLinksDialog(" + msg.MID + "); return false\"></a></div>"); - out.println(" <div class=\"msg-header\"><a href=\"/" + msg.User.UName + "/\">@" + msg.User.UName + "</a>:" + tagsStr + "</div>"); - out.println(" <div class=\"msg-ts\">" + PageTemplates.formatJSLocalTime(msg.TimestampString) + "</div>"); - out.println(" <div class=\"msg-txt\">" + txt + "</div>"); - - if (msg.AttachmentType != null) { - out.println(" <div class=\"msg-media\"><a href=\"//i.juick.com/p/" + msg.MID + "." + msg.AttachmentType + "\"><img src=\"//i.juick.com/photos-512/" + msg.MID + "." + msg.AttachmentType + "\" alt=\"\"/></a></div>"); - } - - boolean visitorInBL = false; - if (visitor != null) { - if (visitor.UID == msg.User.UID) { - msg.VisitorCanComment = true; - } else { - visitorInBL = UserQueries.isInBL(sql, msg.User.UID, visitor.UID); - if (visitorInBL) { - msg.VisitorCanComment = false; - } - } - } - - if (msg.VisitorCanComment) { - out.println(" <form action=\"/comment\" method=\"POST\" enctype=\"multipart/form-data\"><input type=\"hidden\" name=\"mid\" value=\"" + msg.MID + "\"/>"); - out.println(" <div class=\"msg-comment\"><div class=\"ta-wrapper\"><textarea name=\"body\" rows=\"1\" class=\"reply\" placeholder=\"Написать комментарий\" onkeypress=\"postformListener(this.form,event)\"></textarea></div></div>"); - out.println(" </form>"); - } - - ArrayList<String> recomm = MessagesQueries.getMessageRecommendations(sql, msg.MID); - if (!recomm.isEmpty()) { - out.print(" <div class=\"" + (msg.VisitorCanComment ? "msg-recomms" : "msg-comments") + "\">Рекомендовали (" + recomm.size() + "): "); - for (int i = 0; i < recomm.size(); i++) { - if (i > 0) { - out.print(", "); - } - out.print("<a href=\"/" + recomm.get(i) + "/\">@" + recomm.get(i) + "</a>"); - } - out.println("</div>"); - } - out.println(" </div>"); - out.println(" </li>"); - - out.println(" <li id=\"mtoolbar\"><ul>"); - out.println(" <li><a href=\"/" + msg.MID + "\"><div style=\"background-position: -64px 0\"></div>" + msg.MID + "</a></li>"); - if (visitor != null) { - if (visitor.UID != msg.User.UID) { - if (MessagesQueries.isSubscribed(sql, visitor.UID, msg.MID)) { - out.println(" <li><a href=\"/post?body=U+%23" + msg.MID + "\"><div style=\"background-position: -48px 0\"></div>Подписан</a></li>"); - } else { - out.println(" <li><a href=\"/post?body=S+%23" + msg.MID + "\"><div style=\"background-position: -16px 0\"></div>Подписаться</a></li>"); - } - if (!visitorInBL) { - out.println(" <li><a href=\"/post?body=%21+%23" + msg.MID + "\"><div style=\"background-position: -32px 0\"></div>Рекомендовать</a></li>"); - } - } else { - out.println(" <li><a href=\"/post?body=D+%23" + msg.MID + "\"><div style=\"background-position: 0\"></div>Удалить</a></li>"); - } - } - out.println(" </ul></li>"); - out.println("</ul>"); - - return msg; - } - - public static void printReplies(PrintWriter out, Connection sql, com.juick.Message msg, com.juick.User visitor, boolean listview) { - ArrayList<com.juick.Message> replies = MessagesQueries.getReplies(sql, msg.MID); - - ArrayList<Integer> blUIDs = new ArrayList<Integer>(); - for (int i = 0; i < replies.size(); i++) { - com.juick.Message reply = replies.get(i); - if (reply.User.UID != msg.User.UID && !blUIDs.contains(reply.User.UID)) { - blUIDs.add(reply.User.UID); - } - if (reply.ReplyTo > 0) { - boolean added = false; - for (int n = 0; n < replies.size(); n++) { - if (replies.get(n).RID == reply.ReplyTo) { - replies.get(n).childs.add(reply); - added = true; - break; - } - } - if (!added) { - reply.ReplyTo = 0; - } - } - } - - if (!replies.isEmpty()) { - if (visitor != null && msg.User.UID == visitor.UID) { - for (int i = 0; i < replies.size(); i++) { - replies.get(i).VisitorCanComment = true; - } - } else if (visitor != null && msg.VisitorCanComment) { - blUIDs = UserQueries.checkBL(sql, visitor.UID, blUIDs); - for (int i = 0; i < replies.size(); i++) { - com.juick.Message reply = replies.get(i); - reply.VisitorCanComment = reply.User.UID == visitor.UID || !blUIDs.contains(reply.User.UID); - } - } else { - for (int i = 0; i < replies.size(); i++) { - replies.get(i).VisitorCanComment = false; - } - } - - boolean foldable = false; - if (replies.size() > 10) { - for (int i = 0; i < replies.size() - 1; i++) { - if (replies.get(i).getChildsCount() > 1) { - foldable = true; - break; - } - } - } - - out.println("<div class=\"title2\">"); - out.print(" <div class=\"title2-right\">"); - if (listview) { - out.print("<a href=\"?view=tree\" rel=\"nofollow\">Показать деревом</a>"); - } else { - if (foldable) { - out.print("<span id=\"unfoldall\"><a href=\"#\" onclick=\"$('#replies>li').show(); $('#replies .msg-comments').hide(); $('#unfoldall').hide(); return false\">Раскрыть все</a> · </span>"); - } - out.print("<a href=\"?view=list\" rel=\"nofollow\">Показать списком</a>"); - } - out.print("</div>"); - out.println(" <h2>Ответы (" + replies.size() + ")</h2>"); - out.println("</div>"); - - out.println("<ul id=\"replies\">"); - if (listview) { - printList(out, replies, visitor); - } else { - printTree(out, replies, visitor, 0, 0, false); - } - out.println("</ul>"); - - if (replies.size() > 0) { - PageTemplates.pageYandexAd728(out, 1); - } - - for (int i = 0; i < replies.size(); i++) { - replies.get(i).cleanupChilds(); - } - replies.clear(); - } - } - - public static void printTree(PrintWriter out, ArrayList<com.juick.Message> replies, com.juick.User visitor, int ReplyTo, int margin, boolean hidden) { - if (margin > 240) { - margin = 240; - } - - for (int i = 0; i < replies.size(); i++) { - com.juick.Message msg = replies.get(i); - if (msg.ReplyTo == ReplyTo) { - - out.print(" <li id=\"" + msg.RID + "\" class=\"msg\" style=\""); - if (margin > 0) { - out.print("margin-left: " + margin + "px;"); - } - if (hidden) { - out.print("display:none;"); - } - out.println("\">"); - if (msg.User.Banned == false) { - out.println(" <div class=\"msg-avatar\"><a href=\"/" + msg.User.UName + "/\"><img src=\"//i.juick.com/a/" + msg.User.UID + ".png\" alt=\"" + msg.User.UName + "\"/></a></div>"); - } else { - out.println(" <div class=\"msg-avatar\"><img src=\"//i.juick.com/av-96.png\"/></div>"); - } - out.println(" <div class=\"msg-cont\">"); - out.println(" <div class=\"msg-menu\"><a href=\"#\" onclick=\"showMessageLinksDialog(" + msg.MID + "," + msg.RID + "); return false\"></a></div>"); - if (msg.User.Banned == false) { - out.println(" <div class=\"msg-header\"><a href=\"/" + msg.User.UName + "/\">@" + msg.User.UName + "</a>:</div>"); - } else { - out.println(" <div class=\"msg-header\">[удалено]:</div>"); - } - out.println(" <div class=\"msg-ts\"><a href=\"/" + msg.MID + "#" + msg.RID + "\" title=\"" + msg.TimestampString + " GMT\">" + PageTemplates.formatDate(msg.TimeAgo, msg.TimestampString) + "</a></div>"); - out.println(" <div class=\"msg-txt\">" + PageTemplates.formatMessage(msg.Text) + "</div>"); - if (msg.AttachmentType != null) { - out.println(" <div class=\"msg-media\"><a href=\"//i.juick.com/p/" + msg.MID + "-" + msg.RID + "." + msg.AttachmentType + "\"><img src=\"//i.juick.com/photos-512/" + msg.MID + "-" + msg.RID + "." + msg.AttachmentType + "\" alt=\"\"/></a></div>"); - } - if (msg.VisitorCanComment) { - out.println(" <div class=\"msg-links\"><a href=\"#\" onclick=\"return showCommentForm(" + msg.MID + "," + msg.RID + ")\">Ответить</a></div>"); - out.println(" <div class=\"msg-comment\" style=\"display: none\"></div>"); - } else if (visitor == null) { - out.println(" <div class=\"msg-links\"><a href=\"#\" onclick=\"return openDialogLogin()\">Ответить</a></div>"); - } - - int childs = msg.getChildsCount(); - if (ReplyTo == 0 && childs > 1 && replies.size() > 10) { - out.println(" <div class=\"msg-comments\"><a href=\"#\" onclick=\"return showMoreReplies(" + msg.RID + ")\">" + PageTemplates.formatReplies(childs) + "</a></div>"); - - } - out.println(" </div>"); - out.println(" </li>"); - - if (ReplyTo == 0 && childs > 1 && replies.size() > 10) { - printTree(out, msg.childs, visitor, msg.RID, margin + 20, true); - } else if (childs > 0) { - printTree(out, msg.childs, visitor, msg.RID, margin + 20, hidden); - } - } - } - } - - public static void printList(PrintWriter out, ArrayList<com.juick.Message> replies, com.juick.User visitor) { - for (int i = 0; i < replies.size(); i++) { - com.juick.Message msg = replies.get(i); - - out.print(" <li id=\"" + msg.RID + "\" class=\"msg\">"); - if (msg.User.Banned == false) { - out.println(" <div class=\"msg-avatar\"><a href=\"/" + msg.User.UName + "/\"><img src=\"//i.juick.com/a/" + msg.User.UID + ".png\" alt=\"" + msg.User.UName + "\"/></a></div>"); - } else { - out.println(" <div class=\"msg-avatar\"><img src=\"//i.juick.com/av-96.png\"/></div>"); - } - out.println(" <div class=\"msg-cont\">"); - out.println(" <div class=\"msg-menu\"><a href=\"#\" onclick=\"showMessageLinksDialog(" + msg.MID + "," + msg.RID + "); return false\"></a></div>"); - if (msg.User.Banned == false) { - out.println(" <div class=\"msg-header\"><a href=\"/" + msg.User.UName + "/\">@" + msg.User.UName + "</a>:</div>"); - } else { - out.println(" <div class=\"msg-header\">[удалено]:</div>"); - } - out.println(" <div class=\"msg-ts\"><a href=\"/" + msg.MID + "#" + msg.RID + "\" title=\"" + msg.TimestampString + " GMT\">" + PageTemplates.formatDate(msg.TimeAgo, msg.TimestampString) + "</a></div>"); - out.println(" <div class=\"msg-txt\">" + PageTemplates.formatMessage(msg.Text) + "</div>"); - if (msg.AttachmentType != null) { - out.println(" <div class=\"msg-media\"><a href=\"//i.juick.com/p/" + msg.MID + "-" + msg.RID + "." + msg.AttachmentType + "\"><img src=\"//i.juick.com/photos-512/" + msg.MID + "-" + msg.RID + "." + msg.AttachmentType + "\" alt=\"\"/></a></div>"); - } - out.print(" <div class=\"msg-links\">/" + msg.RID); - if (msg.ReplyTo > 0) { - out.print(" в ответ на <a href=\"#" + msg.ReplyTo + "\">/" + msg.ReplyTo + "</a>"); - } - if (msg.VisitorCanComment) { - out.println(" · <a href=\"#\" onclick=\"return showCommentForm(" + msg.MID + "," + msg.RID + ")\">Ответить</a></div>"); - out.println(" <div class=\"msg-comment\" style=\"display: none\"></div>"); - } else if (visitor == null) { - out.println(" <div class=\"msg-links\"><a href=\"#\" onclick=\"return openDialogLogin()\">Ответить</a></div>"); - } - out.println(" </div>"); - out.println(" </li>"); - } - } -} |