feat: update lib and fix bug
This commit is contained in:
5 files changed
+63
-81
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
[versions]
|
[versions]
|
||||||
kotlinVersion = "2.0.10"
|
kotlinVersion = "2.0.10"
|
||||||
ronebotVersion = "1.9.2"
|
ronebotVersion = "1.10.0"
|
||||||
shadowVersion = "8.3.0"
|
shadowVersion = "8.3.0"
|
||||||
okhttpVersion = "5.0.0-alpha.14"
|
okhttpVersion = "5.0.0-alpha.14"
|
||||||
exposedVersion = "0.53.0"
|
exposedVersion = "0.53.0"
|
||||||
|
|||||||
@@ -75,6 +75,17 @@ class FancyBot : OneBotListener {
|
|||||||
calculateResult?.let { message.reply(calculateResult) }
|
calculateResult?.let { message.reply(calculateResult) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ReverseGIFCommand.callback(message)
|
||||||
|
AsciiArtCommand.callback(message)
|
||||||
|
if (message.message.any { it.type == ArrayMessageType.reply }) { // Image url parse
|
||||||
|
val command = message.message.reversed().find { it.type == ArrayMessageType.text }!!.data.text!!
|
||||||
|
val replyId = message.message.find { it.type == ArrayMessageType.reply }!!.data.id!!
|
||||||
|
if (command.contains("图来") || command.contains("图链")) {
|
||||||
|
val getMsg = this.getMessage(replyId.toString().toLong())
|
||||||
|
ImageURLCommand.callback(message, getMsg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
message.message.forEach {
|
message.message.forEach {
|
||||||
if (it.type == ArrayMessageType.image) {
|
if (it.type == ArrayMessageType.image) {
|
||||||
@@ -88,8 +99,6 @@ class FancyBot : OneBotListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AsciiArtCommand.callback(message)
|
|
||||||
|
|
||||||
if (message.rawMessage.startsWith("https://github.com/") || message.rawMessage.startsWith("git@github.com:")) {
|
if (message.rawMessage.startsWith("https://github.com/") || message.rawMessage.startsWith("git@github.com:")) {
|
||||||
GitHubParseCommand.parse(this, message)
|
GitHubParseCommand.parse(this, message)
|
||||||
}
|
}
|
||||||
@@ -117,22 +126,12 @@ class FancyBot : OneBotListener {
|
|||||||
}
|
}
|
||||||
BVParseCommand.getShortUrlBVID(shortUrl)
|
BVParseCommand.getShortUrlBVID(shortUrl)
|
||||||
} else {
|
} else {
|
||||||
message.rawMessage.split("?").first().split("/").filter { it.isNotEmpty() && it.isNotBlank() }.last()
|
message.rawMessage.split("?").first()
|
||||||
|
.split("/")
|
||||||
|
.last { it.isNotEmpty() && it.isNotBlank() }
|
||||||
}
|
}
|
||||||
BVParseCommand.parse(this, bvid, message)
|
BVParseCommand.parse(this, bvid, message)
|
||||||
}
|
}
|
||||||
if (message.message.any { it.type == ArrayMessageType.reply }) { // Image url parse
|
|
||||||
val command = message.message.reversed().find { it.type == ArrayMessageType.text }!!.data.text!!
|
|
||||||
val replyId = message.message.find { it.type == ArrayMessageType.reply }!!.data.id!!
|
|
||||||
if (command.contains("图来") || command.contains("图链")) {
|
|
||||||
// get image url
|
|
||||||
this.getMessage(replyId.toString().toLong(), "imageUrl", message.groupId)
|
|
||||||
}
|
|
||||||
if (command.contains("倒放") || command.contains("df")) {
|
|
||||||
// reverse gif
|
|
||||||
this.getMessage(replyId.toString().toLong(), "reverseGif", message.groupId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun onGroupMessageRevoke(message: GroupRevokeMessage) {
|
override suspend fun onGroupMessageRevoke(message: GroupRevokeMessage) {
|
||||||
@@ -145,15 +144,6 @@ class FancyBot : OneBotListener {
|
|||||||
this.sendGroupMessage(message.groupId, msg)
|
this.sendGroupMessage(message.groupId, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override suspend fun onGetGroupMessageResponse(message: GetMessage) {
|
|
||||||
when (message.data.id) {
|
|
||||||
"revoke" -> AntiRevokeCommand.callback(this, message)
|
|
||||||
"imageUrl" -> ImageURLCommand.callback(this, message)
|
|
||||||
"reverseGif" -> ReverseGIFCommand.callback(this, message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun onWebsocketErrorEvent(ex: Exception) {
|
override suspend fun onWebsocketErrorEvent(ex: Exception) {
|
||||||
ex.printStackTrace()
|
ex.printStackTrace()
|
||||||
}
|
}
|
||||||
@@ -209,7 +199,7 @@ val commands = listOf(
|
|||||||
AsciiArtCommand(), StatusCommand(),
|
AsciiArtCommand(), StatusCommand(),
|
||||||
JueCommand(), ShortLinkCommand(),
|
JueCommand(), ShortLinkCommand(),
|
||||||
TenSetuCommand(), ShotSelfCommand(),
|
TenSetuCommand(), ShotSelfCommand(),
|
||||||
ShotOtherCommand()
|
ShotOtherCommand(), ReverseGIFCommand()
|
||||||
)
|
)
|
||||||
|
|
||||||
val START_UP_TIME = Instant.now().epochSecond
|
val START_UP_TIME = Instant.now().epochSecond
|
||||||
|
|||||||
@@ -9,41 +9,22 @@ package cn.rtast.fancybot.commands.misc
|
|||||||
|
|
||||||
import cn.rtast.fancybot.configManager
|
import cn.rtast.fancybot.configManager
|
||||||
import cn.rtast.rob.entity.ArrayMessage
|
import cn.rtast.rob.entity.ArrayMessage
|
||||||
import cn.rtast.rob.entity.GetMessage
|
|
||||||
import cn.rtast.rob.entity.GroupMessage
|
import cn.rtast.rob.entity.GroupMessage
|
||||||
import cn.rtast.rob.enums.ArrayMessageType
|
import cn.rtast.rob.enums.ArrayMessageType
|
||||||
import cn.rtast.rob.util.BaseCommand
|
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.OneBotListener
|
||||||
|
|
||||||
class AntiRevokeCommand : BaseCommand() {
|
class AntiRevokeCommand : BaseCommand() {
|
||||||
override val commandNames = listOf("/revoke", "/rv", "/防撤回")
|
override val commandNames = listOf("/revoke", "/rv", "/防撤回")
|
||||||
|
|
||||||
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||||
if (message.sender.userId !in configManager.admins) {
|
if (message.sender.userId !in configManager.admins) message.reply("你不许用防撤回")
|
||||||
message.reply("你不许用防撤回")
|
|
||||||
}
|
|
||||||
val messageId = args.first().toLong()
|
val messageId = args.first().toLong()
|
||||||
listener.getMessage(messageId, "revoke", message.groupId)
|
val getMsg = listener.getMessage(messageId)
|
||||||
val msg = MessageChain.Builder()
|
|
||||||
.addAt(message.sender.userId)
|
|
||||||
.addText("正在获取消息中...")
|
|
||||||
.build()
|
|
||||||
listener.sendGroupMessage(message.groupId, msg)
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
suspend fun callback(listener: OneBotListener, message: GetMessage) {
|
|
||||||
val msgList = mutableListOf<ArrayMessage>()
|
val msgList = mutableListOf<ArrayMessage>()
|
||||||
msgList.add(
|
msgList.add(ArrayMessage(ArrayMessageType.at, ArrayMessage.Data(qq = getMsg.sender.userId.toString())))
|
||||||
ArrayMessage(
|
|
||||||
ArrayMessageType.at,
|
|
||||||
ArrayMessage.Data(qq = message.data.sender.userId.toString())
|
|
||||||
)
|
|
||||||
)
|
|
||||||
msgList.add(ArrayMessage(ArrayMessageType.text, ArrayMessage.Data(text = "\n被撤回的消息如下: \n")))
|
msgList.add(ArrayMessage(ArrayMessageType.text, ArrayMessage.Data(text = "\n被撤回的消息如下: \n")))
|
||||||
msgList.addAll(message.data.message)
|
msgList.addAll(getMsg.message)
|
||||||
listener.sendGroupMessage(message.data.groupId!!, msgList)
|
listener.sendGroupMessage(message.groupId, msgList)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,25 +8,23 @@
|
|||||||
package cn.rtast.fancybot.commands.parse
|
package cn.rtast.fancybot.commands.parse
|
||||||
|
|
||||||
import cn.rtast.rob.entity.GetMessage
|
import cn.rtast.rob.entity.GetMessage
|
||||||
|
import cn.rtast.rob.entity.GroupMessage
|
||||||
import cn.rtast.rob.enums.ArrayMessageType
|
import cn.rtast.rob.enums.ArrayMessageType
|
||||||
import cn.rtast.rob.util.ob.MessageChain
|
import cn.rtast.rob.util.ob.MessageChain
|
||||||
import cn.rtast.rob.util.ob.OneBotListener
|
|
||||||
|
|
||||||
object ImageURLCommand {
|
object ImageURLCommand {
|
||||||
|
suspend fun callback(groupMessage: GroupMessage, message: GetMessage.Data) {
|
||||||
suspend fun callback(listener: OneBotListener, message: GetMessage) {
|
|
||||||
val msg = MessageChain.Builder()
|
val msg = MessageChain.Builder()
|
||||||
.addReply(message.data.messageId)
|
.addReply(message.messageId)
|
||||||
.addText("哈哈哈哈图片来咯~")
|
.addText("哈哈哈哈图片来咯~")
|
||||||
.addNewLine()
|
.addNewLine()
|
||||||
val image = message.data.message.find { it.type == ArrayMessageType.image }
|
val image = message.message.find { it.type == ArrayMessageType.image }
|
||||||
if (image == null) {
|
if (image == null) {
|
||||||
val gif = message.data.message.find { it.type == ArrayMessageType.mface }!!
|
val gif = message.message.find { it.type == ArrayMessageType.mface }!!
|
||||||
msg.addText(gif.data.url!!)
|
msg.addText(gif.data.url!!)
|
||||||
} else {
|
} else {
|
||||||
msg.addText(image.data.file!!)
|
msg.addText(image.data.file!!)
|
||||||
|
|
||||||
}
|
}
|
||||||
listener.sendGroupMessage(message.data.groupId!!, msg.build())
|
groupMessage.reply(msg.build())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,16 +9,19 @@ package cn.rtast.fancybot.commands.parse
|
|||||||
|
|
||||||
import cn.rtast.fancybot.util.makeGif
|
import cn.rtast.fancybot.util.makeGif
|
||||||
import cn.rtast.fancybot.util.str.encodeToBase64
|
import cn.rtast.fancybot.util.str.encodeToBase64
|
||||||
import cn.rtast.rob.entity.GetMessage
|
import cn.rtast.rob.entity.GroupMessage
|
||||||
import cn.rtast.rob.enums.ArrayMessageType
|
import cn.rtast.rob.enums.ArrayMessageType
|
||||||
|
import cn.rtast.rob.util.BaseCommand
|
||||||
import cn.rtast.rob.util.ob.MessageChain
|
import cn.rtast.rob.util.ob.MessageChain
|
||||||
import cn.rtast.rob.util.ob.OneBotListener
|
import cn.rtast.rob.util.ob.OneBotListener
|
||||||
import com.madgag.gif.fmsware.AnimatedGifEncoder
|
|
||||||
import com.madgag.gif.fmsware.GifDecoder
|
import com.madgag.gif.fmsware.GifDecoder
|
||||||
import java.io.ByteArrayOutputStream
|
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
|
|
||||||
object ReverseGIFCommand {
|
class ReverseGIFCommand : BaseCommand() {
|
||||||
|
override val commandNames = listOf("倒放")
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val waitingList = mutableListOf<Long>()
|
||||||
|
|
||||||
private fun reverseGif(gifUrl: String): String {
|
private fun reverseGif(gifUrl: String): String {
|
||||||
val gifStream = URI(gifUrl).toURL().openStream()
|
val gifStream = URI(gifUrl).toURL().openStream()
|
||||||
@@ -29,17 +32,27 @@ object ReverseGIFCommand {
|
|||||||
return gifBytes.encodeToBase64()
|
return gifBytes.encodeToBase64()
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun callback(listener: OneBotListener, message: GetMessage) {
|
suspend fun callback(message: GroupMessage) {
|
||||||
val gifUrl = if (message.data.message.find { it.type == ArrayMessageType.mface } == null) {
|
if (message.sender.userId !in waitingList) return
|
||||||
message.data.message.find { it.type == ArrayMessageType.image }!!.data.file!!
|
val gifUrl = if (message.message.find { it.type == ArrayMessageType.mface } == null) {
|
||||||
|
message.message.find { it.type == ArrayMessageType.image }!!.data.file!!
|
||||||
} else {
|
} else {
|
||||||
message.data.message.find { it.type == ArrayMessageType.mface }!!.data.url!!
|
message.message.find { it.type == ArrayMessageType.mface }!!.data.url!!
|
||||||
}
|
}
|
||||||
val base64String = this.reverseGif(gifUrl)
|
val base64String = this.reverseGif(gifUrl)
|
||||||
val msg = MessageChain.Builder()
|
val msg = MessageChain.Builder().addImage(base64String, true).build()
|
||||||
.addReply(message.data.messageId)
|
message.reply(msg)
|
||||||
.addImage(base64String, true)
|
waitingList.removeIf { it == message.sender.userId }
|
||||||
.build()
|
}
|
||||||
listener.sendGroupMessage(message.data.groupId!!, msg)
|
}
|
||||||
|
|
||||||
|
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||||
|
if (message.sender.userId !in waitingList) {
|
||||||
|
waitingList.add(message.sender.userId)
|
||||||
|
message.reply("发送一张动图来继续操作")
|
||||||
|
} else {
|
||||||
|
message.reply("发送错误本次操作已取消")
|
||||||
|
waitingList.removeIf { it == message.sender.userId }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user