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; package love.sola.netsupport.config;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.Yaml;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.regex.Pattern;
/** /**
* *********************************************** * ***********************************************
@@ -16,12 +20,16 @@ import java.util.Map;
public class Lang { public class Lang {
public static Map<String, String> messages; public static Map<String, String> messages;
public static Map<String, AutoReply> replies;
public static Map<String, MessageFormat> format_cache = new HashMap<>(32); public static Map<String, MessageFormat> format_cache = new HashMap<>(32);
static { static {
try (InputStream in = Lang.class.getClassLoader().getResourceAsStream("lang.yml")) {
//noinspection unchecked //noinspection unchecked
InputStream in = Lang.class.getClassLoader().getResourceAsStream("lang.yml");
messages = new Yaml().loadAs(in, Map.class); messages = new Yaml().loadAs(in, Map.class);
} catch (IOException e) {
e.printStackTrace();
}
} }
public static String lang(String key) { 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.config.Settings;
import love.sola.netsupport.wechat.handler.RegisterHandler; 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 love.sola.netsupport.wechat.matcher.RegisterMatcher;
import me.chanjar.weixin.common.util.StringUtils; import me.chanjar.weixin.common.util.StringUtils;
import me.chanjar.weixin.mp.api.*; import me.chanjar.weixin.mp.api.*;
@@ -31,7 +32,6 @@ public class WxMpServlet extends HttpServlet {
protected WxMpInMemoryConfigStorage config; protected WxMpInMemoryConfigStorage config;
protected WxMpService wxMpService; protected WxMpService wxMpService;
protected WxMpMessageRouter wxMpMessageRouter; protected WxMpMessageRouter wxMpMessageRouter;
protected CheckSpamMatcher checkSpamMatcher;
public WxMpServlet() { public WxMpServlet() {
instance = this; instance = this;
@@ -50,7 +50,6 @@ public class WxMpServlet extends HttpServlet {
wxMpService = new WxMpServiceImpl(); wxMpService = new WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(config); wxMpService.setWxMpConfigStorage(config);
checkSpamMatcher = new CheckSpamMatcher();
wxMpMessageRouter = new WxMpMessageRouter(wxMpService); wxMpMessageRouter = new WxMpMessageRouter(wxMpService);
wxMpMessageRouter.rule() wxMpMessageRouter.rule()
.async(false) .async(false)
@@ -65,12 +64,8 @@ public class WxMpServlet extends HttpServlet {
wxMpMessageRouter.rule() wxMpMessageRouter.rule()
.async(false) .async(false)
.msgType("text") .msgType("text")
.matcher(new CheckSpamMatcher()) .matcher(new SpamMatcher())
.handler((wxMessage, context, wxMpService1, sessionManager) .handler(new SpamHandler())
-> WxMpXmlOutMessage.TEXT()
.fromUser(wxMessage.getToUserName())
.toUser(wxMessage.getFromUserName())
.content(lang("Message_Spam")).build())
.end(); .end();
wxMpMessageRouter.rule() wxMpMessageRouter.rule()
.async(false) .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 * 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> { private class ValueLoader extends CacheLoader<String, Long> {
@Override @Override