From a500e7bb7977d99c47bfe4c4e6b4cd66c485ee67 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Wed, 27 Dec 2023 20:57:40 -0300 Subject: [PATCH] add cyrillic and make latin/unknown be just the fallback, not compete against other scripts in the identification race. --- image_utils.go | 29 +++++++++++++++++------------ samples.txt | 1 + utils.go | 2 +- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/image_utils.go b/image_utils.go index c9ed699..0667b29 100644 --- a/image_utils.go +++ b/image_utils.go @@ -27,7 +27,7 @@ import ( ) const ( - nSupportedScripts = 13 + nSupportedScripts = 14 scaleShift = 6 ) @@ -35,6 +35,7 @@ var ( supportedScripts = [nSupportedScripts]language.Script{ language.Unknown, language.Latin, + language.Cyrillic, language.Hiragana, language.Katakana, language.Hebrew, @@ -56,6 +57,7 @@ var ( defaultLanguageMap = [nSupportedScripts]language.Language{ "en-us", "en-us", + "ru", "ja", "ja", "he", @@ -74,6 +76,7 @@ var ( di.DirectionLTR, di.DirectionLTR, di.DirectionLTR, + di.DirectionLTR, di.DirectionRTL, di.DirectionLTR, di.DirectionRTL, @@ -139,16 +142,17 @@ func initializeImageDrawingStuff() error { } fontMap[0] = loadFont("fonts/NotoSans.ttf") fontMap[1] = fontMap[0] - fontMap[2] = loadFont("fonts/NotoSansJP.ttf") - fontMap[3] = fontMap[1] - fontMap[4] = loadFont("fonts/NotoSansHebrew.ttf") - fontMap[5] = loadFont("fonts/NotoSansThai.ttf") - fontMap[6] = loadFont("fonts/NotoSansArabic.ttf") - fontMap[7] = loadFont("fonts/NotoSansDevanagari.ttf") - fontMap[8] = loadFont("fonts/NotoSansBengali.ttf") - fontMap[9] = loadFont("fonts/NotoSansJavanese.ttf") - fontMap[10] = loadFont("fonts/NotoSansSC.ttf") - fontMap[11] = loadFont("fonts/NotoSansKR.ttf") + fontMap[2] = fontMap[0] + fontMap[3] = loadFont("fonts/NotoSansJP.ttf") + fontMap[4] = fontMap[3] + fontMap[5] = loadFont("fonts/NotoSansHebrew.ttf") + fontMap[6] = loadFont("fonts/NotoSansThai.ttf") + fontMap[7] = loadFont("fonts/NotoSansArabic.ttf") + fontMap[8] = loadFont("fonts/NotoSansDevanagari.ttf") + fontMap[9] = loadFont("fonts/NotoSansBengali.ttf") + fontMap[10] = loadFont("fonts/NotoSansJavanese.ttf") + fontMap[11] = loadFont("fonts/NotoSansSC.ttf") + fontMap[12] = loadFont("fonts/NotoSansKR.ttf") emojiFace = loadFont("fonts/NotoEmoji.ttf") // shaper stuff @@ -228,7 +232,8 @@ func getLanguageAndScriptAndDirectionAndFont(paragraph []rune) ( goto gotScriptIndex } } - idx = maxIndex(ranking[:]) + idx = maxIndex(ranking[2:] /* skip Unknown and Latin because they are the default */) + idx += 2 // add back the skipped indexes (if maxIndex returns -1 this will default us to 1, latin) gotScriptIndex: script = supportedScripts[idx] diff --git a/samples.txt b/samples.txt index 1904468..68ef61b 100644 --- a/samples.txt +++ b/samples.txt @@ -10,3 +10,4 @@ naddr1qqwyummnw3ez64r9vd5z64m9v44kc7fdxgcryvedxycj6vfeqgszak7w562dzerznp222fvrgk nevent1qqsy05v33j3w6klkfhy6taud0d7g7n6e7z9mt0z20aenqfam3lzywrcpzpmhxue69uhnzdps9enrw73wd9hsyg9vxs9ql7jgtz0f3tu9wa65220gck0hl5gs7x7gxtgw34xy60gc2vg30mg0 nevent1qqszl72lntw6qdx2dc0fet9yrjpxlvh98ww7w3egm5ey5h0dwwzjg2gpzpmhxue69uhnzdps9enrw73wd9hsygyxl5wgpsraaw7r6xffxaajf49lvk594ung4u2umg4veez5manshc4w8pdp nevent1qqsyxahlr82z786vyhg0u2ycx46wrwwz5tap66udeffxle7phduthmspzpmhxue69uhnzdps9enrw73wd9hsygpcrk7vwyuw4wd8r6q5c4ur0jwky06qxmkqys80xq3nq6z0lj9n3u9zd3r4 +nevent1qqstj4gq2q9utuazaagzx0cd0n3jlm97p2084rfrvw2f8ytfa8ec2qgpp4mhxue69uhhjctzw5hx6egzypmezxyxju0727078e8epkwu06gle46g2rwzs5mgrll3we2tyxqfzuwew5q diff --git a/utils.go b/utils.go index 08270e5..00c3c21 100644 --- a/utils.go +++ b/utils.go @@ -506,7 +506,7 @@ func isntRealRelay(url string) bool { } func maxIndex(slice []int) int { - maxIndex := 0 + maxIndex := -1 maxVal := 0 for i, val := range slice { if val > maxVal {