diff --git a/lib/tgspam/detector.go b/lib/tgspam/detector.go index 8cfc6bc..8ffb963 100644 --- a/lib/tgspam/detector.go +++ b/lib/tgspam/detector.go @@ -584,6 +584,8 @@ func (d *Detector) isMultiLang(msg string) spamcheck.Response { scripts := make(map[string]bool) for _, r := range word { switch { + case r == 'i': // skip 'i' because it's used in many languages + continue case unicode.Is(unicode.Latin, r): scripts["Latin"] = true case unicode.Is(unicode.Cyrillic, r): diff --git a/lib/tgspam/detector_test.go b/lib/tgspam/detector_test.go index f2dca40..2a7768c 100644 --- a/lib/tgspam/detector_test.go +++ b/lib/tgspam/detector_test.go @@ -599,6 +599,7 @@ func TestDetector_CheckMultiLang(t *testing.T) { {"WithCyrillic real example 1", "Ищем заинтeрeсoвaнных в зaрaбoткe нa кpиптoвaлютe. Всeгдa хотeли пoпpoбовать сeбя в этом, нo нe знали с чeго нaчaть? Тогдa вaм кo мнe 3aнимаемся aрбuтражeм, зaрабaтывaeм на paзницe курсов с минимaльныmи pискaми 💲Рынok oчень волатильный и нам это выгoднo, пo этoмe пишиte @vitalgoescra и зapaбaтывaйтe сo мнoй ", 31, true}, {"WithCyrillic real example 2", "В поuске паpтнеров, заuнтересованных в пассuвном дoходе с затpатой мuнuмум лuчного временu. Все деталu в лс", 10, true}, {"WithCyrillic real example 3", "Всем привет, есть простая шабашка, подойдет любому. Даю 15 тысяч. Накину на проезд, сигареты, обед. ", 0, false}, + {"WithCyrillic and i", "Привет мiр", 0, false}, } for _, tt := range tests {