mirror of
https://github.com/Eyre-S/Coeur-Morny-Cono.git
synced 2024-11-22 11:14:55 +08:00
添加 /nbnhhsh 查询功能
This commit is contained in:
parent
2a34b576b6
commit
82d557df51
@ -1,6 +1,6 @@
|
|||||||
## Core
|
## Core
|
||||||
|
|
||||||
VERSION = 0.4.3.1
|
VERSION = 0.4.3.2
|
||||||
|
|
||||||
# dependencies
|
# dependencies
|
||||||
|
|
||||||
|
@ -4,6 +4,6 @@ package cc.sukazyo.cono.morny;
|
|||||||
* the final field that will be updated by gradle automatically.
|
* the final field that will be updated by gradle automatically.
|
||||||
*/
|
*/
|
||||||
public class GradleProjectConfigures {
|
public class GradleProjectConfigures {
|
||||||
public static final String VERSION = "0.4.3.1";
|
public static final String VERSION = "0.4.3.2";
|
||||||
public static final long COMPILE_TIMESTAMP = 1641201595120L;
|
public static final long COMPILE_TIMESTAMP = 1641531965975L;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import cc.sukazyo.cono.morny.bot.api.EventListener;
|
|||||||
import cc.sukazyo.cono.morny.bot.event.on_commands.EventHack;
|
import cc.sukazyo.cono.morny.bot.event.on_commands.EventHack;
|
||||||
import cc.sukazyo.cono.morny.bot.event.on_commands.GetUsernameAndId;
|
import cc.sukazyo.cono.morny.bot.event.on_commands.GetUsernameAndId;
|
||||||
import cc.sukazyo.cono.morny.bot.event.on_commands.Ip186Query;
|
import cc.sukazyo.cono.morny.bot.event.on_commands.Ip186Query;
|
||||||
|
import cc.sukazyo.cono.morny.bot.event.on_commands.Nbnhhsh;
|
||||||
import cc.sukazyo.cono.morny.data.MornyJrrp;
|
import cc.sukazyo.cono.morny.data.MornyJrrp;
|
||||||
import cc.sukazyo.cono.morny.data.TelegramStickers;
|
import cc.sukazyo.cono.morny.data.TelegramStickers;
|
||||||
import cc.sukazyo.untitled.util.telegram.object.InputCommand;
|
import cc.sukazyo.untitled.util.telegram.object.InputCommand;
|
||||||
@ -67,6 +68,9 @@ public class OnCommandExecute extends EventListener {
|
|||||||
case "/whois":
|
case "/whois":
|
||||||
Ip186Query.exec(event, command);
|
Ip186Query.exec(event, command);
|
||||||
break;
|
break;
|
||||||
|
case "/nbnhhsh":
|
||||||
|
Nbnhhsh.exec(event, command);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return nonCommandExecutable(event, command);
|
return nonCommandExecutable(event, command);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,52 @@
|
|||||||
|
package cc.sukazyo.cono.morny.bot.event.on_commands;
|
||||||
|
|
||||||
|
import com.pengrad.telegrambot.model.Update;
|
||||||
|
import com.pengrad.telegrambot.model.request.ParseMode;
|
||||||
|
import com.pengrad.telegrambot.request.SendMessage;
|
||||||
|
|
||||||
|
import cc.sukazyo.cono.morny.MornyCoeur;
|
||||||
|
import cc.sukazyo.cono.morny.data.NbnhhshQuery;
|
||||||
|
import cc.sukazyo.untitled.util.string.StringArrays;
|
||||||
|
import cc.sukazyo.untitled.util.telegram.object.InputCommand;
|
||||||
|
|
||||||
|
import static cc.sukazyo.untitled.util.telegram.formatting.MsgEscape.escapeHtml;
|
||||||
|
|
||||||
|
public class Nbnhhsh {
|
||||||
|
|
||||||
|
public static void exec (Update event, InputCommand command) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
String queryTarget = "";
|
||||||
|
if (event.message().replyToMessage() != null && event.message().replyToMessage().text() != null)
|
||||||
|
queryTarget = event.message().replyToMessage().text();
|
||||||
|
if (command.hasArgs())
|
||||||
|
queryTarget = StringArrays.connectStringArray(command.getArgs(), " ", 0, command.getArgs().length-1);
|
||||||
|
|
||||||
|
NbnhhshQuery.GuessResult response = NbnhhshQuery.sendGuess(queryTarget);
|
||||||
|
|
||||||
|
StringBuilder message = new StringBuilder("<a href=\"https://lab.magiconch.com/nbnhhsh/\">## Result of nbnhhsh query :</a>");
|
||||||
|
|
||||||
|
for (NbnhhshQuery.Word word : response.words) {
|
||||||
|
if (word.trans == null) continue;
|
||||||
|
message.append("\n\n<b>[[ ").append(escapeHtml(word.name)).append(" ]]</b>");
|
||||||
|
for (String trans : word.trans) {
|
||||||
|
message.append("\n* <i>").append(escapeHtml(trans)).append("</i>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MornyCoeur.getAccount().execute(new SendMessage(
|
||||||
|
event.message().chat().id(),
|
||||||
|
message.toString()
|
||||||
|
).parseMode(ParseMode.HTML).replyToMessageId(event.message().messageId()));
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
MornyCoeur.getAccount().execute(new SendMessage(
|
||||||
|
event.message().chat().id(),
|
||||||
|
"[Exception] in query:\n<code>" + escapeHtml(e.getMessage()) + "</code>"
|
||||||
|
).parseMode(ParseMode.HTML).replyToMessageId(event.message().messageId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
53
src/main/java/cc/sukazyo/cono/morny/data/NbnhhshQuery.java
Normal file
53
src/main/java/cc/sukazyo/cono/morny/data/NbnhhshQuery.java
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
package cc.sukazyo.cono.morny.data;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
|
import okhttp3.MediaType;
|
||||||
|
import okhttp3.OkHttpClient;
|
||||||
|
import okhttp3.Request;
|
||||||
|
import okhttp3.RequestBody;
|
||||||
|
import okhttp3.Response;
|
||||||
|
import okhttp3.ResponseBody;
|
||||||
|
|
||||||
|
public class NbnhhshQuery {
|
||||||
|
|
||||||
|
public static class Word {
|
||||||
|
public String name;
|
||||||
|
public String[] trans;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class GuessResult {
|
||||||
|
public Word[] words;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static record GuessReq (String text) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final String API_URL = "https://lab.magiconch.com/api/nbnhhsh/";
|
||||||
|
public static final String API_GUESS_METHOD = "guess/";
|
||||||
|
public static final String API_GUESS_DATA_TEMPLATE = "{ \"text\": \"%s\" }";
|
||||||
|
|
||||||
|
private static final OkHttpClient httpClient = new OkHttpClient();
|
||||||
|
public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
|
||||||
|
|
||||||
|
public static GuessResult sendGuess (String text) throws IOException {
|
||||||
|
final String reqJsonText = new Gson().toJson(new GuessReq(text));
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(API_URL + API_GUESS_METHOD)
|
||||||
|
.post(RequestBody.create(JSON, reqJsonText))
|
||||||
|
.build();
|
||||||
|
try (Response response = httpClient.newCall(request).execute()) {
|
||||||
|
final ResponseBody body = response.body();
|
||||||
|
if (body == null) throw new IOException("Null body.");
|
||||||
|
final String x = "{ \"words\": " + body.string() + " }";
|
||||||
|
return new Gson().fromJson(x, GuessResult.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println(new Gson().toJson(new GuessReq("8h28oey8 qe89 aoHO*)I'[ IK\"@+ )EOI)D\"{AIR\")Q @}")));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user