From 45fafd4a4d3220c57f7e4f4350045ce9683be574 Mon Sep 17 00:00:00 2001 From: RTAkland Date: Thu, 3 Oct 2024 17:15:12 +0800 Subject: [PATCH] feat: add random song command --- src/main/kotlin/cn/rtast/fancybot/Const.kt | 2 +- .../commands/misc/BullShitGenerateCommand.kt | 2 ++ .../commands/misc/RandomMusicCommand.kt | 33 +++++++++++++++++++ .../cn/rtast/fancybot/entity/music/TopSong.kt | 20 +++++++++++ 4 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/cn/rtast/fancybot/commands/misc/RandomMusicCommand.kt create mode 100644 src/main/kotlin/cn/rtast/fancybot/entity/music/TopSong.kt diff --git a/src/main/kotlin/cn/rtast/fancybot/Const.kt b/src/main/kotlin/cn/rtast/fancybot/Const.kt index f3fbe33..6630bb9 100644 --- a/src/main/kotlin/cn/rtast/fancybot/Const.kt +++ b/src/main/kotlin/cn/rtast/fancybot/Const.kt @@ -106,5 +106,5 @@ val commands = listOf( NiuziRankCommand(), NiuziBankRankCommand(), ShotSelfCommand(), TenSetuCommand(), ReactionCommand(), MCSkinCommand(), - GithubLatestCommitCommand() + GithubLatestCommitCommand(), RandomMusicCommand() ) \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/BullShitGenerateCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/BullShitGenerateCommand.kt index 86d56f8..4df1f22 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/BullShitGenerateCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/BullShitGenerateCommand.kt @@ -7,6 +7,7 @@ package cn.rtast.fancybot.commands.misc +import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.configManager import cn.rtast.fancybot.entity.bullshit.BullShit import cn.rtast.fancybot.util.Resources @@ -18,6 +19,7 @@ import cn.rtast.rob.util.ob.NodeMessageChain import cn.rtast.rob.util.ob.OneBotListener import kotlin.random.Random +@CommandDescription("狗屁不通文章生成器") class BullShitGenerateCommand : BaseCommand() { override val commandNames = listOf("/gpbt", "狗屁不通") diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/RandomMusicCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/RandomMusicCommand.kt new file mode 100644 index 0000000..2f107f5 --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/RandomMusicCommand.kt @@ -0,0 +1,33 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/10/3 + */ + + +package cn.rtast.fancybot.commands.misc + +import cn.rtast.fancybot.annotations.CommandDescription +import cn.rtast.fancybot.configManager +import cn.rtast.fancybot.entity.music.TopSong +import cn.rtast.fancybot.util.Http +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.OneBotListener + +@CommandDescription("获取随机热榜音乐(网易云)") +class RandomMusicCommand : BaseCommand() { + override val commandNames = listOf("随机音乐", "随机歌曲") + + private val ncmApiUrl = "${configManager.ncmAPI}/top/song" + + override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List) { + val id = Http.get(ncmApiUrl).data.random().privilege.id + val msg = MessageChain.Builder() + .addMusicShare(MusicShareType.Netease, id.toString()) + .build() + listener.sendGroupMessage(message.groupId, msg) + } +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/music/TopSong.kt b/src/main/kotlin/cn/rtast/fancybot/entity/music/TopSong.kt new file mode 100644 index 0000000..e8196a7 --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/entity/music/TopSong.kt @@ -0,0 +1,20 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/10/3 + */ + + +package cn.rtast.fancybot.entity.music + +data class TopSong( + val data: List +) { + data class Data( + val privilege: Privilege + ) + + data class Privilege( + val id: Long + ) +} \ No newline at end of file