kopia lustrzana https://github.com/J-Rios/TLG_JoinCaptchaBot
Allow to set up custom ban duration via CAPTCHABOT_BAN_DURATION option (#204)
Co-authored-by: almost_random_username <gerogerigegege@localdomain>pull/206/head
rodzic
f2f30b8936
commit
77c3af4829
|
@ -1,6 +1,7 @@
|
|||
**/.vscode/
|
||||
**/__pycache__/
|
||||
**/data/
|
||||
**/.idea/
|
||||
|
||||
**/*.pyc
|
||||
**/*.pkl
|
||||
|
|
|
@ -220,6 +220,12 @@ CONST = {
|
|||
int(os_getenv("CAPTCHABOT_MAX_FAIL_BAN_POLL",
|
||||
SETTINGS["CAPTCHABOT_MAX_FAIL_BAN_POLL"])),
|
||||
|
||||
# Duration of ban (in seconds, negative values mean indefinite ban).
|
||||
# Useful if you want to ban someone temporarily.
|
||||
"BAN_DURATION":
|
||||
int(os_getenv("CAPTCHABOT_BAN_DURATION",
|
||||
SETTINGS["CAPTCHABOT_BAN_DURATION"])),
|
||||
|
||||
# Last session restorable RAM data backup file path
|
||||
"F_SESSION": SCRIPT_PATH + "/session.pkl",
|
||||
|
||||
|
|
|
@ -32,6 +32,9 @@ from asyncio import sleep as asyncio_sleep
|
|||
# Collections Data Types Library
|
||||
from collections import OrderedDict
|
||||
|
||||
# Date and Time Library
|
||||
from datetime import datetime, timedelta, timezone
|
||||
|
||||
# JSON Library
|
||||
from json import dumps as json_dumps
|
||||
|
||||
|
@ -873,7 +876,11 @@ async def captcha_fail_member_kick(bot, chat_id, user_id, user_name):
|
|||
logger.info("[%s] Captcha Fail - Ban - %s (%s)",
|
||||
chat_id, user_name, user_id)
|
||||
# Try to ban the user and notify Admins
|
||||
ban_result = await tlg_ban_user(bot, chat_id, user_id)
|
||||
if CONST["BAN_DURATION"] >= 0:
|
||||
ban_until_date = datetime.now(timezone.utc) + timedelta(seconds=CONST["BAN_DURATION"])
|
||||
else:
|
||||
ban_until_date = None
|
||||
ban_result = await tlg_ban_user(bot, chat_id, user_id, until_date=ban_until_date)
|
||||
if ban_result["error"] == "":
|
||||
# Ban success
|
||||
banned = True
|
||||
|
|
|
@ -168,5 +168,9 @@ SETTINGS = {
|
|||
# Maximum number of times a user fail to solve a Poll captcha.
|
||||
# If a user don't solve the captcha after this, it will be ban
|
||||
# instead kick
|
||||
"CAPTCHABOT_MAX_FAIL_BAN_POLL": 3
|
||||
"CAPTCHABOT_MAX_FAIL_BAN_POLL": 3,
|
||||
|
||||
# Duration of ban (in seconds, negative values mean indefinite ban).
|
||||
# Useful if you want to ban someone temporarily.
|
||||
"CAPTCHABOT_BAN_DURATION": -1,
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue