Augtons / OrangeMilk-Bot

基于mirai实现,运行在JVM平台的机器人Orange-Milk
GNU Affero General Public License v3.0
19 stars 1 forks source link

【已修复】网易云搜歌,搜不到不会回复报错 #1

Closed Augtons closed 2 years ago

Augtons commented 2 years ago

网易云搜歌获取到的结果,没有“songs”字段的时候不会回复报错消息。 例如: image

Augtons commented 2 years ago

谢谢,我已经定位了这个问题。同样的问题也在酷狗音乐中出现了。

对于网易云,它在/listeners/commands/SingMusic.kt当中的第103行。

由于kotlin?使得它忽略的搜歌结果为null的情况,因此导致未抛出异常。未执行catch代码块。 将?改为!!非空断言即可。

try {
-   netEaseMusicSearcher.searchSuspend(keyWord)?.let { music ->
+  netEaseMusicSearcher.searchSuspend(keyWord)!!.let { music ->
    context!!.subject.sendMessage(
        MusicShare(
            MusicKind.NeteaseCloudMusic, music.musicName, music.singerName, music.playURL,
                music.imgURL, music.playURL
             )
        )
    }
}catch (_e: Exception) {
    context!!.subject.sendMessage("【网易云】\n未找到“$keyWord”\n换一个搜索词或改用其他平台搜索吧")
}