I’m moderating twitch chat using bot on node.js.
We have a problem, sometimes bots are raiding our channel and spam messages like:
- 88|неodeтыe голышкuнсы в т_еле_ж̴eч_кe dosia739
- гolышkи шkoднuчku в-телеграмчике : juice644 |82
- 87|rолышкu wkоlьницы в теlеграм4икe / recrenт361
- 89|спуctuл cпeрму на tрусы шкодниц – тeлеrрам aunkerе450
- 62 oтсосала охрaнниkу, чтобы tот пустил 6ез смeнки, чеkай синегрaм : buster824
- 88 пaрни 13 leт дрочаt dруг дpугу при пoдруге в тгшноu recrеnt361
- 84 clиb wkolьниц в телеrе -> juice644
- JN шkодницы 6aлyются b тyалете wколы в t.елеге strоgo376
- 124_rолышku шкоdничkи в-теlегрaмчиkе : recrent361
- Le педомамки е6ут новорoждённых маль4uкоb, смotри те-л-еrу > aunkere450
- 87|cлuв нeодетыx wkoдниц b..телеге olyаshaa123
- 87|отсосала оxpаннику, чтобы тот nустил без сменки, 4еkай сuнeграm / recrеnt361
- rolые wкоlьницы в_teлеrраме recrеnt361 Ap
- rоленькue голышkи b-tелeграмчиwе recrеnt361 |38
- wd ра3dетые гоlышkи b teлегe muмino531
- Dw cлиb шкoльнuц b telеге -> strogo376
- 123_лютая заnpеwенка со шкodницamи , те-лeграмчик miradota328
- 124_cлив нeодетых шkоlодpыг в t.е.лeгe juicе644
- rоlышки wkолодрыги b тeлeграмчиkе juicе584 YW
- гоlенькиe wkoднuчки в телегpаmище – аunkere450 |48
- голeнькие шkоднu4kи b телеграmищe juicе644 |6
- 18 rоlыe шkodницы b телегe дosia739
- hJ гolые шkоlьницы в_tеlегpамe mixazvеr451
- 123_неодеtыe wкodницы в-tе-леграmчuке olyashaа123
- Tl гoленькиe гoлыwки_в_tеleгpаме – sтeel537
- 15 rоlышки шкоdнuчkи в-телеrрамчukе general301
- 11 rолышkи шкоlодрыru в teлеграмчuке strоgo376
- oK clив шkoльниц b тeleграме мumino531
- 93 lюtая̾ заnpещенка со шкодницами , те-лerрамчuк juicе584
- 124_oдноkлaсснuк e6ет 15 lетнюю в те_ле_rе > rosтislav441
- Jv наказала сына и засtавиlа ли3aть пя̾ткu в этоm т.r. tx740
And I have lack of understanding what is similar and how to differ sthis messages from normal chat users
The way I do it right now is adding every last letter and numbers to check if it contains in message, but I dont think it’s reliable for future and works only after spam is occur
if (
text.toLowerCase().includes('a739') ||
text.toLowerCase().includes("e644") ||
text.toLowerCase().includes("e450")
//etc.
) {
await apiClient.asUser(
nyaka,
async (ctx) =>
await ctx.moderation.banUser(msg.channelId, {
reason: `${user}: ${text}`,
user: msg.userInfo.userId,
})
);