chore: move dir

This commit is contained in:
2024-09-20 16:30:33 +08:00
parent 9d5a62c261
commit 24c439fe85
10 files changed
+23 -12

No files matched your search

@@ -0,0 +1,49 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/1
*/
package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.configManager
import cn.rtast.rob.entity.ArrayMessage
import cn.rtast.rob.entity.GetMessage
import cn.rtast.rob.entity.GroupMessage
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.OneBotListener
class AntiRevokeCommand : BaseCommand() {
override val commandNames = listOf("/revoke", "/rv", "/防撤回")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (message.sender.userId !in configManager.admins) {
message.reply("你不许用防撤回")
}
val messageId = args.first().toLong()
listener.getMessage(messageId, "revoke", message.groupId)
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>()
msgList.add(
ArrayMessage(
ArrayMessageType.at,
ArrayMessage.Data(qq = message.data.sender.userId.toString())
)
)
msgList.add(ArrayMessage(ArrayMessageType.text, ArrayMessage.Data(text = "\n被撤回的消息如下: \n")))
msgList.addAll(message.data.message)
listener.sendGroupMessage(message.data.groupId!!, msgList)
}
}
}
@@ -0,0 +1,61 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/12
*/
package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.entity.compiler.GLOTPayload
import cn.rtast.fancybot.entity.compiler.GLOTResponse
import cn.rtast.fancybot.entity.compiler.KCSPayload
import cn.rtast.fancybot.entity.compiler.KCSResponse
import cn.rtast.fancybot.util.Http
import cn.rtast.fancybot.util.str.toJson
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 CompilerCommand : BaseCommand() {
override val commandNames = listOf("/compiler", "/exec")
private val kotlinCompilerServer = "https://api.kotlinlang.org/api/2.0.20/compiler/run"
private val glotCompilerServer = "https://glot.io/run"
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) {
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("使用`/exec` <语言> <代码> 即可执行~")
.build()
listener.sendGroupMessage(message.groupId, msg)
return
}
val language = args.first()
val code = args.drop(1).joinToString(" ")
val response = when (language) {
"kotlin", "Kotlin", "kt", "Kt", "KT" -> {
Http.post<KCSResponse>(
kotlinCompilerServer, jsonBody = KCSPayload(listOf(KCSPayload.File(code))).toJson()
).text
}
else -> {
Http.post<GLOTResponse>(
"$glotCompilerServer/$language",
params = mapOf("version" to "latest"),
jsonBody = GLOTPayload(listOf(GLOTPayload.File(code))).toJson()
).stdout
}
}
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("执行结果如下:")
.addNewLine()
.addText(response.replace("<outStream>", "").replace("</outStream>", ""))
.build()
listener.sendGroupMessage(message.groupId, msg)
}
}
@@ -0,0 +1,28 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/8/30
*/
package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.entity.FKXQS
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
class FKXQSCommand : BaseCommand() {
override val commandNames = listOf("/fkxqs", "/fk", "/疯狂星期四")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val response = Http.get<FKXQS>("https://api.shadiao.pro/kfc").data.text
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText(response)
.build()
listener.sendGroupMessage(message.groupId, msg)
}
}
@@ -0,0 +1,27 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/8/30
*/
package cn.rtast.fancybot.commands.misc
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
class HitokotoCommand : BaseCommand() {
override val commandNames = listOf("/hitokoto", "/1")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val response = Http.get("https://v1.jinrishici.com/rensheng/mengxiang.txt")
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText(response)
.build()
listener.sendGroupMessage(message.groupId, msg)
}
}
@@ -0,0 +1,26 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/8
*/
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 LikeMeCommand : BaseCommand() {
override val commandNames = listOf("赞我")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
listener.sendLike(message.sender.userId, 10)
val msg = MessageChain.Builder()
.addReply(message.messageId)
.addText("👍了你十下~~😁")
.build()
listener.sendGroupMessage(message.groupId, msg)
}
}
@@ -0,0 +1,48 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/6
*/
package cn.rtast.fancybot.commands.misc
import cn.rtast.rob.entity.GroupMessage
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.OneBotListener
class RUACommand : BaseCommand() {
override val commandNames = listOf("/rua", "rua")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) {
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("使用rua @xxxx")
.addText("即可rua某人啦~")
.build()
listener.sendGroupMessage(message.groupId, msg)
return
}
try {
val target = message.message.find { it.type == ArrayMessageType.at }?.data!!
val msg = MessageChain.Builder()
.addReply(message.messageId)
.addAt(target.qq.toString().toLong())
.addNewLine()
.addText(message.sender.nickname)
.addText(" ")
.addText("rua了你~")
.build()
listener.sendGroupMessage(message.groupId, msg)
} catch (_: NullPointerException) {
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("要@才有用哦~")
.build()
listener.sendGroupMessage(message.groupId, msg)
}
}
}
@@ -0,0 +1,43 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/5
*/
package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.entity.enums.CountryList
import cn.rtast.fancybot.util.randomBooleanWithProbability
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 RemakeCommand : BaseCommand() {
override val commandNames = listOf("/remake", "/重开", "remake", "重开")
private val locations = listOf(
"厕所", "首都", "农村", "市区",
"大学", "树上", "医院"
)
private val roles = listOf(
"男孩子", "女孩子", "小男娘", "伞兵",
"人机", "114514", "是吧", "罕见",
"鸽子", "鼠鼠", "化石", "狗狗"
)
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
val isSuccess = randomBooleanWithProbability(0.7)
val msg = MessageChain.Builder().addReply(message.messageId)
if (isSuccess) {
val country = CountryList.getRandomCountry()
val location = locations.random()
val role = roles.random()
msg.addText("重开成功! 你转生在${country.chineseName}$location, 是一个$role")
} else
msg.addText("转生失败~")
listener.sendGroupMessage(message.groupId, msg.build())
}
}
@@ -0,0 +1,68 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/17
*/
package cn.rtast.fancybot.commands.misc
import cn.rtast.fancybot.configManager
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 org.simplejavamail.api.mailer.config.TransportStrategy
import org.simplejavamail.email.EmailBuilder
import org.simplejavamail.mailer.MailerBuilder
class SendMailCommand : BaseCommand() {
override val commandNames = listOf("/mail")
private val smtpHost = configManager.smtpHost
private val smtpPort = configManager.smtpPort
private val smtpUser = configManager.smtpUser
private val smtpPassword = configManager.smtpPassword
private val smtpFromAddress = configManager.smtpFromAddress
private val mailer = MailerBuilder.withSMTPServer(smtpHost, smtpPort, smtpUser, smtpPassword)
.withTransportStrategy(TransportStrategy.SMTP_TLS)
.clearEmailValidator()
.async()
.buildMailer()
private fun sendMail(target: String) {
val email = EmailBuilder.startingBlank()
.from(smtpFromAddress)
.to(target)
.withSubject("Test email from FancyBot")
.withPlainText("Test email~")
.buildEmail()
this.mailer.sendMail(email)
}
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
if (args.isEmpty()) {
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("发送`/mail <收件人地址>`即可发送测试邮件~")
.build()
listener.sendGroupMessage(message.groupId, msg)
return
}
if (message.sender.userId !in configManager.admins) {
val msg = MessageChain.Builder()
.addReply(message.messageId)
.addText("你不许发邮件")
.build()
listener.sendGroupMessage(message.groupId, msg)
return
}
val target = args.first()
this.sendMail(target)
val msg = MessageChain.Builder()
.addAt(message.sender.userId)
.addText("正在发送邮件, 请查收~(可能会出现在垃圾桶中~)")
.build()
listener.sendGroupMessage(message.groupId, msg)
}
}
@@ -0,0 +1,61 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/9/18
*/
package cn.rtast.fancybot.commands.misc
import cn.rtast.rob.entity.GroupMessage
import cn.rtast.rob.entity.PrivateMessage
import cn.rtast.rob.util.BaseCommand
import cn.rtast.rob.util.ob.MessageChain
import cn.rtast.rob.util.ob.OneBotListener
val users = mutableMapOf<Long, Long>()
class ZiBiCommand : BaseCommand() {
override val commandNames = listOf("/自闭", "自闭")
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
try {
users.remove(message.sender.userId)
val duration = if (args.isEmpty()) 1 else args.first().toInt()
message.sender.ban(duration * 60)
val msg = MessageChain.Builder()
.addText("你先自闭${duration}分钟吧~")
.addNewLine()
.addText("私聊发送`我想开了`即可取消禁言~")
.build()
message.reply(msg)
users[message.sender.userId] = message.groupId
} catch (_: Exception) {
val msg = MessageChain.Builder()
.addText("你输入有误所以我决定让你自闭1天~")
.build()
message.reply(msg)
message.sender.ban(86400)
}
}
}
class UnsetZiBiCommand : BaseCommand() {
override val commandNames = listOf("我想开了")
override suspend fun executePrivate(listener: OneBotListener, message: PrivateMessage, args: List<String>) {
if (!users.any { it.key == message.sender.userId }) {
val msg = MessageChain.Builder()
.addText("你没有在自闭列表中~")
.build()
message.reply(msg)
return
}
listener.setGroupBan(users.getValue(message.sender.userId), message.sender.userId, 0)
val msg = MessageChain.Builder()
.addText("祝你天天开心不要自闭~~")
.build()
message.reply(msg)
users.remove(message.sender.userId)
}
}