xvitaly/ecasbot

limitation period

vlab97 opened this issue · 8 comments

Problem details

It happens that the bot incorrectly sets other dates. in the config file, a period of 1 day is set, and it blocks for 1 year, forever, and so on. Is it possible to set an additional check for the limitation period?
6D746035-6BCD-4F2D-9089-26E75B160E22

Steps to reproduce

1 entering the chat of a new member
2 imposition by the bot of an incorrect period for blocking actions

Expected behavior

There should have been a 1 day limit.

Actual behavior

The screenshot has a 365 day limit.

Project version

1.7.0

Platform

Microsoft Windows

OS version

Windows 10

Python version

.Exe

Installation type

EXE installer

Logs

No response

Did you used /restrict 1?

Did you used /restrict 1?

No. Automatic restriction for new chat participants is used.

Can we switch to Russian? 😁

ecasbot.json

"bantime": 86400,

Can we switch to Russian?

OK.

"bantime": 86400,

Если никнейм пользователя набирает больше баллов, чем указано в nickgoal, делённое на 2, то его аккаунт ограничивается на 366 дней (максимум для Telegram Bot API).

Т.е. можно просто nickgoal изменить с 100 до 200 например, либо использовать любое другое желаемое значение.

Can we switch to Russian?

OK.

"bantime": 86400,

Если никнейм пользователя набирает больше баллов, чем указано в nickgoal, делённое на 2, то его аккаунт ограничивается на 366 дней (максимум для Telegram Bot API).

Т.е. можно просто nickgoal изменить с 100 до 200 например, либо использовать любое другое желаемое значение.

В консоли ник набрал 50 баллов
INFO:ecasbot:Новый пользователь Игорь (-) вступил в чат - - (-). Баллы: 50.

nickgoal был выставлен на 100, по вашему совету увеличу значение в 2 раза. А дальше посмотрим. Спасибо

Просто странно, что даже по логу ник набрал 50/100 баллов и ушел в максимальную блокировку по сроку

Просто странно, что даже по логу ник набрал 50/100 баллов и ушел в максимальную блокировку по сроку

Там алгоритм такой: если аккаунт набирает полный nickgoal (100 по умолчанию) или больше, то бот его сразу банит и выкидывает из чата, а если только половину (от 50 до 99 по умолчанию), то просто ограничивает на 366 дней, т.к. считает подозрительным.

Спасибо. Так же заметил, что бот не регистрирует отправленные команды от имени чата, как админа. То есть если админ анонимен, то команды /mute и прочее не работают для него.

То есть если админ анонимен, то команды /mute и прочее не работают для него.

Логично ибо через Telegram Bot API нельзя определить администратора, который инициировал данное действие. Это можно достаточно легко исправить если в функцию проверки действий добавить и собственный ID чата, но нужно проверить для начала не будет ли это являться угрозой безопасности. Создал новый тикет #165 по данной проблеме.