Skip to content

Commit

Permalink
Drop a message this notice the dionea_bot #24
Browse files Browse the repository at this point in the history
  • Loading branch information
peterarsentev committed Jul 22, 2024
1 parent d9662c0 commit b026c69
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/main/kotlin/pro/dionea/service/SpamAnalysis.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,17 @@ class SpamAnalysis(
}

fun isSpam(text: String): SpamReason {
if (text.length <= 50) {
if (text.length < 45) {
return SpamReason(false, "Сообщение короткое.")
}
if (EmojiParser.extractEmojis(text).size >= 3) {
val emojis = EmojiParser.extractEmojis(text)
if (emojis.size >= 3) {
return SpamReason(true, "Содержит более 3 эмоджи.")
}
val contactPattern = "@\\w+".toRegex()
if (emojis.isNotEmpty() && contactPattern.containsMatchIn(text)) {
return SpamReason(true, "Содержит эмодзи и контактный логин.")
}
val lang = IdentifyLang(text).lang()
val converted = ConvertedLetter()
val lex = EmojiParser.removeAllEmojis(text)
Expand Down
38 changes: 38 additions & 0 deletions src/test/kotlin/pro/dionea/SpamAnalysisTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -383,4 +383,42 @@ class SpamAnalysisTest {
val text = "Я бесплатно за нищие вероятные 500к такую хуйню делать не буду"
assertThat(SpamAnalysis(filterService, keyService, kvalueService).isSpam(text).spam).isFalse()
}

@Test
fun isSpam28() {
val filterRepository = FilterFakeRepository()
val filterService = FilterService(filterRepository)
val keyRepository = KeyFakeRepository()
val keyService = KeyService(keyRepository)
val kvalueRepository = KValueFakeRepository()
val kvalueService = KValueService(kvalueRepository)
val filter = filterRepository.save(Filter(1))
val keyJob = keyRepository.save(Key(1, filter))
kvalueRepository.save(KValue(1, keyJob, "кайф"))
val keyMessage = keyRepository.save(Key(2, filter))
kvalueRepository.save(KValue(2, keyMessage, "бесплатно"))
val text = "\uD83D\uDC8B П р о б е й з н а к о м у ю н а и н т и м к и \n" +
"\n" +
"@nmw999"
assertThat(SpamAnalysis(filterService, keyService, kvalueService).isSpam(text).spam).isTrue()
}

@Test
fun isSpam29() {
val filterRepository = FilterFakeRepository()
val filterService = FilterService(filterRepository)
val keyRepository = KeyFakeRepository()
val keyService = KeyService(keyRepository)
val kvalueRepository = KValueFakeRepository()
val kvalueService = KValueService(kvalueRepository)
val filter = filterRepository.save(Filter(1))
val keyJob = keyRepository.save(Key(1, filter))
kvalueRepository.save(KValue(1, keyJob, "кайф"))
val keyMessage = keyRepository.save(Key(2, filter))
kvalueRepository.save(KValue(2, keyMessage, "бесплатно"))
val text = "\uD83D\uDE18 пᴘоҕᴇй дᴇвʏωкʏ нᴀ нᴀличиᴇ интимок\n" +
"\n" +
"@Nmw999"
assertThat(SpamAnalysis(filterService, keyService, kvalueService).isSpam(text).spam).isTrue()
}
}

0 comments on commit b026c69

Please sign in to comment.