118 lines
4.2 KiB
Java
118 lines
4.2 KiB
Java
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);
|
|
}
|
|
}
|