chore: update github repo parser
This commit is contained in:
5 files changed
+21
-27
No files matched your search
+4
-4
@@ -32,10 +32,10 @@ tasks.compileJava {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.rOneBot)
|
implementation(libs.rOneBot)
|
||||||
implementation(libs.okhttp)
|
implementation(libs.okhttp)
|
||||||
implementation(libs.exposedCore)
|
implementation(libs.exposed.core)
|
||||||
implementation(libs.exposedJDBC)
|
implementation(libs.exposed.jdbc)
|
||||||
implementation(libs.sqliteJDBC)
|
implementation(libs.sqlite.jdbc)
|
||||||
implementation(libs.motdPinger)
|
implementation(libs.motd.pinger)
|
||||||
implementation(libs.animated.gif.lib)
|
implementation(libs.animated.gif.lib)
|
||||||
implementation(libs.simple.java.mail)
|
implementation(libs.simple.java.mail)
|
||||||
implementation(libs.jsoup)
|
implementation(libs.jsoup)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[versions]
|
[versions]
|
||||||
kotlinVersion = "2.0.10"
|
kotlinVersion = "2.0.10"
|
||||||
ronebotVersion = "1.12.4"
|
ronebotVersion = "1.12.6"
|
||||||
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"
|
||||||
@@ -14,11 +14,11 @@ zxingVersion = "3.5.3"
|
|||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
rOneBot = { group = "cn.rtast", name = "ROneBot", version.ref = "ronebotVersion" }
|
rOneBot = { group = "cn.rtast", name = "ROneBot", version.ref = "ronebotVersion" }
|
||||||
motdPinger = { group = "cn.rtast", name = "MotdPinger", version.ref = "motdPingerVersion" }
|
motd-pinger = { group = "cn.rtast", name = "MotdPinger", version.ref = "motdPingerVersion" }
|
||||||
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttpVersion" }
|
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttpVersion" }
|
||||||
exposedCore = { group = "org.jetbrains.exposed", name = "exposed-core", version.ref = "exposedVersion" }
|
exposed-core = { group = "org.jetbrains.exposed", name = "exposed-core", version.ref = "exposedVersion" }
|
||||||
exposedJDBC = { group = "org.jetbrains.exposed", name = "exposed-jdbc", version.ref = "exposedVersion" }
|
exposed-jdbc = { group = "org.jetbrains.exposed", name = "exposed-jdbc", version.ref = "exposedVersion" }
|
||||||
sqliteJDBC = { group = "org.xerial", name = "sqlite-jdbc", version.ref = "sqliteJDBCVersion" }
|
sqlite-jdbc = { group = "org.xerial", name = "sqlite-jdbc", version.ref = "sqliteJDBCVersion" }
|
||||||
animated-gif-lib = { group = "com.madgag", name = "animated-gif-lib", version.ref = "animatedGifLibVersion" }
|
animated-gif-lib = { group = "com.madgag", name = "animated-gif-lib", version.ref = "animatedGifLibVersion" }
|
||||||
simple-java-mail = { group = "org.simplejavamail", name = "simple-java-mail", version.ref = "simpleJavaMailVersion" }
|
simple-java-mail = { group = "org.simplejavamail", name = "simple-java-mail", version.ref = "simpleJavaMailVersion" }
|
||||||
jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoupVersion" }
|
jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoupVersion" }
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import java.net.URI
|
|||||||
class FancyBot : OneBotListener {
|
class FancyBot : OneBotListener {
|
||||||
|
|
||||||
private val coroutineScope = CoroutineScope(Dispatchers.IO)
|
private val coroutineScope = CoroutineScope(Dispatchers.IO)
|
||||||
|
private val githubRegex = Regex("""github\.com/([^/]+)/([^/]+)""")
|
||||||
|
|
||||||
override suspend fun onWebsocketOpenEvent() {
|
override suspend fun onWebsocketOpenEvent() {
|
||||||
this.sendPrivateMessage(configManager.startUpNoticeUser, "FancyBot启动完成~")
|
this.sendPrivateMessage(configManager.startUpNoticeUser, "FancyBot启动完成~")
|
||||||
@@ -68,17 +69,17 @@ class FancyBot : OneBotListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.rawMessage.startsWith("https://github.com/") || message.rawMessage.startsWith("git@github.com:")) {
|
val matchedResult = githubRegex.find(message.rawMessage)
|
||||||
GitHubParseCommand.parse(this, message)
|
if (message.rawMessage.contains("github.com") && matchedResult != null) {
|
||||||
|
val (user, repo) = matchedResult.destructured
|
||||||
|
GitHubParseCommand.parse(message, user, repo)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.rawMessage.startsWith("BV") ||
|
if (message.rawMessage.startsWith("BV") ||
|
||||||
message.rawMessage.startsWith("https://www.bilibili.com") ||
|
message.rawMessage.startsWith("https://www.bilibili.com") ||
|
||||||
message.rawMessage.contains("https://b23.tv/") ||
|
message.rawMessage.contains("https://b23.tv/") ||
|
||||||
message.message.find { it.type == ArrayMessageType.json } != null
|
message.message.find { it.type == ArrayMessageType.json } != null
|
||||||
) {
|
) BVParseCommand.parse(this, message)
|
||||||
BVParseCommand.parse(this, message)
|
|
||||||
}
|
|
||||||
|
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
message.message.forEach {
|
message.message.forEach {
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ object BVParseCommand {
|
|||||||
message.rawMessage
|
message.rawMessage
|
||||||
} else if (message.rawMessage.split(" ").last().startsWith("https://b23.tv/")) {
|
} else if (message.rawMessage.split(" ").last().startsWith("https://b23.tv/")) {
|
||||||
val shortUrl = message.rawMessage.split(" ").last()
|
val shortUrl = message.rawMessage.split(" ").last()
|
||||||
BVParseCommand.getShortUrlBVID(shortUrl)
|
getShortUrlBVID(shortUrl)
|
||||||
} else if (message.message.find { it.type == ArrayMessageType.json } != null) {
|
} else if (message.message.find { it.type == ArrayMessageType.json } != null) {
|
||||||
val card = message.message.find { it.type == ArrayMessageType.json }!!
|
val card = message.message.find { it.type == ArrayMessageType.json }!!
|
||||||
.data.data!!.toString().fromJson<CardShare>()
|
.data.data!!.toString().fromJson<CardShare>()
|
||||||
@@ -166,7 +166,7 @@ object BVParseCommand {
|
|||||||
if (!card.meta.detail.title.contains("哔哩哔哩")) return
|
if (!card.meta.detail.title.contains("哔哩哔哩")) return
|
||||||
card.meta.detail.qqDocUrl
|
card.meta.detail.qqDocUrl
|
||||||
}
|
}
|
||||||
BVParseCommand.getShortUrlBVID(shortUrl)
|
getShortUrlBVID(shortUrl)
|
||||||
} else {
|
} else {
|
||||||
message.rawMessage.split("?").first()
|
message.rawMessage.split("?").first()
|
||||||
.split("/")
|
.split("/")
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import cn.rtast.fancybot.util.str.setTruncate
|
|||||||
import cn.rtast.fancybot.util.toByteArray
|
import cn.rtast.fancybot.util.toByteArray
|
||||||
import cn.rtast.rob.entity.GroupMessage
|
import cn.rtast.rob.entity.GroupMessage
|
||||||
import cn.rtast.rob.util.ob.MessageChain
|
import cn.rtast.rob.util.ob.MessageChain
|
||||||
import cn.rtast.rob.util.ob.OneBotListener
|
|
||||||
import java.awt.Color
|
import java.awt.Color
|
||||||
import java.awt.Font
|
import java.awt.Font
|
||||||
import java.awt.RenderingHints
|
import java.awt.RenderingHints
|
||||||
@@ -63,6 +62,8 @@ object GitHubParseCommand {
|
|||||||
"Shell" to Color(137, 224, 81),
|
"Shell" to Color(137, 224, 81),
|
||||||
"CMake" to Color(218, 52, 52),
|
"CMake" to Color(218, 52, 52),
|
||||||
"HTML" to Color(227, 76, 38),
|
"HTML" to Color(227, 76, 38),
|
||||||
|
"C#" to Color(23, 134, 0),
|
||||||
|
"F#" to Color(184, 69, 252),
|
||||||
"Unknown" to Color(211, 211, 211)
|
"Unknown" to Color(211, 211, 211)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -114,20 +115,12 @@ object GitHubParseCommand {
|
|||||||
return canvas.toByteArray().encodeToBase64()
|
return canvas.toByteArray().encodeToBase64()
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun parse(listener: OneBotListener, message: GroupMessage) {
|
suspend fun parse(message: GroupMessage, user: String, repo: String) {
|
||||||
val path = message.rawMessage
|
|
||||||
.replace(".git", "")
|
|
||||||
.replace("https://github.com/", "")
|
|
||||||
.replace("git@github.com:", "")
|
|
||||||
.split("/")
|
|
||||||
val user = path.first()
|
|
||||||
val repo = path.last()
|
|
||||||
val repoStat = this.getRepoStat(user, repo)
|
val repoStat = this.getRepoStat(user, repo)
|
||||||
val image = this.createImage(repoStat)
|
val image = this.createImage(repoStat)
|
||||||
val msg = MessageChain.Builder()
|
val msg = MessageChain.Builder()
|
||||||
.addReply(message.messageId)
|
|
||||||
.addImage(image, true)
|
.addImage(image, true)
|
||||||
.build()
|
.build()
|
||||||
listener.sendGroupMessage(message.groupId, msg)
|
message.reply(msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user