斜线响应使其基本符合 t.me/hasutestbot 标准 (#26) 修复版本号改错

This commit is contained in:
A.C.Sukazyo Eyre 2022-03-14 14:10:56 +08:00
parent b9aa9de57a
commit 79e61e28a2
Signed by: Eyre_S
GPG Key ID: EFB47D98FE082FAD
3 changed files with 22 additions and 25 deletions

View File

@ -1,6 +1,6 @@
## Core ## Core
VERSION = 0.5.2.1 VERSION = 0.6.0.2
# dependencies # dependencies

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.5.2.1"; public static final String VERSION = "0.6.0.2";
public static final long COMPILE_TIMESTAMP = 1647170439025L; public static final long COMPILE_TIMESTAMP = 1647237887029L;
} }

View File

@ -38,25 +38,23 @@ public class OnUserSlashAction extends EventListener {
return false; return false;
} }
int prefixLength = 1; final String[] action = CommonCommand.format(text);
boolean useVerbSuffix = true; action[0] = action[0].substring(1);
boolean useObjectPrefix = true;
if (text.startsWith("//#") || text.startsWith("///")) { if (action[0].matches("^[a-zA-Z_]+$")) {
useVerbSuffix = false; return false; // 忽略掉 Telegram 命令格式的输入
useObjectPrefix = false; } else if (action[0].contains("/")) {
prefixLength = 3; return false; // 忽略掉疑似目录格式的输入
} else if (text.startsWith("/#")) {
useObjectPrefix = false;
prefixLength = 2;
} else if (text.startsWith("//")) {
useVerbSuffix = false;
prefixLength = 2;
} }
final String[] action = CommonCommand.format(text.substring(prefixLength)); final boolean isHardParse = "".equals(action[0]);
final String verb = action[0]; /* 忽略空数据 */ if (isHardParse && action.length < 2) { return false; }
final boolean hasObject = action.length != 1; final String verb = isHardParse ? action[1] : action[0];
final String object = StringArrays.connectStringArray(action, " ", 1, action.length-1); final boolean hasObject = action.length != (isHardParse?2:1);
final String object =
hasObject ?
StringArrays.connectStringArray(action, " ", isHardParse?2:1, action.length-1) :
"";
final User origin = event.message().from(); final User origin = event.message().from();
final User target = (event.message().replyToMessage() == null ? ( final User target = (event.message().replyToMessage() == null ? (
origin origin
@ -67,16 +65,15 @@ public class OnUserSlashAction extends EventListener {
MornyCoeur.extra().exec(new SendMessage( MornyCoeur.extra().exec(new SendMessage(
event.message().chat().id(), event.message().chat().id(),
String.format( String.format(
"%s %s%s %s%s%s", "%s %s%s %s %s!",
TGToString.as(origin).firstnameRefHtml(), TGToString.as(origin).firstnameRefHtml(),
verb, escapeHtml((useVerbSuffix?"":"")), escapeHtml(verb), escapeHtml((hasObject?"":"")),
origin==target ? origin==target ?
"<a href='tg://user?id="+target.id()+"'>自己</a>" : "<a href='tg://user?id="+target.id()+"'>自己</a>" :
TGToString.as(target).firstnameRefHtml(), TGToString.as(target).firstnameRefHtml(),
escapeHtml((hasObject ? (useObjectPrefix ?"": " ") : "")), escapeHtml(hasObject ? object+" " : "")
escapeHtml((hasObject ? object : ""))
) )
).parseMode(ParseMode.HTML)); ).parseMode(ParseMode.HTML).replyToMessageId(event.message().messageId()));
return true; return true;