添加 inline/raw 功能,依赖更新与javadoc:Log修改

- 添加输出原始消息的 InlineQuery 功能。
- 依赖:messiva : 0.1.0.0 -> 0.1.0.1
This commit is contained in:
A.C.Sukazyo Eyre 2021-12-14 18:10:38 +08:00
parent 6c8f311faf
commit a2011e486d
Signed by: Eyre_S
GPG Key ID: EFB47D98FE082FAD
6 changed files with 107 additions and 7 deletions

View File

@ -1,12 +1,12 @@
## Core ## Core
VERSION = 0.4.1.2 VERSION = 0.4.1.3
# dependencies # dependencies
libSpotbugsVersion = 4.5.0 libSpotbugsVersion = 4.5.0
libMessivaVersion = 0.1.0.0 libMessivaVersion = 0.1.0.1
libJavaTelegramBotApiVersion = 5.5.0 libJavaTelegramBotApiVersion = 5.5.0

View File

@ -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.1.2"; public static final String VERSION = "0.4.1.3";
public static final long COMPILE_TIMESTAMP = 1639211288142L; public static final long COMPILE_TIMESTAMP = 1639476313268L;
} }

View File

@ -4,11 +4,15 @@ import cc.sukazyo.messiva.Logger;
import cc.sukazyo.messiva.appender.ConsoleAppender; import cc.sukazyo.messiva.appender.ConsoleAppender;
/** /**
* Morny 简单控制台 log 记录 * Morny log 管理
*/ */
public class Log { public class Log {
/** Morny 的 Logger 实例 */ /**
* Morny Logger 实例
* messiva 更新
* @since 0.4.1.1
*/
public static final Logger logger = new Logger(new ConsoleAppender()); public static final Logger logger = new Logger(new ConsoleAppender());
} }

View File

@ -8,13 +8,15 @@ public class EventListeners {
public static final OnActivityRecord ACTIVITY_RECORDER = new OnActivityRecord(); public static final OnActivityRecord ACTIVITY_RECORDER = new OnActivityRecord();
public static final OnUserSlashAction USER_SLASH_ACTION = new OnUserSlashAction(); public static final OnUserSlashAction USER_SLASH_ACTION = new OnUserSlashAction();
public static final OnUpdateTimestampOffsetLock UPDATE_TIMESTAMP_OFFSET_LOCK = new OnUpdateTimestampOffsetLock(); public static final OnUpdateTimestampOffsetLock UPDATE_TIMESTAMP_OFFSET_LOCK = new OnUpdateTimestampOffsetLock();
public static final OnInlineQuery INLINE_QUERY = new OnInlineQuery();
public static void registerAllListeners () { public static void registerAllListeners () {
EventListenerManager.addListener( EventListenerManager.addListener(
ACTIVITY_RECORDER, ACTIVITY_RECORDER,
UPDATE_TIMESTAMP_OFFSET_LOCK, UPDATE_TIMESTAMP_OFFSET_LOCK,
COMMANDS_LISTENER, COMMANDS_LISTENER,
USER_SLASH_ACTION USER_SLASH_ACTION,
INLINE_QUERY
); );
} }

View File

@ -0,0 +1,33 @@
package cc.sukazyo.cono.morny.bot.event;
import cc.sukazyo.cono.morny.MornyCoeur;
import cc.sukazyo.cono.morny.bot.api.EventListener;
import cc.sukazyo.cono.morny.util.EncryptUtils;
import com.pengrad.telegrambot.model.Update;
import com.pengrad.telegrambot.model.request.InlineQueryResultArticle;
import com.pengrad.telegrambot.model.request.InputTextMessageContent;
import com.pengrad.telegrambot.model.request.ParseMode;
import com.pengrad.telegrambot.request.AnswerInlineQuery;
import org.jetbrains.annotations.NotNull;
/**
* @since 0.4.1.3
*/
public class OnInlineQuery extends EventListener {
/**
* @since 0.4.1.3
*/
@Override
public boolean onInlineQuery (@NotNull Update update) {
MornyCoeur.getAccount().execute(new AnswerInlineQuery(update.inlineQuery().id(), new InlineQueryResultArticle[]{
new InlineQueryResultArticle(
EncryptUtils.encryptByMD5(update.inlineQuery().query()),
"Raw Input",
new InputTextMessageContent(update.inlineQuery().query()).parseMode(ParseMode.MarkdownV2)
)
}));
return true;
}
}

View File

@ -0,0 +1,61 @@
package cc.sukazyo.cono.morny.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* 用于数据加密或编码的工具类<br>
* <s>显然大部分代码是抄来的</s><br>
* <ul>
* <li><a href="https://blog.csdn.net/yu540135101/article/details/86765457">{@link #encryptByMD5} & {@link #byteToHex}
* & {@link #byteArrayToHex} 来源</a></li>
* </ul>
*/
public class EncryptUtils {
private final static String[] hexArray = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
/***
* 对指定的字符串进行MD5加密
*/
public static String encryptByMD5(String originString) {
try {
//创建具有MD5算法的信息摘要
MessageDigest md = MessageDigest.getInstance("MD5");
//使用指定的字节数组对摘要进行最后更新然后完成摘要计算
byte[] bytes = md.digest(originString.getBytes());
//将得到的字节数组变成字符串返回
String s = byteArrayToHex(bytes);
return s.toUpperCase();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
/**
* 将字节数组转换成十六进制并以字符串的形式返回
* 128位是指二进制位二进制太长所以一般都改写成16进制
* 每一位16进制数可以代替4位二进制数所以128位二进制数写成16进制就变成了128/4=32位
*/
private static String byteArrayToHex(byte[] b){
StringBuilder sb = new StringBuilder();
for (byte value : b) {
sb.append(byteToHex(value));
}
return sb.toString();
}
/**
* 将一个字节转换成十六进制并以字符串的形式返回
*/
public static String byteToHex(byte b) {
int n = b;
if (n < 0)
n = n + 256;
int d1 = n / 16;
int d2 = n % 16;
return hexArray[d1]+hexArray[d2];
}
}