bump code

This commit is contained in:
Sola
2015-12-17 23:14:51 +08:00
parent 1ee1bb607d
commit 0aec02ee7f
4 changed files with 63 additions and 13 deletions

View File

@@ -1,11 +1,15 @@
package love.sola.netsupport.config;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.yaml.snakeyaml.Yaml;
import java.io.IOException;
import java.io.InputStream;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
/**
* ***********************************************
@@ -16,12 +20,16 @@ import java.util.Map;
public class Lang {
public static Map<String, String> messages;
public static Map<String, AutoReply> replies;
public static Map<String, MessageFormat> format_cache = new HashMap<>(32);
static {
//noinspection unchecked
InputStream in = Lang.class.getClassLoader().getResourceAsStream("lang.yml");
messages = new Yaml().loadAs(in, Map.class);
try (InputStream in = Lang.class.getClassLoader().getResourceAsStream("lang.yml")) {
//noinspection unchecked
messages = new Yaml().loadAs(in, Map.class);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String lang(String key) {
@@ -40,4 +48,21 @@ public class Lang {
}
}
public static void loadReplies() {
try (InputStream in = Lang.class.getClassLoader().getResourceAsStream("replies.yml")) {
Map<String, Object> yaml = (Map<String, Object>) new Yaml().load(in);
} catch (IOException e) {
e.printStackTrace();
}
}
@Data
@AllArgsConstructor
public static class AutoReply {
Pattern[] regex;
String[] replies;
}
}

View File

@@ -2,7 +2,8 @@ package love.sola.netsupport.wechat;
import love.sola.netsupport.config.Settings;
import love.sola.netsupport.wechat.handler.RegisterHandler;
import love.sola.netsupport.wechat.matcher.CheckSpamMatcher;
import love.sola.netsupport.wechat.handler.SpamHandler;
import love.sola.netsupport.wechat.matcher.SpamMatcher;
import love.sola.netsupport.wechat.matcher.RegisterMatcher;
import me.chanjar.weixin.common.util.StringUtils;
import me.chanjar.weixin.mp.api.*;
@@ -31,7 +32,6 @@ public class WxMpServlet extends HttpServlet {
protected WxMpInMemoryConfigStorage config;
protected WxMpService wxMpService;
protected WxMpMessageRouter wxMpMessageRouter;
protected CheckSpamMatcher checkSpamMatcher;
public WxMpServlet() {
instance = this;
@@ -50,7 +50,6 @@ public class WxMpServlet extends HttpServlet {
wxMpService = new WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(config);
checkSpamMatcher = new CheckSpamMatcher();
wxMpMessageRouter = new WxMpMessageRouter(wxMpService);
wxMpMessageRouter.rule()
.async(false)
@@ -65,12 +64,8 @@ public class WxMpServlet extends HttpServlet {
wxMpMessageRouter.rule()
.async(false)
.msgType("text")
.matcher(new CheckSpamMatcher())
.handler((wxMessage, context, wxMpService1, sessionManager)
-> WxMpXmlOutMessage.TEXT()
.fromUser(wxMessage.getToUserName())
.toUser(wxMessage.getFromUserName())
.content(lang("Message_Spam")).build())
.matcher(new SpamMatcher())
.handler(new SpamHandler())
.end();
wxMpMessageRouter.rule()
.async(false)

View File

@@ -0,0 +1,30 @@
package love.sola.netsupport.wechat.handler;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpMessageHandler;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.WxMpXmlOutMessage;
import me.chanjar.weixin.mp.bean.outxmlbuilder.TextBuilder;
import java.util.Map;
/**
* ***********************************************
* Created by Sola on 2015/12/17.
* Don't modify this source without my agreement
* ***********************************************
*/
public class SpamHandler implements WxMpMessageHandler {
@Override
public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService, WxSessionManager sessionManager) throws WxErrorException {
TextBuilder out = WxMpXmlOutMessage.TEXT()
.fromUser(wxMessage.getToUserName())
.toUser(wxMessage.getFromUserName());
return out.build();
}
}

View File

@@ -15,7 +15,7 @@ import java.util.concurrent.TimeUnit;
* Don't modify this source without my agreement
* ***********************************************
*/
public class CheckSpamMatcher implements WxMpMessageMatcher {
public class SpamMatcher implements WxMpMessageMatcher {
private class ValueLoader extends CacheLoader<String, Long> {
@Override