From 0aec02ee7f5092c7fa1befd9660158319a378f11 Mon Sep 17 00:00:00 2001 From: Sola Date: Thu, 17 Dec 2015 23:14:51 +0800 Subject: [PATCH] bump code --- .../love/sola/netsupport/config/Lang.java | 31 +++++++++++++++++-- .../sola/netsupport/wechat/WxMpServlet.java | 13 +++----- .../wechat/handler/SpamHandler.java | 30 ++++++++++++++++++ ...CheckSpamMatcher.java => SpamMatcher.java} | 2 +- 4 files changed, 63 insertions(+), 13 deletions(-) create mode 100644 src/main/java/love/sola/netsupport/wechat/handler/SpamHandler.java rename src/main/java/love/sola/netsupport/wechat/matcher/{CheckSpamMatcher.java => SpamMatcher.java} (95%) diff --git a/src/main/java/love/sola/netsupport/config/Lang.java b/src/main/java/love/sola/netsupport/config/Lang.java index f947ca0..2b56f7e 100644 --- a/src/main/java/love/sola/netsupport/config/Lang.java +++ b/src/main/java/love/sola/netsupport/config/Lang.java @@ -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 messages; + public static Map replies; public static Map 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 yaml = (Map) new Yaml().load(in); + + + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Data + @AllArgsConstructor + public static class AutoReply { + Pattern[] regex; + String[] replies; + } + } diff --git a/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java b/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java index d1257af..3da0af1 100644 --- a/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java +++ b/src/main/java/love/sola/netsupport/wechat/WxMpServlet.java @@ -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) diff --git a/src/main/java/love/sola/netsupport/wechat/handler/SpamHandler.java b/src/main/java/love/sola/netsupport/wechat/handler/SpamHandler.java new file mode 100644 index 0000000..12b0526 --- /dev/null +++ b/src/main/java/love/sola/netsupport/wechat/handler/SpamHandler.java @@ -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 context, WxMpService wxMpService, WxSessionManager sessionManager) throws WxErrorException { + TextBuilder out = WxMpXmlOutMessage.TEXT() + .fromUser(wxMessage.getToUserName()) + .toUser(wxMessage.getFromUserName()); + + return out.build(); + } + +} diff --git a/src/main/java/love/sola/netsupport/wechat/matcher/CheckSpamMatcher.java b/src/main/java/love/sola/netsupport/wechat/matcher/SpamMatcher.java similarity index 95% rename from src/main/java/love/sola/netsupport/wechat/matcher/CheckSpamMatcher.java rename to src/main/java/love/sola/netsupport/wechat/matcher/SpamMatcher.java index 00363c3..6f27b4d 100644 --- a/src/main/java/love/sola/netsupport/wechat/matcher/CheckSpamMatcher.java +++ b/src/main/java/love/sola/netsupport/wechat/matcher/SpamMatcher.java @@ -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 { @Override