Compare commits

...

2 Commits

Author SHA1 Message Date
81ba776c7d
fix InputCommand throws OutOfBounds while input is empty 2023-11-05 19:47:33 +08:00
d5c852e989
fix *.cdn-telegram.org 2023-11-05 19:33:35 +08:00
5 changed files with 25 additions and 16 deletions

View File

@ -5,7 +5,7 @@ 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.2.1
VERSION = 1.2.2-beta2
USE_DELTA = false
VERSION_DELTA =

View File

@ -16,11 +16,11 @@ class InputCommand private (
object InputCommand {
def apply (input: Array[String]): InputCommand = {
val _ex = input(0) split ("@", 2)
val _ex = if input.nonEmpty then input(0) split ("@", 2) else Array.empty[String]
val _args = input drop 1
new InputCommand(
if _ex.length == 1 then null else _ex(1),
_ex(0),
if _ex.length > 1 then _ex(1) else null,
if _ex.nonEmpty then _ex(0) else "",
_args
)
}

View File

@ -9,7 +9,7 @@ import scala.util.matching.Regex
object TelegramUserInformation {
private val DC_QUERY_PROCESSOR_REGEX: Regex = "(cdn[1-9]).tele(sco.pe|gram-cdn.org)"r
private val DC_QUERY_PROCESSOR_REGEX: Regex = "(cdn[1-9]).(telesco\\.pe|telegram-cdn\\.org|cdn-telegram\\.org)"r
private val httpClient = OkHttpSyncBackend()

View File

@ -88,7 +88,6 @@ class UniversalCommandTest extends MornyTests with Matchers with TableDrivenProp
Lmd("something error!\\") shouldEqual Array("something", "error!\\")
}
"with multi-line input" - {
whileStrict("should throws IllegalArgumentException") in:
an [IllegalArgumentException] should be thrownBy Cmd("something will\nhave a new line")
@ -96,6 +95,10 @@ class UniversalCommandTest extends MornyTests with Matchers with TableDrivenProp
Lmd("something will\nhave a new line") shouldEqual Array("something", "will\nhave", "a", "new", "line")
}
"empty string input should return empty array" in {
Cmd("") shouldEqual Array.empty[String]
Lmd("") shouldEqual Array.empty[String]
}
val example_special_character = Table(
"char",

View File

@ -16,35 +16,41 @@ class InputCommandTest extends MornyTests with TableDrivenPropertyChecks {
"args"
),
(
"/exit@sukazyo_deving_bot",
"/exit",
"exit@sukazyo_deving_bot",
"exit",
"sukazyo_deving_bot",
Array.empty[String]
),
(
"/test@a@b",
"/test",
"test@a@b",
"test",
"a@b",
Array.empty[String]
),
(
"/test-data@random#user",
"/test-data",
"test-data@random#user",
"test-data",
"random#user",
Array.empty[String]
),
(
"/info@sukazyo_deving_bot stickers.ID_403",
"/info",
"info@sukazyo_deving_bot stickers.ID_403",
"info",
"sukazyo_deving_bot",
Array("stickers.ID_403")
),
(
"/info some extra info",
"/info",
"info some extra info",
"info",
null,
Array("some", "extra", "info")
),
(
"",
"",
null,
Array.empty[String]
)
)
examples forEvery { (source, command, target, args) =>