aboutsummaryrefslogtreecommitdiff
path: root/juick-www/src/main/java/com/juick/www/PM.java
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2016-12-28 22:38:21 +0300
committerGravatar Vitaly Takmazov2017-01-10 12:08:35 +0300
commit2f682b5e3cfc3fc5f961b60129be7bc90e0d6a03 (patch)
tree840aea9eb94d5c1f667a710d3298135854bc5002 /juick-www/src/main/java/com/juick/www/PM.java
parenteb440ea4f120115613880e340b010eed5397e72c (diff)
juick-www: now on spring-webmvc
Diffstat (limited to 'juick-www/src/main/java/com/juick/www/PM.java')
-rw-r--r--juick-www/src/main/java/com/juick/www/PM.java150
1 files changed, 0 insertions, 150 deletions
diff --git a/juick-www/src/main/java/com/juick/www/PM.java b/juick-www/src/main/java/com/juick/www/PM.java
deleted file mode 100644
index d0aa26e9..00000000
--- a/juick-www/src/main/java/com/juick/www/PM.java
+++ /dev/null
@@ -1,150 +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.www;
-
-import com.juick.server.PMQueries;
-import com.juick.server.TagQueries;
-import com.juick.server.UserQueries;
-import com.juick.util.MessageUtils;
-import com.juick.util.WebUtils;
-import com.mitchellbosecke.pebble.error.PebbleException;
-import com.mitchellbosecke.pebble.template.PebbleTemplate;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.jdbc.core.JdbcTemplate;
-import rocks.xmpp.addr.Jid;
-import rocks.xmpp.core.session.XmppSession;
-import rocks.xmpp.core.stanza.model.Message;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- *
- * @author Ugnich Anton
- */
-public class PM {
- private static final Logger logger = LoggerFactory.getLogger(PM.class);
-
- protected void doGetInbox(JdbcTemplate sql, HttpServletRequest request, HttpServletResponse response, com.juick.User visitor) throws ServletException, IOException, PebbleException {
-
- String title = "PM: Inbox";
- List<com.juick.Message> msgs = PMQueries.getLastPMInbox(sql, visitor.getUid());
- msgs.forEach(m -> m.setText(MessageUtils.formatMessage(m.getText())));
- response.setContentType("text/html; charset=UTF-8");
- try (PrintWriter out = response.getWriter()) {
- PebbleTemplate template = Utils.getEngine().getTemplate("views/pm_inbox.html");
- Map<String, Object> context = new HashMap<>();
- context.put("title", title);
- context.put("visitor", visitor);
- context.put("msgs", msgs);
- context.put("tags", TagQueries.getPopularTags(sql));
- template.evaluate(out, context);
- }
- }
-
- protected void doGetSent(JdbcTemplate sql, HttpServletRequest request, HttpServletResponse response, com.juick.User visitor) throws ServletException, IOException, PebbleException {
-
- String title = "PM: Sent";
- List<com.juick.Message> msgs = PMQueries.getLastPMSent(sql, visitor.getUid());
-
- String uname = request.getParameter("uname");
- if (WebUtils.isNotUserName(uname)) {
- uname = StringUtils.EMPTY;
- }
-
- response.setContentType("text/html; charset=UTF-8");
- try (PrintWriter out = response.getWriter()) {
- PebbleTemplate template = Utils.getEngine().getTemplate("views/pm_sent.html");
- Map<String, Object> context = new HashMap<>();
- context.put("title", title);
- context.put("visitor", visitor);
- context.put("msgs", msgs);
- context.put("tags", TagQueries.getPopularTags(sql));
- context.put("uname", uname);
- template.evaluate(out, context);
- }
- }
-
- public void doPostPM(JdbcTemplate sql, HttpServletRequest request, HttpServletResponse response, XmppSession xmpp, com.juick.User visitor) throws ServletException, IOException {
- String uname = request.getParameter("uname");
- if (uname.startsWith("@")) {
- uname = uname.substring(1);
- }
- int uid = 0;
- if (WebUtils.isUserName(uname)) {
- uid = UserQueries.getUIDbyName(sql, uname);
- }
-
- String body = request.getParameter("body");
- if (uid == 0 || body == null || body.length() < 1 || body.length() > 10240) {
- response.sendError(HttpServletResponse.SC_BAD_REQUEST);
- return;
- }
-
- if (UserQueries.isInBLAny(sql, uid, visitor.getUid())) {
- response.sendError(HttpServletResponse.SC_FORBIDDEN);
- return;
- }
-
- if (PMQueries.createPM(sql, visitor.getUid(), uid, body)) {
- if (xmpp != null) {
- Message msg = new Message();
- msg.setFrom(Jid.of("juick@juick.com"));
- msg.setTo(Jid.of(String.format("%d@push.juick.com", uid)));
- com.juick.Message jmsg = new com.juick.Message();
- jmsg.setUser(visitor);
- jmsg.setText(body);
- msg.addExtension(jmsg);
- xmpp.send(msg);
-
- msg.setTo(Jid.of(String.format("%d@ws.juick.com", uid)));
- xmpp.send(msg);
-
- List<String> jids = UserQueries.getJIDsbyUID(sql, uid);
- for (String jid : jids) {
- Message mm = new Message();
- mm.setTo(Jid.of(jid));
- mm.setType(Message.Type.CHAT);
- if (PMQueries.havePMinRoster(sql, visitor.getUid(), jid)) {
- mm.setFrom(Jid.of(jmsg.getUser().getName(), "juick.com", "Juick"));
- mm.setBody(body);
- } else {
- mm.setFrom(Jid.of("juick", "juick.com", "Juick"));
- mm.setBody("Private message from @" + jmsg.getUser().getName() + ":\n" + body);
- }
- xmpp.send(mm);
- }
- } else {
- logger.warn("XMPP unavailable");
- }
-
- Utils.sendTemporaryRedirect(response, "/pm/sent");
-
- } else {
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- }
- }
-}