mirror of
https://github.com/Eyre-S/Coeur-Morny-Cono.git
synced 2024-11-22 03:04:54 +08:00
简单log实现,完成tg连线,响应在线和退出命令,退出命令的简单身份验证
This commit is contained in:
parent
646fca642a
commit
aed6212ff1
@ -3,15 +3,19 @@ plugins {
|
||||
}
|
||||
|
||||
group 'cc.sukazyo'
|
||||
version '1.0-dev'
|
||||
version '0.1'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation 'com.github.pengrad:java-telegram-bot-api:5.3.0'
|
||||
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
|
||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
|
||||
|
||||
}
|
||||
|
||||
test {
|
||||
|
25
src/main/java/cc/sukazyo/cono/morny/Logger.java
Normal file
25
src/main/java/cc/sukazyo/cono/morny/Logger.java
Normal file
@ -0,0 +1,25 @@
|
||||
package cc.sukazyo.cono.morny;
|
||||
|
||||
public class Logger {
|
||||
|
||||
public static final Logger logger = new Logger();
|
||||
|
||||
public void info(String message) {
|
||||
System.out.println(
|
||||
"[INFO]" +
|
||||
message.replaceAll("\\n", "\n[INFO]")
|
||||
);
|
||||
}
|
||||
|
||||
public void warn (String message) {
|
||||
waring(message);
|
||||
}
|
||||
|
||||
public void waring (String message) {
|
||||
System.out.println(
|
||||
"[WARN]" +
|
||||
message.replaceAll("\\n", "\n[WARN]")
|
||||
);
|
||||
}
|
||||
|
||||
}
|
49
src/main/java/cc/sukazyo/cono/morny/MornyCoeur.java
Normal file
49
src/main/java/cc/sukazyo/cono/morny/MornyCoeur.java
Normal file
@ -0,0 +1,49 @@
|
||||
package cc.sukazyo.cono.morny;
|
||||
|
||||
import cc.sukazyo.cono.morny.bot.OnUpdate;
|
||||
import com.pengrad.telegrambot.TelegramBot;
|
||||
import com.pengrad.telegrambot.request.GetMe;
|
||||
|
||||
import static cc.sukazyo.cono.morny.Logger.logger;
|
||||
|
||||
public class MornyCoeur {
|
||||
|
||||
private static TelegramBot account;
|
||||
|
||||
public static void main (String[] args) {
|
||||
|
||||
logger.info("System Starting");
|
||||
|
||||
logger.info("args key: " + args[0]);
|
||||
|
||||
account = login(args[0]);
|
||||
|
||||
logger.info("Bot login succeed.");
|
||||
|
||||
account.setUpdatesListener(OnUpdate::onNormalUpdate);
|
||||
|
||||
logger.info("System start complete");
|
||||
|
||||
}
|
||||
|
||||
public static TelegramBot login (String key) {
|
||||
TelegramBot account = new TelegramBot(key);
|
||||
logger.info("Trying to login...");
|
||||
for (int i = 1; i < 4; i++) {
|
||||
if (i != 1) logger.info("retrying...");
|
||||
try {
|
||||
logger.info("Succeed login to @" + account.execute(new GetMe()).user().username());
|
||||
return account;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace(System.out);
|
||||
logger.info("login failed.");
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("Login failed..");
|
||||
}
|
||||
|
||||
public static TelegramBot getAccount () {
|
||||
return account;
|
||||
}
|
||||
|
||||
}
|
20
src/main/java/cc/sukazyo/cono/morny/MornyTrusted.java
Normal file
20
src/main/java/cc/sukazyo/cono/morny/MornyTrusted.java
Normal file
@ -0,0 +1,20 @@
|
||||
package cc.sukazyo.cono.morny;
|
||||
|
||||
import com.pengrad.telegrambot.model.ChatMember;
|
||||
import com.pengrad.telegrambot.request.GetChatMember;
|
||||
|
||||
public class MornyTrusted {
|
||||
|
||||
public static final long TRUSTED_CHAT_ID = -1001541451710L;
|
||||
|
||||
public static boolean isTrusted (long userId) {
|
||||
ChatMember chatMember = MornyCoeur.getAccount().execute(new GetChatMember(TRUSTED_CHAT_ID, userId)).chatMember();
|
||||
return (
|
||||
chatMember != null && (
|
||||
chatMember.status() == ChatMember.Status.administrator ||
|
||||
chatMember.status() == ChatMember.Status.creator
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,67 @@
|
||||
package cc.sukazyo.cono.morny.bot;
|
||||
|
||||
import cc.sukazyo.cono.morny.MornyCoeur;
|
||||
import cc.sukazyo.cono.morny.MornyTrusted;
|
||||
import com.pengrad.telegrambot.model.Update;
|
||||
import com.pengrad.telegrambot.request.SendSticker;
|
||||
|
||||
import static cc.sukazyo.cono.morny.Logger.logger;
|
||||
|
||||
public class OnCommandExecute {
|
||||
|
||||
private static final String ONLINE_STATUS_RETURN_STICKER_ID = "CAACAgEAAx0CW-CvvgAC5eBhhhODGRuu0pxKLwoQ3yMsowjviAACcycAAnj8xgVVU666si1utiIE";
|
||||
private static final String HELLO_STICKER_ID = "CAACAgEAAxkBAAMnYYYWKNXO4ibo9dlsmDctHhhV6fIAAqooAAJ4_MYFJJhrHS74xUAiBA";
|
||||
private static final String EXIT_STICKER_ID = "CAACAgEAAxkBAAMoYYYWt8UjvP0N405SAyvg2SQZmokAAkMiAAJ4_MYFw6yZLu06b-MiBA";
|
||||
private static final String EXIT_403_STICKER_ID = "CAACAgEAAxkBAAMqYYYa_7hpXH6hMOYMX4Nh8AVYd74AAnQnAAJ4_MYFRdmmsQKLDZgiBA";
|
||||
|
||||
public static void searchForCommands (Update event) {
|
||||
switch (event.message().text()) {
|
||||
case "/o":
|
||||
onCommandOnExec(event);
|
||||
break;
|
||||
case "/hi":
|
||||
case "/hello":
|
||||
onCommandHelloExec(event);
|
||||
break;
|
||||
case "/exit":
|
||||
onCommandExitExec(event);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
private static void onCommandOnExec (Update event) {
|
||||
MornyCoeur.getAccount().execute(new SendSticker(
|
||||
event.message().chat().id(),
|
||||
ONLINE_STATUS_RETURN_STICKER_ID
|
||||
).replyToMessageId(event.message().messageId())
|
||||
);
|
||||
}
|
||||
|
||||
private static void onCommandHelloExec (Update event) {
|
||||
MornyCoeur.getAccount().execute(new SendSticker(
|
||||
event.message().chat().id(),
|
||||
HELLO_STICKER_ID
|
||||
).replyToMessageId(event.message().messageId())
|
||||
);
|
||||
}
|
||||
|
||||
private static void onCommandExitExec (Update event) {
|
||||
if (MornyTrusted.isTrusted(event.message().from().id())) {
|
||||
MornyCoeur.getAccount().execute(new SendSticker(
|
||||
event.message().chat().id(),
|
||||
EXIT_STICKER_ID
|
||||
).replyToMessageId(event.message().messageId())
|
||||
);
|
||||
logger.info("Morny exited by user @" + event.message().from().username());
|
||||
System.exit(0);
|
||||
} else {
|
||||
MornyCoeur.getAccount().execute(new SendSticker(
|
||||
event.message().chat().id(),
|
||||
EXIT_403_STICKER_ID
|
||||
).replyToMessageId(event.message().messageId())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
21
src/main/java/cc/sukazyo/cono/morny/bot/OnUpdate.java
Normal file
21
src/main/java/cc/sukazyo/cono/morny/bot/OnUpdate.java
Normal file
@ -0,0 +1,21 @@
|
||||
package cc.sukazyo.cono.morny.bot;
|
||||
|
||||
import com.pengrad.telegrambot.UpdatesListener;
|
||||
import com.pengrad.telegrambot.model.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OnUpdate {
|
||||
|
||||
public static int onNormalUpdate (List<Update> updates) {
|
||||
for (Update update : updates) {
|
||||
if (update.message() != null) {
|
||||
if (update.message().text() != null) {
|
||||
new Thread(() -> OnCommandExecute.searchForCommands(update)).start();
|
||||
}
|
||||
}
|
||||
}
|
||||
return UpdatesListener.CONFIRMED_UPDATES_ALL;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user