From 44e3e093d1271d4cf91313c6c0cb4d31509fec27 Mon Sep 17 00:00:00 2001 From: RTAkland Date: Sun, 29 Sep 2024 14:15:16 +0800 Subject: [PATCH] chore: chore: chore: chore: chore: chore: chore: chore: chore: chore: chore: chore --- gradle/libs.versions.toml | 2 +- src/main/kotlin/cn/rtast/fancybot/Const.kt | 2 +- .../fancybot/commands/lookup/MusicCommand.kt | 105 +++--------------- .../fancybot/commands/misc/TenSetuCommand.kt | 30 +++++ .../fancybot/entity/music/qq/CoverImage.kt | 20 ---- .../entity/music/qq/QMSearchResult.kt | 18 --- .../fancybot/entity/music/qq/QQMSearch.kt | 12 -- 7 files changed, 48 insertions(+), 141 deletions(-) create mode 100644 src/main/kotlin/cn/rtast/fancybot/commands/misc/TenSetuCommand.kt delete mode 100644 src/main/kotlin/cn/rtast/fancybot/entity/music/qq/CoverImage.kt delete mode 100644 src/main/kotlin/cn/rtast/fancybot/entity/music/qq/QMSearchResult.kt diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 813f5e7..3a45f2f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlinVersion = "2.0.10" -ronebotVersion = "1.11.6" +ronebotVersion = "1.11.7" shadowVersion = "8.3.0" okhttpVersion = "5.0.0-alpha.14" exposedVersion = "0.53.0" diff --git a/src/main/kotlin/cn/rtast/fancybot/Const.kt b/src/main/kotlin/cn/rtast/fancybot/Const.kt index 6951f40..4f11caa 100644 --- a/src/main/kotlin/cn/rtast/fancybot/Const.kt +++ b/src/main/kotlin/cn/rtast/fancybot/Const.kt @@ -104,5 +104,5 @@ val commands = listOf( DMSearchCommand(), LlamaCommand(), QQMusicCommand(), BullShitGenerateCommand(), NiuziRankCommand(), NiuziBankRankCommand(), - ShotSelfCommand() + ShotSelfCommand(), TenSetuCommand() ) \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/MusicCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/MusicCommand.kt index 7cf3be7..904e365 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/MusicCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/MusicCommand.kt @@ -12,32 +12,27 @@ import cn.rtast.fancybot.configManager import cn.rtast.fancybot.entity.music.Search import cn.rtast.fancybot.entity.music.SearchedResult import cn.rtast.fancybot.entity.music.SongUrl -import cn.rtast.fancybot.entity.music.qq.CoverImage -import cn.rtast.fancybot.entity.music.qq.QMSearchResult import cn.rtast.fancybot.entity.music.qq.QQMSearch import cn.rtast.fancybot.util.Http -import cn.rtast.fancybot.util.str.encodeToBase64 -import cn.rtast.fancybot.util.str.formatToMinutes import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.enums.MusicShareType import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain -import cn.rtast.rob.util.ob.NodeMessageChain import cn.rtast.rob.util.ob.OneBotListener -import java.io.FileNotFoundException -import java.net.URI import java.time.Instant @CommandDescription("网易云音乐点歌") class MusicCommand : BaseCommand() { - override val commandNames = listOf("点歌") + override val commandNames = listOf("点歌", "music") private val searchedResult = mutableMapOf>() companion object { + private val MUSIC_API_URL = configManager.ncmAPI + fun searchSong(keyword: String): Search { return Http.get( - "${configManager.ncmAPI}/search", + "$MUSIC_API_URL/search", mapOf("keywords" to keyword), ) } @@ -68,7 +63,7 @@ class MusicCommand : BaseCommand() { val msg = MessageChain.Builder() .addMusicShare(MusicShareType.Netease, finalResult.id.toString()) .build() - message.reply(msg) + listener.sendGroupMessage(message.groupId, msg) } catch (_: Exception) { message.reply("输入有误请重新搜索本次搜索结果已清除") } @@ -127,8 +122,10 @@ class MusicCommand : BaseCommand() { class MusicPlayUrlCommand : BaseCommand() { override val commandNames = listOf("lj") + private val musicApiUrl = configManager.ncmAPI + private fun getPlayUrl(id: String): String { - return Http.get("${configManager.ncmAPI}/song/url", mapOf("id" to id)).data.first().url + return Http.get("$musicApiUrl/song/url", mapOf("id" to id)).data.first().url } override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List) { @@ -154,87 +151,17 @@ class QQMusicCommand : BaseCommand() { private val qqMusicApiUrl = configManager.qqMusicApiUrl - private val recordMap = mutableMapOf>() - override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List) { if (args.isEmpty()) { message.reply("发送`/qm <关键词>`即可搜索qq音乐的音乐哦") return } - this.recordMap.forEach { (key, results) -> - val validResults = results.filter { result -> - Instant.now().epochSecond - result.timestamp <= 30 - } - if (validResults.isEmpty()) { - recordMap.remove(key) - } else { - recordMap[key] = validResults - } - } - val method = args.first() - when (method) { - "p" -> { - try { - val index = args.last().toInt() - val result = recordMap[message.sender.userId]!![index] - val msg = MessageChain.Builder() - .addMusicShare(MusicShareType.QQ, result.id.toString()) - .build() - listener.sendGroupMessage(message.groupId, msg) - } catch (_: Exception) { - message.reply("回复错误已清除本次搜索结果") - } - recordMap.remove(message.sender.userId) - } - - else -> { - try { - val keyword = args.joinToString(" ") - val response = Http.get( - "$qqMusicApiUrl/getSearchByKey", - mapOf("key" to keyword) - ).response.data.song.list - val tempResultList = mutableListOf() - response.forEach { - val coverUrl = Http.get( - "$qqMusicApiUrl/getImageUrl", - mapOf("id" to it.albumMid) - ) - val tempSearchResult = QMSearchResult( - it.songId, it.songName, it.singer.joinToString(", ") { join -> join.name }, - it.interval, it.songMid, Instant.now().epochSecond, coverUrl.response.data.imageUrl - ) - tempResultList.add(tempSearchResult) - } - recordMap[message.sender.userId] = tempResultList - val nodeMsg = NodeMessageChain.Builder() - val headerMsg = MessageChain.Builder() - .addText("发送 `qm p <序号>`即可返回对应的歌曲") - .addNewLine() - .addText("你有30秒的时间进行操作") - .build() - nodeMsg.addMessageChain(headerMsg, message.sender.userId) - tempResultList.forEachIndexed { index, it -> - try { - val imageBase64 = URI(it.albumUrl).toURL().readBytes().encodeToBase64() - val msg = MessageChain.Builder() - .addImage(imageBase64, true) - .addText("序号: $index") - .addNewLine() - .addText("歌曲名: ${it.name}") - .addNewLine() - .addText("歌手: ${it.singers}") - .addNewLine() - .addText("时长: ${it.interval.formatToMinutes()}") - .build() - nodeMsg.addMessageChain(msg, configManager.selfId) - } catch (_: FileNotFoundException) { - } - } - message.reply(nodeMsg.build()) - } catch (_: Exception) { - } - } - } + val keyword = args.joinToString(" ") + val response = Http.get( + "$qqMusicApiUrl/getSearchByKey", + mapOf("key" to keyword) + ).response.data.song.list.first().songId + val msg = MessageChain.Builder().addMusicShare(MusicShareType.QQ, response.toString()).build() + listener.sendGroupMessage(message.groupId, msg) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/TenSetuCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/TenSetuCommand.kt new file mode 100644 index 0000000..0d18fbe --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/TenSetuCommand.kt @@ -0,0 +1,30 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/9/29 + */ + + +package cn.rtast.fancybot.commands.misc + +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 + +class TenSetuCommand : BaseCommand() { + override val commandNames = listOf("十张色图") + + override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List) { + val msg = MessageChain.Builder() + .addText("指令已经迁移到兑换列表中") + .addNewLine() + .addText("使用`/rdm 十张色图`来兑换吧~") + .addNewLine() + .addText("(需要20cm的牛子长度来兑换)") + .addNewLine() + .addText("此指令已废弃") + .build() + message.reply(msg) + } +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/CoverImage.kt b/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/CoverImage.kt deleted file mode 100644 index e68fbe1..0000000 --- a/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/CoverImage.kt +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright © 2024 RTAkland - * Author: RTAkland - * Date: 2024/9/25 - */ - - -package cn.rtast.fancybot.entity.music.qq - -data class CoverImage( - val response: Response -) { - data class Response( - val data: Data - ) - - data class Data( - val imageUrl: String - ) -} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/QMSearchResult.kt b/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/QMSearchResult.kt deleted file mode 100644 index e67ea19..0000000 --- a/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/QMSearchResult.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright © 2024 RTAkland - * Author: RTAkland - * Date: 2024/9/25 - */ - - -package cn.rtast.fancybot.entity.music.qq - -data class QMSearchResult( - val id: Long, - val name: String, - val singers: String, - val interval: Int, - val mid: String, - val timestamp: Long, - val albumUrl: String -) \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/QQMSearch.kt b/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/QQMSearch.kt index 9b08bee..32a70a8 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/QQMSearch.kt +++ b/src/main/kotlin/cn/rtast/fancybot/entity/music/qq/QQMSearch.kt @@ -25,19 +25,7 @@ data class QQMSearch( ) data class Song( - @SerializedName("albummid") - val albumMid: String, - val interval: Int, - @SerializedName("songmid") - val songMid: String, @SerializedName("songid") val songId: Long, - @SerializedName("songname") - val songName: String, - val singer: List, - ) - - data class Singer( - val name: String ) } \ No newline at end of file