From efbaa0f434dea48aaae16c4e4d8dff67e09a2a34 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sat, 25 Feb 2023 15:27:33 -0500 Subject: [PATCH] =?UTF-8?q?Fixes=20the=20URL=20detector=20for=202=20specia?= =?UTF-8?q?l=20characters=20in=20Chinese=20=20"=EF=BC=8C"=20and=20"?= =?UTF-8?q?=E3=80=82"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../amethyst/TranslationsTest.kt | 48 +++++++++++-------- .../service/lang/LanguageTranslatorService.kt | 2 +- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/app/src/androidTest/java/com/vitorpamplona/amethyst/TranslationsTest.kt b/app/src/androidTest/java/com/vitorpamplona/amethyst/TranslationsTest.kt index b139e94c7..49cbedde4 100644 --- a/app/src/androidTest/java/com/vitorpamplona/amethyst/TranslationsTest.kt +++ b/app/src/androidTest/java/com/vitorpamplona/amethyst/TranslationsTest.kt @@ -11,62 +11,68 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class TranslationsTest { - fun translate(text: String): String? { - val task = LanguageTranslatorService.autoTranslate(text, emptySet(), "pt") + fun translatePT(text: String, translateTo: String): String? { + val task = LanguageTranslatorService.autoTranslate(text, emptySet(), translateTo) return Tasks.await(task).result } - fun assertTranslate(expected: String, input: String) { - assertEquals(null, expected, translate(input)) + fun assertTranslate(expected: String, input: String, translateTo: String) { + assertEquals(null, expected, translatePT(input, translateTo)) } - fun assertTranslateContains(expected: String, input: String) { - assertTrue(null, translate(input)!!.contains(expected)) + fun assertTranslateContains(expected: String, input: String, translateTo: String) { + val translated = translatePT(input, translateTo)!! + assertTrue("'$translated' does not contain '$expected'", translated.contains(expected)) } @Test fun testTranslation() { - assertTranslate("Olá mundo", "Hello World") + assertTranslate("Olá mundo", "Hello World", "pt") } @Test fun testTranslationName() { - assertTranslate("Olá Vitor, como você está?", "Hello Vitor, how are you doing?") + assertTranslate("Olá Vitor, como você está?", "Hello Vitor, how are you doing?", "pt") } @Test fun testTranslationTag() { - assertTranslate("Você já viu isso, #[0]", "Have you seen this, #[0]") + assertTranslate("Você já viu isso, #[0]", "Have you seen this, #[0]", "pt") } @Test fun testTranslationUrl() { - assertTranslateContains("https://t.me/mygroup", "Have you seen this https://t.me/mygroup") - assertTranslateContains("http://bananas.com", "Have you seen this http://bananas.com") - assertTranslateContains("http://bananas.com/myimage.jpg", "Have you seen this http://bananas.com/myimage.jpg") - assertTranslateContains("http://bananas.com?search=true&image=myimage.jpg", "Have you seen this http://bananas.com?search=true&image=myimage.jpg") - assertTranslate("https://i.imgur.com/EZ3QPsw.jpg", "https://i.imgur.com/EZ3QPsw.jpg") - assertTranslate("https://HaveYouSeenThis.com", "https://HaveYouSeenThis.com") - assertTranslate("https://haveyouseenthis.com", "https://haveyouseenthis.com") - assertTranslate("https://i.imgur.com/asdEZ3QPsw.jpg", "https://i.imgur.com/asdEZ3QPsw.jpg") - assertTranslateContains("https://i.imgur.com/asdEZ3QPswadfj2389rioasdjf9834riofaj9834aKLL.jpg", "Hi there! \n How are you doing? \n https://i.imgur.com/asdEZ3QPswadfj2389rioasdjf9834riofaj9834aKLL.jpg") + assertTranslateContains("https://t.me/mygroup", "Have you seen this https://t.me/mygroup", "pt") + assertTranslateContains("http://bananas.com", "Have you seen this http://bananas.com", "pt") + assertTranslateContains("http://bananas.com/myimage.jpg", "Have you seen this http://bananas.com/myimage.jpg", "pt") + assertTranslateContains("http://bananas.com?search=true&image=myimage.jpg", "Have you seen this http://bananas.com?search=true&image=myimage.jpg", "pt") + assertTranslate("https://i.imgur.com/EZ3QPsw.jpg", "https://i.imgur.com/EZ3QPsw.jpg", "pt") + assertTranslate("https://HaveYouSeenThis.com", "https://HaveYouSeenThis.com", "pt") + assertTranslate("https://haveyouseenthis.com", "https://haveyouseenthis.com", "pt") + assertTranslate("https://i.imgur.com/asdEZ3QPsw.jpg", "https://i.imgur.com/asdEZ3QPsw.jpg", "pt") + assertTranslateContains("https://i.imgur.com/asdEZ3QPswadfj2389rioasdjf9834riofaj9834aKLL.jpg", "Hi there! \n How are you doing? \n https://i.imgur.com/asdEZ3QPswadfj2389rioasdjf9834riofaj9834aKLL.jpg", "pt") + } + + @Test + fun testChineseWithUrlDetector() { + assertTranslate("I entered your home page is very carton, perhaps your attention or other data is too much, and the homepage of others is not so carton. From aMethyst client", "我进入你的主页很卡顿,也许是你的关注人数或者其他数据太多了,其他人主页没有这么卡顿。来自amethyst客户端", "en") } @Test fun testTranslationEmail() { - assertTranslateContains("vitor@amethyst.social", "Have you seen this vitor@amethyst.social") + assertTranslateContains("vitor@amethyst.social", "Have you seen this vitor@amethyst.social", "pt") } @Test fun testTranslationLnInvoice() { assertTranslateContains( "lnbc12u1p3lvjeupp5a5ecgp45k6pa8tu7rnkgzfuwdy3l5ylv3k5tdzrg4cr8rj2f364sdq5g9kxy7fqd9h8vmmfvdjscqzpgxqyz5vqsp5zuzyetf33aphetf0e80w7tztw6dfsjs4lmvya4cyk8umfsx00qts9qyyssqke9hphcr36zvcav8wr502g0mhfhxpy8m9tt36zttg8vldm2qxw039ulccr8nwy3hjg2sw5vk65e99lwuhrhw0nuya2u57qszltvx7egp74jydn", - "Have you seen this: lnbc12u1p3lvjeupp5a5ecgp45k6pa8tu7rnkgzfuwdy3l5ylv3k5tdzrg4cr8rj2f364sdq5g9kxy7fqd9h8vmmfvdjscqzpgxqyz5vqsp5zuzyetf33aphetf0e80w7tztw6dfsjs4lmvya4cyk8umfsx00qts9qyyssqke9hphcr36zvcav8wr502g0mhfhxpy8m9tt36zttg8vldm2qxw039ulccr8nwy3hjg2sw5vk65e99lwuhrhw0nuya2u57qszltvx7egp74jydn I think I have to pay" + "Have you seen this: lnbc12u1p3lvjeupp5a5ecgp45k6pa8tu7rnkgzfuwdy3l5ylv3k5tdzrg4cr8rj2f364sdq5g9kxy7fqd9h8vmmfvdjscqzpgxqyz5vqsp5zuzyetf33aphetf0e80w7tztw6dfsjs4lmvya4cyk8umfsx00qts9qyyssqke9hphcr36zvcav8wr502g0mhfhxpy8m9tt36zttg8vldm2qxw039ulccr8nwy3hjg2sw5vk65e99lwuhrhw0nuya2u57qszltvx7egp74jydn I think I have to pay", "pt" ) assertTranslateContains( "lnbc10u1p3l0wg0pp5y5y3vxt3429m28uuq56uqhwxadftn67yaarq06h3y9nqapz72n6sdqqxqyjw5q9q7sqqqqqqqqqqqqqqqqqqqqqqqqq9qsqsp5y2tazp42xde3c0tdsz30zqcekrt0lzrneszdtagy2qn7vs0d3p5qrzjqwryaup9lh50kkranzgcdnn2fgvx390wgj5jd07rwr3vxeje0glcll7jdvcln4lhw5qqqqlgqqqqqeqqjqdau9jzseecmvmh03h88xyf5f980xx45fmn0cej654v5jr79ye36pww90jwdda38damlmgt54v8rn6q9kywtw057rh4v3wwrmn8fajagqnssr7v", - "Test lnbc10u1p3l0wg0pp5y5y3vxt3429m28uuq56uqhwxadftn67yaarq06h3y9nqapz72n6sdqqxqyjw5q9q7sqqqqqqqqqqqqqqqqqqqqqqqqq9qsqsp5y2tazp42xde3c0tdsz30zqcekrt0lzrneszdtagy2qn7vs0d3p5qrzjqwryaup9lh50kkranzgcdnn2fgvx390wgj5jd07rwr3vxeje0glcll7jdvcln4lhw5qqqqlgqqqqqeqqjqdau9jzseecmvmh03h88xyf5f980xx45fmn0cej654v5jr79ye36pww90jwdda38damlmgt54v8rn6q9kywtw057rh4v3wwrmn8fajagqnssr7v" + "Test lnbc10u1p3l0wg0pp5y5y3vxt3429m28uuq56uqhwxadftn67yaarq06h3y9nqapz72n6sdqqxqyjw5q9q7sqqqqqqqqqqqqqqqqqqqqqqqqq9qsqsp5y2tazp42xde3c0tdsz30zqcekrt0lzrneszdtagy2qn7vs0d3p5qrzjqwryaup9lh50kkranzgcdnn2fgvx390wgj5jd07rwr3vxeje0glcll7jdvcln4lhw5qqqqlgqqqqqeqqjqdau9jzseecmvmh03h88xyf5f980xx45fmn0cej654v5jr79ye36pww90jwdda38damlmgt54v8rn6q9kywtw057rh4v3wwrmn8fajagqnssr7v", "pt" ) } } \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/lang/LanguageTranslatorService.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/lang/LanguageTranslatorService.kt index 10e2e92c2..be22a9c33 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/lang/LanguageTranslatorService.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/lang/LanguageTranslatorService.kt @@ -116,7 +116,7 @@ object LanguageTranslatorService { val counter = 0 - return urlsInText.associate { + return urlsInText.filter { !it.originalUrl.contains(",") || !it.originalUrl.contains("。") }.associate { "Amethysturlindexer${counter}" to it.originalUrl } }