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
|
||||
|
||||
VERSION = 0.4.3.1
|
||||
VERSION = 0.4.3.2
|
||||
|
||||
# dependencies
|
||||
|
||||
|
@ -4,6 +4,6 @@ package cc.sukazyo.cono.morny;
|
||||
* the final field that will be updated by gradle automatically.
|
||||
*/
|
||||
public class GradleProjectConfigures {
|
||||
public static final String VERSION = "0.4.3.1";
|
||||
public static final long COMPILE_TIMESTAMP = 1641201595120L;
|
||||
public static final String VERSION = "0.4.3.2";
|
||||
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.GetUsernameAndId;
|
||||
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.TelegramStickers;
|
||||
import cc.sukazyo.untitled.util.telegram.object.InputCommand;
|
||||
@ -67,6 +68,9 @@ public class OnCommandExecute extends EventListener {
|
||||
case "/whois":
|
||||
Ip186Query.exec(event, command);
|
||||
break;
|
||||
case "/nbnhhsh":
|
||||
Nbnhhsh.exec(event, command);
|
||||
break;
|
||||
default:
|
||||
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