147 lines
5.3 KiB
Java
Raw Normal View History

2022-01-01 23:36:12 +08:00
package com.yutou.qqbot.models.setu;
2022-01-02 00:14:27 +08:00
import com.alibaba.fastjson.JSONObject;
2022-01-01 23:36:12 +08:00
import com.yutou.qqbot.QQBotManager;
import com.yutou.qqbot.interfaces.DownloadInterface;
import com.yutou.qqbot.models.Model;
import com.yutou.qqbot.utlis.HttpTools;
2022-04-17 01:49:48 +08:00
import com.yutou.qqbot.utlis.Log;
2022-04-17 01:20:40 +08:00
import com.yutou.qqbot.utlis.StringUtils;
2022-01-01 23:36:12 +08:00
import net.mamoe.mirai.event.events.MessageEvent;
import net.mamoe.mirai.message.data.MessageChainBuilder;
import java.io.File;
2022-04-17 01:20:40 +08:00
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
2022-04-17 21:37:08 +08:00
import java.util.regex.Matcher;
import java.util.regex.Pattern;
2022-01-01 23:36:12 +08:00
public class GetSeTu extends Model {
@Override
public boolean isUserPublic() {
return true;
}
@Override
public String[] getUsePowers() {
return new String[0];
}
@Override
public String getModelName() {
return "随机二次元图";
}
2022-01-01 23:36:12 +08:00
@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;
2022-04-17 21:37:08 +08:00
msg = msg.replace("涩图", "色图");
}
if (isRun) {
Log.i(event.getSource().getFromId() + " > " + msg);
2022-04-17 21:37:08 +08:00
Pattern pattern = Pattern.compile("来点(.*?)色图");
Matcher matcher = pattern.matcher(msg);
String key = null;
if (matcher.find()) {
key = matcher.group(1);
2022-04-17 21:37:08 +08:00
}
if (!getSeTu("tag", key, isR18, false, qq, event)) {
if (!getSeTu("tag", key, isR18, true, qq, event)) {
if (!getSeTu("keyword", key, isR18, true, qq, event)) {
QQBotManager.getInstance().sendMessage(qq, "找不到喵~ 不如随便来点吧~");
getSeTu("tag", null, false, false, qq, event);
}
}
2022-04-17 01:20:40 +08:00
}
}
}
private boolean getSeTu(String model, String key, boolean r18, boolean fuzzyR18, Long qq, MessageEvent event) {
String url = "https://api.lolicon.app/setu/v2?r18=0&size=regular";
if (r18) {
url = "https://api.lolicon.app/setu/v2?r18=1&size=regular";
}
if (!StringUtils.isEmpty(key)) {
if ("tag".equals(model)) {
String[] keys = key.split(" ");
StringBuilder keyBuilder = new StringBuilder();
for (String _key : keys) {
keyBuilder.append(URLEncoder.encode(_key,StandardCharsets.UTF_8)).append("&tag=");
}
key = keyBuilder.toString();
key = key.substring(0, key.length() - 5);
}else{
key=URLEncoder.encode(key,StandardCharsets.UTF_8);
}
if (r18) {
url = "https://api.lolicon.app/setu/v2?" + model + "=" + key + "&r18=1&size=regular";
} else {
url = "https://api.lolicon.app/setu/v2?" + model + "=" + key + "&r18=0&size=regular";
2022-04-17 02:24:26 +08:00
}
2022-01-01 23:36:12 +08:00
}
if (fuzzyR18) {
url = url.replace("&r18=0", "&r18=2").replace("&r18=1", "&r18=2");
}
System.out.println("url = " + url);
String ret = HttpTools.get(url);
JSONObject json = JSONObject.parseObject(ret);
if (json.getJSONArray("data").size() == 0) {
return false;
}
JSONObject item = json.getJSONArray("data").getJSONObject(0);
StringBuilder builder = new StringBuilder();
builder.append(item.getString("title"));
builder.append("\n");
2022-04-18 22:57:15 +08:00
builder.append("P站ID:");
builder.append(item.getInteger("pid"));
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("regular"),
System.currentTimeMillis() + "_setu.jpg",
true
, new DownloadInterface() {
@Override
public void onDownload(File file) {
super.onDownload(file);
QQBotManager.getInstance().sendMessage(file, qq, event.getMessage(), builder.toString());
}
@Override
public void onError(Exception e) {
super.onError(e);
QQBotManager.getInstance().sendMessage(qq, "获取失败喵~");
e.printStackTrace();
}
});
return true;
2022-01-01 23:36:12 +08:00
}
2022-01-02 00:14:27 +08:00
public static void main(String[] args) {
String msg = "来点1色图";
2022-04-17 21:41:54 +08:00
Pattern pattern = Pattern.compile("来点(.*?)色图");
Matcher matcher = pattern.matcher(msg);
String key = null;
if (matcher.find()) {
key = matcher.group(1);
2022-04-17 21:41:54 +08:00
}
System.out.println("key = " + key);
}
2022-01-01 23:36:12 +08:00
}