Skip to content

Commit

Permalink
add /chuang
Browse files Browse the repository at this point in the history
  • Loading branch information
Eyre-S committed Oct 9, 2023
1 parent 49bbc03 commit 253208e
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 3 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ MORNY_ARCHIVE_NAME = morny-coeur
MORNY_CODE_STORE = https://github.com/Eyre-S/Coeur-Morny-Cono
MORNY_COMMIT_PATH = https://github.com/Eyre-S/Coeur-Morny-Cono/commit/%s

VERSION = 1.0.0
VERSION = 1.1.0-alpha1

USE_DELTA = false
VERSION_DELTA =

CODENAME = beiping
CODENAME = nanchang

# dependencies

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ class MornyCommands (using coeur: MornyCoeur) {
private val $MornyManagers = MornyManagers()
//noinspection NonAsciiCharacters
private val $喵呜 = 喵呜()
//noinspection NonAsciiCharacters
private val $创 = 创()
private val commands: CommandMap = CommandMap(

$MornyHellos.On,
Expand All @@ -54,7 +56,9 @@ class MornyCommands (using coeur: MornyCoeur) {
//noinspection NonAsciiCharacters
私わね(),
//noinspection NonAsciiCharacters
$喵呜.Progynova
$喵呜.Progynova,
//noinspection NonAsciiCharacters
$创.Chuang

)

Expand Down
79 changes: 79 additions & 0 deletions src/main/scala/cc/sukazyo/cono/morny/bot/command/创.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package cc.sukazyo.cono.morny.bot.command

import cc.sukazyo.cono.morny.MornyCoeur
import cc.sukazyo.cono.morny.data.TelegramStickers
import cc.sukazyo.cono.morny.util.tgapi.InputCommand
import cc.sukazyo.cono.morny.util.tgapi.TelegramExtensions.Bot.*
import com.pengrad.telegrambot.model.{MessageEntity, Update}
import com.pengrad.telegrambot.request.{SendMessage, SendSticker}

//noinspection NonAsciiCharacters
class (using coeur: MornyCoeur) {

object Chuang extends ISimpleCommand {

override val name: String = "chuang"
override val aliases: Array[ICommandAlias] | Null = null

override def execute (using command: InputCommand, event: Update): Unit = {

val text =
if (command.args nonEmpty)
command.args mkString " "
else if ((event.message.replyToMessage ne null) && (event.message.replyToMessage.text ne null))
event.message.replyToMessage.text
else
coeur.account exec SendSticker(
event.message.chat.id,
TelegramStickers ID_404
).replyToMessageId(event.message.messageId)
return;

val chuangText = 创.chuangText(text)
coeur.account exec SendMessage(
event.message.chat.id,
chuangText
).entities(
MessageEntity(MessageEntity.Type.pre, 0, chuangText.length)
).replyToMessageId(event.message.messageId)

}

}

}

//noinspection NonAsciiCharacters
object {

def chuangText (text: String): String = {

val c = StringBuilder()

import cc.sukazyo.cono.morny.util.StringEnsure.ensureSize

import Math.*
val lines = text split '\n'
val _base = max(5, lines.map(l => l.length).max)
val _min = 5
val _ext = _base - _min
c ++= raw" " ++= " " * _base ++= raw" \ | " += '\n'
c ++= raw" " ++= " " * _base ++= raw" -+- " += '\n'
c ++= raw" +-+-" ++= "-" * _base ++= raw"-+-\ O " += '\n'
c ++= raw" | | " ++= " " * _base ++= raw" || \ " += '\n'
if (lines.length > 1)
c ++= raw" | | " ++= lines(0).ensureSize(_base) ++= raw" || \ " += '\n'
for (l <- lines drop 1 dropRight 1)
c ++= raw" | | " ++= l.ensureSize(_base) ++= raw" || | " += '\n'
c ++= raw" | | " ++= lines.last.ensureSize(_base) ++= raw" || | O " += '\n'
else
c ++= raw" | | " ++= lines(0).ensureSize(_base) ++= raw" || \ O " += '\n'
c ++= raw" | | " ++= " " * _base ++= raw" || | -+- " += '\n'
c ++= raw" +-+-" ++= raw"-/-\-${"-" * _ext}" ++= raw"-++/-\+ _/ \ " += '\n'
c ++= raw" " ++= raw" \_/ ${" " * _ext}" ++= raw" \-/ " += '\n'

c toString

}

}
17 changes: 17 additions & 0 deletions src/main/scala/cc/sukazyo/cono/morny/util/StringEnsure.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package cc.sukazyo.cono.morny.util

object StringEnsure {


extension (str: String) {

def ensureSize(size: Int, paddingStr: Char = ' '): String = {
if (str.length < size) {
val padding = paddingStr.toString * (size-str.length)
str + padding
} else str
}

}

}

0 comments on commit 253208e

Please sign in to comment.