feat: improve github card
This commit is contained in:
2 files changed
+25
-4
No files matched your search
@@ -12,6 +12,7 @@ import cn.rtast.fancybot.entity.github.RepoInfo
|
||||
import cn.rtast.fancybot.util.Http
|
||||
import cn.rtast.fancybot.util.Resources
|
||||
import cn.rtast.fancybot.util.drawCustomImage
|
||||
import cn.rtast.fancybot.util.drawString
|
||||
import cn.rtast.fancybot.util.str.encodeToBase64
|
||||
import cn.rtast.fancybot.util.str.formatNumberEnglish
|
||||
import cn.rtast.fancybot.util.str.setTruncat
|
||||
@@ -82,7 +83,7 @@ object GitHubParseCommand {
|
||||
g2d.color = Color.WHITE
|
||||
g2d.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT)
|
||||
g2d.color = this.getLanguageColor(repoStat.language)
|
||||
g2d.fillRect(0, CANVAS_HEIGHT - 20, CANVAS_WIDTH, 20)
|
||||
g2d.fillRect(0, CANVAS_HEIGHT - 20, CANVAS_WIDTH, 35)
|
||||
g2d.drawCustomImage(githubLogo, 1300, 740, 100.0, 100.0, false) // draw github logo
|
||||
g2d.drawCustomImage(starIcon, 80, 785, 70.0, 70.0, false) // draw star icon
|
||||
g2d.drawCustomImage(issueIcon, 480, 785, 70.0, 70.0, false) // draw issue icon
|
||||
@@ -98,15 +99,14 @@ object GitHubParseCommand {
|
||||
g2d.font = forkParentFont
|
||||
val parentName = repoStat.parent?.fullName!!
|
||||
val truncatedParentFullName = setTruncat("Forked from: $parentName", g2d, 1000)
|
||||
g2d.drawString(truncatedParentFullName, 80, 540)
|
||||
g2d.drawString(truncatedParentFullName, 80, 435)
|
||||
}
|
||||
g2d.color = Color(60, 60, 60)
|
||||
g2d.font = titleCustomFont
|
||||
val truncatedFullNameText = setTruncat(repoStat.fullName, g2d, 1000)
|
||||
g2d.drawString(truncatedFullNameText, 80, 280)
|
||||
g2d.font = descriptionCustomFont
|
||||
val truncatedDescription = setTruncat(repoStat.description ?: "暂无描述~", g2d, 1000)
|
||||
g2d.drawString(truncatedDescription, 80, 450)
|
||||
g2d.drawString(repoStat.description ?: "暂无描述~", 80, 520, 800)
|
||||
val avatarImage = ImageIO.read(URI(repoStat.owner.avatarUrl).toURL())
|
||||
g2d.drawCustomImage(avatarImage, 1200, 160, 300.0, 300.0, true)
|
||||
g2d.dispose()
|
||||
|
||||
@@ -71,4 +71,25 @@ fun Graphics2D.drawCenteredText(text: String, x: Int, y: Int) {
|
||||
val drawX = x - textWidth / 2
|
||||
val drawY = y + textHeight / 2
|
||||
this.drawString(text, drawX, drawY)
|
||||
}
|
||||
|
||||
fun Graphics2D.drawString(text: String, x: Int, y: Int, maxWidth: Int) {
|
||||
val fm = this.fontMetrics
|
||||
val lineHeight = fm.height
|
||||
var curY = y
|
||||
val words = text.split(" ")
|
||||
val line = StringBuilder()
|
||||
for (word in words) {
|
||||
if (fm.stringWidth("$line$word ") <= maxWidth) {
|
||||
line.append(word).append(" ")
|
||||
} else {
|
||||
this.drawString(line.toString(), x, curY)
|
||||
curY += lineHeight
|
||||
line.setLength(0)
|
||||
line.append(word).append(" ")
|
||||
}
|
||||
}
|
||||
if (line.isNotEmpty()) {
|
||||
this.drawString(line.toString(), x, curY)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user