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/
|
**/.vscode/
|
||||||
**/__pycache__/
|
**/__pycache__/
|
||||||
**/data/
|
**/data/
|
||||||
|
**/.idea/
|
||||||
|
|
||||||
**/*.pyc
|
**/*.pyc
|
||||||
**/*.pkl
|
**/*.pkl
|
||||||
|
|
|
@ -220,6 +220,12 @@ CONST = {
|
||||||
int(os_getenv("CAPTCHABOT_MAX_FAIL_BAN_POLL",
|
int(os_getenv("CAPTCHABOT_MAX_FAIL_BAN_POLL",
|
||||||
SETTINGS["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
|
# Last session restorable RAM data backup file path
|
||||||
"F_SESSION": SCRIPT_PATH + "/session.pkl",
|
"F_SESSION": SCRIPT_PATH + "/session.pkl",
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,9 @@ from asyncio import sleep as asyncio_sleep
|
||||||
# Collections Data Types Library
|
# Collections Data Types Library
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
|
# Date and Time Library
|
||||||
|
from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
# JSON Library
|
# JSON Library
|
||||||
from json import dumps as json_dumps
|
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)",
|
logger.info("[%s] Captcha Fail - Ban - %s (%s)",
|
||||||
chat_id, user_name, user_id)
|
chat_id, user_name, user_id)
|
||||||
# Try to ban the user and notify Admins
|
# 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"] == "":
|
if ban_result["error"] == "":
|
||||||
# Ban success
|
# Ban success
|
||||||
banned = True
|
banned = True
|
||||||
|
|
|
@ -168,5 +168,9 @@ SETTINGS = {
|
||||||
# Maximum number of times a user fail to solve a Poll captcha.
|
# 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
|
# If a user don't solve the captcha after this, it will be ban
|
||||||
# instead kick
|
# 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