package com.yutou.qqbot.models.setu; import com.alibaba.fastjson.JSONObject; import com.yutou.qqbot.QQBotManager; import com.yutou.qqbot.interfaces.DownloadInterface; import com.yutou.qqbot.models.Model; import com.yutou.qqbot.utlis.HttpTools; import com.yutou.qqbot.utlis.Log; import com.yutou.qqbot.utlis.StringUtils; import net.mamoe.mirai.event.events.MessageEvent; import net.mamoe.mirai.message.data.MessageChainBuilder; import java.io.File; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.regex.Matcher; import java.util.regex.Pattern; public class GetSeTu extends Model { @Override public boolean isUserPublic() { return true; } @Override public String[] getUsePowers() { return new String[0]; } @Override public String getModelName() { return "随机二次元图"; } @Override public void onMessage(Long qq, MessageEvent event, boolean isGroup) { super.onMessage(qq, event, isGroup); boolean isRun = false; boolean isR18 = false; if (msg.contains("来点") && msg.contains("色图")) { isRun = true; } else if (msg.contains("来点") && msg.contains("涩图")) { isRun = true; isR18 = true; msg = msg.replace("涩图", "色图"); } if (isRun) { Log.i(event.getSource().getFromId() + " > " + msg); Pattern pattern = Pattern.compile("来点(.*?)色图"); Matcher matcher=pattern.matcher(msg); String key=null; if(matcher.find()){ key=matcher.group(1); } String url = "https://api.lolicon.app/setu/v2?r18=0&size=regular"; if (isR18) { url = "https://api.lolicon.app/setu/v2?r18=1&size=regular"; } if (!StringUtils.isEmpty(key)) { if (isR18) { url = "https://api.lolicon.app/setu/v2?tag=" + URLEncoder.encode(key, StandardCharsets.UTF_8) + "&r18=1&size=regular"; } else { url = "https://api.lolicon.app/setu/v2?tag=" + URLEncoder.encode(key, StandardCharsets.UTF_8) + "&r18=0&size=regular"; } } String ret = HttpTools.get(url); JSONObject json = JSONObject.parseObject(ret); System.out.println("涩图反馈 = " + json); if (json.getJSONArray("data").size() == 0) { QQBotManager.getInstance().sendMessage(qq, "找不到喵~"); return; } JSONObject item = json.getJSONArray("data").getJSONObject(0); StringBuilder builder = new StringBuilder(); builder.append(item.getString("title")); builder.append("\n"); builder.append("R18:"); if (item.getBoolean("r18")) { builder.append("YES!"); } else { builder.append("NO~"); } builder.append("\n"); builder.append("tags:"); for (Object tags : item.getJSONArray("tags")) { builder.append(tags).append("、"); } HttpTools.download(item.getJSONObject("urls").getString("original"), System.currentTimeMillis() + "_setu.jpg", true , new DownloadInterface() { @Override public void onDownload(File file) { super.onDownload(file); QQBotManager.getInstance().sendMessage(file, qq, builder.toString()); } @Override public void onError(Exception e) { super.onError(e); QQBotManager.getInstance().sendMessage(qq, "获取失败喵~"); } }); } } public static void main(String[] args) { String msg="来点1色图"; Pattern pattern = Pattern.compile("来点(.*?)色图"); Matcher matcher=pattern.matcher(msg); String key=null; if(matcher.find()){ key=matcher.group(1); } System.out.println("key = " + key); } }