From 767f0620a68aadeed3c0f7c953204c512897ca01 Mon Sep 17 00:00:00 2001 From: tateisu Date: Sat, 18 Feb 2023 01:18:18 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3=E3=83=80?= =?UTF-8?q?=E3=82=A4=E3=82=A2=E3=83=AD=E3=82=B0=E3=81=A7IDN=E3=83=89?= =?UTF-8?q?=E3=83=A1=E3=82=A4=E3=83=B3=E3=82=92=E6=8C=87=E5=AE=9A=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/jp/juggler/subwaytooter/api/entity/Acct.kt | 6 +++++- .../main/java/jp/juggler/subwaytooter/dialog/LoginForm.kt | 5 ++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/jp/juggler/subwaytooter/api/entity/Acct.kt b/app/src/main/java/jp/juggler/subwaytooter/api/entity/Acct.kt index c9040735..775a83e1 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/api/entity/Acct.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/api/entity/Acct.kt @@ -45,7 +45,11 @@ class Host private constructor( val cached = hostSet[srcArg] if (cached != null) return cached val src = srcArg.removeUrlSchema() - val ascii = IDN.toASCII(src, IDN.ALLOW_UNASSIGNED).lowercase() + val ascii = if( """[^A-Za-z0-9._-]""".toRegex().find(src)!=null){ + IDN.toASCII(src, IDN.ALLOW_UNASSIGNED).lowercase() + }else{ + IDN.toASCII(src, IDN.ALLOW_UNASSIGNED).lowercase() + } val pretty = IDN.toUnicode(src, IDN.ALLOW_UNASSIGNED) val host = if (ascii == pretty) Host(ascii) else Host(ascii, pretty) hostSet[src] = host diff --git a/app/src/main/java/jp/juggler/subwaytooter/dialog/LoginForm.kt b/app/src/main/java/jp/juggler/subwaytooter/dialog/LoginForm.kt index 9edbd74d..b4d984fd 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/dialog/LoginForm.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/dialog/LoginForm.kt @@ -40,7 +40,7 @@ class LoginForm( private val log = LogCategory("LoginForm") @Suppress("RegExpSimplifiable") - val reBadLetter = """[^A-Za-z0-9:;._-]+""".toRegex() + val reBadChars = """([^\p{L}\p{N}A-Za-z0-9:;._-]+)""".toRegex() fun AppCompatActivity.showLoginForm( onClickOk: ( @@ -192,8 +192,7 @@ class LoginForm( return null } - // - reBadLetter.findAll(s).joinToString("") { it.value }.notEmpty()?.let { + reBadChars.findAll(s).joinToString("") { it.value }.notEmpty()?.let { showError(activity.getString(R.string.server_host_name_cant_contains_it, it)) return null }