feat: add random http cat
This commit is contained in:
3 files changed
+106
-1
No files matched your search
@@ -140,5 +140,5 @@ val commands = listOf(
|
|||||||
MinecraftWikiCommand(), GaoKaoDaysRemainCommand(), IdiomExplainCommand(), NiuziManagerCommand(),
|
MinecraftWikiCommand(), GaoKaoDaysRemainCommand(), IdiomExplainCommand(), NiuziManagerCommand(),
|
||||||
TodayEatCommand(), TodayDrinkCommand(), MCLoginCommand(), RCONCommand(),
|
TodayEatCommand(), TodayDrinkCommand(), MCLoginCommand(), RCONCommand(),
|
||||||
GravatarCommand(), PastebinCommand(), ShuffleEchoCommand(), TodayDontEatCommand(),
|
GravatarCommand(), PastebinCommand(), ShuffleEchoCommand(), TodayDontEatCommand(),
|
||||||
TodayDontDrinkCommand(), MCBotCommand()
|
TodayDontDrinkCommand(), MCBotCommand(), HTTPCatCommand()
|
||||||
)
|
)
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2024 RTAkland
|
||||||
|
* Author: RTAkland
|
||||||
|
* Date: 2024/10/23
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
package cn.rtast.fancybot.commands.lookup
|
||||||
|
|
||||||
|
import cn.rtast.fancybot.annotations.CommandDescription
|
||||||
|
import cn.rtast.fancybot.enums.HttpStatusCode
|
||||||
|
import cn.rtast.fancybot.util.misc.toURL
|
||||||
|
import cn.rtast.fancybot.util.str.encodeToBase64
|
||||||
|
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
|
||||||
|
|
||||||
|
@CommandDescription("随机HTTP猫猫")
|
||||||
|
class HTTPCatCommand : BaseCommand() {
|
||||||
|
override val commandNames = listOf("http猫猫", "HTTP猫猫")
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val HTTP_CAT_API = "https://http.cat/###.jpg"
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List<String>) {
|
||||||
|
val randomStatusCode = HttpStatusCode.entries.random().code.toString()
|
||||||
|
val image = HTTP_CAT_API.replace("###", randomStatusCode).toURL().readBytes().encodeToBase64()
|
||||||
|
val msg = MessageChain.Builder().addImage(image, true).build()
|
||||||
|
message.reply(msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2024 RTAkland
|
||||||
|
* Author: RTAkland
|
||||||
|
* Date: 2024/10/23
|
||||||
|
*/
|
||||||
|
|
||||||
|
@file:Suppress("unused")
|
||||||
|
|
||||||
|
package cn.rtast.fancybot.enums
|
||||||
|
|
||||||
|
enum class HttpStatusCode(val code: Int, val description: String) {
|
||||||
|
CONTINUE(100, "Continue"),
|
||||||
|
SWITCHING_PROTOCOLS(101, "Switching Protocols"),
|
||||||
|
PROCESSING(102, "Processing (WebDAV)"),
|
||||||
|
OK(200, "OK"),
|
||||||
|
CREATED(201, "Created"),
|
||||||
|
ACCEPTED(202, "Accepted"),
|
||||||
|
NON_AUTHORITATIVE_INFORMATION(203, "Non-Authoritative Information"),
|
||||||
|
NO_CONTENT(204, "No Content"),
|
||||||
|
RESET_CONTENT(205, "Reset Content"),
|
||||||
|
PARTIAL_CONTENT(206, "Partial Content"),
|
||||||
|
MULTI_STATUS(207, "Multi-Status (WebDAV)"),
|
||||||
|
ALREADY_REPORTED(208, "Already Reported (WebDAV)"),
|
||||||
|
MULTIPLE_CHOICES(300, "Multiple Choices"),
|
||||||
|
MOVED_PERMANENTLY(301, "Moved Permanently"),
|
||||||
|
FOUND(302, "Found"),
|
||||||
|
SEE_OTHER(303, "See Other"),
|
||||||
|
NOT_MODIFIED(304, "Not Modified"),
|
||||||
|
USE_PROXY(305, "Use Proxy"),
|
||||||
|
TEMPORARY_REDIRECT(307, "Temporary Redirect"),
|
||||||
|
PERMANENT_REDIRECT(308, "Permanent Redirect"),
|
||||||
|
BAD_REQUEST(400, "Bad Request"),
|
||||||
|
UNAUTHORIZED(401, "Unauthorized"),
|
||||||
|
PAYMENT_REQUIRED(402, "Payment Required"),
|
||||||
|
FORBIDDEN(403, "Forbidden"),
|
||||||
|
NOT_FOUND(404, "Not Found"),
|
||||||
|
METHOD_NOT_ALLOWED(405, "Method Not Allowed"),
|
||||||
|
NOT_ACCEPTABLE(406, "Not Acceptable"),
|
||||||
|
PROXY_AUTHENTICATION_REQUIRED(407, "Proxy Authentication Required"),
|
||||||
|
REQUEST_TIMEOUT(408, "Request Timeout"),
|
||||||
|
CONFLICT(409, "Conflict"),
|
||||||
|
GONE(410, "Gone"),
|
||||||
|
LENGTH_REQUIRED(411, "Length Required"),
|
||||||
|
PRECONDITION_FAILED(412, "Precondition Failed"),
|
||||||
|
PAYLOAD_TOO_LARGE(413, "Payload Too Large"),
|
||||||
|
URI_TOO_LONG(414, "URI Too Long"),
|
||||||
|
UNSUPPORTED_MEDIA_TYPE(415, "Unsupported Media Type"),
|
||||||
|
RANGE_NOT_SATISFIABLE(416, "Range Not Satisfiable"),
|
||||||
|
EXPECTATION_FAILED(417, "Expectation Failed"),
|
||||||
|
IM_A_TEAPOT(418, "I'm a teapot"),
|
||||||
|
MISDIRECTED_REQUEST(421, "Misdirected Request"),
|
||||||
|
UNPROCESSABLE_ENTITY(422, "Unprocessable Entity (WebDAV)"),
|
||||||
|
LOCKED(423, "Locked (WebDAV)"),
|
||||||
|
FAILED_DEPENDENCY(424, "Failed Dependency (WebDAV)"),
|
||||||
|
TOO_EARLY(425, "Too Early"),
|
||||||
|
UPGRADE_REQUIRED(426, "Upgrade Required"),
|
||||||
|
PRECONDITION_REQUIRED(428, "Precondition Required"),
|
||||||
|
TOO_MANY_REQUESTS(429, "Too Many Requests"),
|
||||||
|
REQUEST_HEADER_FIELDS_TOO_LARGE(431, "Request Header Fields Too Large"),
|
||||||
|
UNAVAILABLE_FOR_LEGAL_REASONS(451, "Unavailable For Legal Reasons"),
|
||||||
|
INTERNAL_SERVER_ERROR(500, "Internal Server Error"),
|
||||||
|
NOT_IMPLEMENTED(501, "Not Implemented"),
|
||||||
|
BAD_GATEWAY(502, "Bad Gateway"),
|
||||||
|
SERVICE_UNAVAILABLE(503, "Service Unavailable"),
|
||||||
|
GATEWAY_TIMEOUT(504, "Gateway Timeout"),
|
||||||
|
HTTP_VERSION_NOT_SUPPORTED(505, "HTTP Version Not Supported"),
|
||||||
|
VARIANT_ALSO_NEGOTIATES(506, "Variant Also Negotiates"),
|
||||||
|
INSUFFICIENT_STORAGE(507, "Insufficient Storage (WebDAV)"),
|
||||||
|
LOOP_DETECTED(508, "Loop Detected (WebDAV)"),
|
||||||
|
NOT_EXTENDED(510, "Not Extended"),
|
||||||
|
NETWORK_AUTHENTICATION_REQUIRED(511, "Network Authentication Required");
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user