From 80557e9cccf380c2929f21c1576bcdd02047fd2c Mon Sep 17 00:00:00 2001 From: RTAkland Date: Tue, 8 Oct 2024 15:15:51 +0800 Subject: [PATCH] feat: add the history of today command --- src/main/kotlin/cn/rtast/fancybot/Const.kt | 4 +- .../lookup/TheHistoryOfTodayCommand.kt | 50 +++++++++++++++++++ .../kotlin/cn/rtast/fancybot/entity/Config.kt | 3 +- .../entity/tianxing/HistoryOfToday.kt | 24 +++++++++ .../rtast/fancybot/util/file/ConfigManager.kt | 1 + src/main/resources/config.json | 3 +- 6 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 src/main/kotlin/cn/rtast/fancybot/commands/lookup/TheHistoryOfTodayCommand.kt create mode 100644 src/main/kotlin/cn/rtast/fancybot/entity/tianxing/HistoryOfToday.kt diff --git a/src/main/kotlin/cn/rtast/fancybot/Const.kt b/src/main/kotlin/cn/rtast/fancybot/Const.kt index 2e40baa..a138f34 100644 --- a/src/main/kotlin/cn/rtast/fancybot/Const.kt +++ b/src/main/kotlin/cn/rtast/fancybot/Const.kt @@ -66,7 +66,8 @@ val DEFAULT_CONFIG = Config( llamaModel = "llama3.1", qqMusicApiUrl = "http://127.0.0.1:3200", startUpNoticeUser = 114514L, - selfId = 114514L + selfId = 114514L, + tianXingApiKey = "1145141919810" ) val configManager = ConfigManager() @@ -122,4 +123,5 @@ val commands = listOf( ZDJDCommand(), ScanQRCodeCommand(), TTSCommand(), SlimeChunkHelperCommand(), SupportMeCommand(), TheCatCommand(), + TheHistoryOfTodayCommand() ) \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/TheHistoryOfTodayCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/TheHistoryOfTodayCommand.kt new file mode 100644 index 0000000..83e9da9 --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/TheHistoryOfTodayCommand.kt @@ -0,0 +1,50 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/10/8 + */ + + +package cn.rtast.fancybot.commands.lookup + +import cn.rtast.fancybot.configManager +import cn.rtast.fancybot.entity.tianxing.HistoryOfToday +import cn.rtast.fancybot.util.Http +import cn.rtast.rob.entity.GroupMessage +import cn.rtast.rob.util.BaseCommand +import cn.rtast.rob.util.ob.MessageChain +import cn.rtast.rob.util.ob.OneBotListener +import cn.rtast.rob.util.ob.asNode +import java.time.LocalDateTime +import java.time.ZoneId +import java.time.format.DateTimeFormatter + +class TheHistoryOfTodayCommand : BaseCommand() { + override val commandNames = listOf("历史上的今天") + + private val tianXingApiUrl = "https://apis.tianapi.com/lishi/index" + private val tianXingApiKey = configManager.tianXingApiKey + + override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List) { + val currentDateTime = LocalDateTime.now(ZoneId.of("Asia/Shanghai")) + val formatter = DateTimeFormatter.ofPattern("MMdd") + val currentDate = currentDateTime.format(formatter) + val messages = mutableListOf() + Http.get( + tianXingApiUrl, + mapOf( + "key" to tianXingApiKey, + "date" to currentDate, + ) + ).result.list.forEach { + messages.add( + MessageChain.Builder() + .addText("事件: ${it.title}") + .addNewLine() + .addText("发生日期: ${it.lsDate}") + .build() + ) + } + message.reply(messages.asNode(configManager.selfId)) + } +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/Config.kt b/src/main/kotlin/cn/rtast/fancybot/entity/Config.kt index b8d4ebd..3a0d8d3 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/Config.kt +++ b/src/main/kotlin/cn/rtast/fancybot/entity/Config.kt @@ -34,5 +34,6 @@ data class Config( val llamaModel: String, val qqMusicApiUrl: String, val startUpNoticeUser: Long, - val selfId: Long + val selfId: Long, + val tianXingApiKey: String, ) \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/tianxing/HistoryOfToday.kt b/src/main/kotlin/cn/rtast/fancybot/entity/tianxing/HistoryOfToday.kt new file mode 100644 index 0000000..1ac06fc --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/entity/tianxing/HistoryOfToday.kt @@ -0,0 +1,24 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/10/8 + */ + + +package cn.rtast.fancybot.entity.tianxing + +import com.google.gson.annotations.SerializedName + +data class HistoryOfToday( + val result: Result +) { + data class Result( + val list: List + ) + + data class Element( + val title: String, + @SerializedName("lsdate") + val lsDate: String + ) +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/util/file/ConfigManager.kt b/src/main/kotlin/cn/rtast/fancybot/util/file/ConfigManager.kt index 24ad802..3f1ac2a 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/file/ConfigManager.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/file/ConfigManager.kt @@ -36,4 +36,5 @@ class ConfigManager : JsonFileHandler("config.json") { val qqMusicApiUrl = config.qqMusicApiUrl val startUpNoticeUser = config.startUpNoticeUser val selfId = config.selfId + val tianXingApiKey = config.tianXingApiKey } \ No newline at end of file diff --git a/src/main/resources/config.json b/src/main/resources/config.json index 0313f1b..304ea1b 100644 --- a/src/main/resources/config.json +++ b/src/main/resources/config.json @@ -27,5 +27,6 @@ "llamaModel": "llama3.1", "qqMusicApiUrl": "http://127.0.0.1:3200", "startUpNoticeUser": 114514, - "selfId": 114514 + "selfId": 114514, + "tianXingApiKey": "1145141919810" } \ No newline at end of file