aboutsummaryrefslogtreecommitdiff
path: root/juick-xmpp
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2017-02-28 14:29:05 +0300
committerGravatar Vitaly Takmazov2017-02-28 17:16:56 +0300
commit3b460c49a7cbca72f367bc44ca111b2a508d0cac (patch)
tree8346348d2d6970394bb56f81b6886d43dd6fcb53 /juick-xmpp
parent38a5c62973e5de2d1f8f6ed8f08c87622d3324ac (diff)
readonly mode
Diffstat (limited to 'juick-xmpp')
-rw-r--r--juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java32
1 files changed, 26 insertions, 6 deletions
diff --git a/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java b/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java
index 0fff6af3..986eaed0 100644
--- a/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java
+++ b/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java
@@ -33,7 +33,9 @@ public class JuickBot implements StanzaListener, AutoCloseable {
public JuickBot(XMPPServer xmpp) {
this.xmpp = xmpp;
xmpp.addStanzaListener(this);
- broadcastPresence(null);
+ if (!xmpp.messagesService.isReadonly()) {
+ broadcastPresence(null);
+ }
}
private static final String HELPTEXT =
@@ -176,10 +178,14 @@ public class JuickBot implements StanzaListener, AutoCloseable {
reply.setFrom(msg.getTo());
reply.setTo(msg.getFrom());
reply.setType(Message.Type.CHAT);
- if (username.equals("juick")) {
- reply.setBody("Для того, чтобы начать пользоваться сервисом, пожалуйста пройдите быструю регистрацию: http://juick.com/signup?type=xmpp&hash=" + signuphash + "\nЕсли у вас уже есть учетная запись на Juick, вы сможете присоединить этот JabberID к ней.\n\nTo start using Juick, please sign up: http://juick.com/signup?type=xmpp&hash=" + signuphash + "\nIf you already have an account on Juick, you will be proposed to attach this JabberID to your existing account.");
+ if (xmpp.messagesService.isReadonly()) {
+ reply.setBody("Регистрация временно недоступна\n\nRegistration temporarily unavailable");
} else {
- reply.setBody("Внимание, системное сообщение!\nВаш JabberID не обнаружен в списке доверенных. Для того, чтобы отправить сообщение пользователю " + username + "@juick.com, пожалуйста зарегистрируйте свой JabberID в системе: http://juick.com/signup?type=xmpp&hash=" + signuphash + "\nЕсли у вас уже есть учетная запись на Juick, вы сможете присоединить этот JabberID к ней.\n\nWarning, system message!\nYour JabberID is not found in our server's white list. To send a message to " + username + "@juick.com, please sign up: http://juick.com/signup?type=xmpp&hash=" + signuphash + "\nIf you already have an account on Juick, you will be proposed to attach this JabberID to your existing account.");
+ if (username.equals("juick")) {
+ reply.setBody("Для того, чтобы начать пользоваться сервисом, пожалуйста пройдите быструю регистрацию: http://juick.com/signup?type=xmpp&hash=" + signuphash + "\nЕсли у вас уже есть учетная запись на Juick, вы сможете присоединить этот JabberID к ней.\n\nTo start using Juick, please sign up: http://juick.com/signup?type=xmpp&hash=" + signuphash + "\nIf you already have an account on Juick, you will be proposed to attach this JabberID to your existing account.");
+ } else {
+ reply.setBody("Внимание, системное сообщение!\nВаш JabberID не обнаружен в списке доверенных. Для того, чтобы отправить сообщение пользователю " + username + "@juick.com, пожалуйста зарегистрируйте свой JabberID в системе: http://juick.com/signup?type=xmpp&hash=" + signuphash + "\nЕсли у вас уже есть учетная запись на Juick, вы сможете присоединить этот JabberID к ней.\n\nWarning, system message!\nYour JabberID is not found in our server's white list. To send a message to " + username + "@juick.com, please sign up: http://juick.com/signup?type=xmpp&hash=" + signuphash + "\nIf you already have an account on Juick, you will be proposed to attach this JabberID to your existing account.");
+ }
}
xmpp.sendOut(ClientMessage.from(reply));
return true;
@@ -203,7 +209,7 @@ public class JuickBot implements StanzaListener, AutoCloseable {
}
boolean success = false;
- if (!xmpp.userService.isInBLAny(uid_to, user_from.getUid())) {
+ if (!xmpp.userService.isInBLAny(uid_to, user_from.getUid()) && !xmpp.messagesService.isReadonly()) {
success = xmpp.pmQueriesService.createPM(user_from.getUid(), uid_to, msg.getBody());
}
@@ -283,6 +289,8 @@ public class JuickBot implements StanzaListener, AutoCloseable {
} else if (commandlen == 2 && command.equalsIgnoreCase("BL")) {
commandBLShow(msg, user_from);
return true;
+ } else if (xmpp.messagesService.isReadonly()) {
+ return commandMaintenance(msg.getFrom());
}
return false;
@@ -421,6 +429,16 @@ public class JuickBot implements StanzaListener, AutoCloseable {
xmpp.sendOut(ClientMessage.from(reply));
}
+ private boolean commandMaintenance(Jid jidFrom) {
+ Message reply = new Message();
+ reply.setFrom(xmpp.getJid());
+ reply.setTo(jidFrom);
+ reply.setType(Message.Type.CHAT);
+ reply.setBody("Комментирование временно недоступно");
+ xmpp.sendOut(ClientMessage.from(reply));
+ return true;
+ }
+
@Override
public void stanzaReceived(Stanza xmlValue) {
if (xmlValue instanceof Presence) {
@@ -454,6 +472,8 @@ public class JuickBot implements StanzaListener, AutoCloseable {
@Override
public void close() throws Exception {
- broadcastPresence(Presence.Type.UNAVAILABLE);
+ if (!xmpp.messagesService.isReadonly()) {
+ broadcastPresence(Presence.Type.UNAVAILABLE);
+ }
}
}