Compare commits

...

6 Commits

Author SHA1 Message Date
Anatoliy Esherkin 6a451729ce
Merge da1d762c51 into c53c3cd195 2026-03-28 18:24:19 +03:00
WowInceptionGood c53c3cd195
Документация 2026-03-27 17:34:24 +03:00
Anatoliy Esherkin da1d762c51
Update config.py 2026-03-12 11:35:46 +03:00
Anatoliy Esherkin f627cdc785
ЧС, возможность отключения белых и чёрных списков 2026-03-12 10:50:52 +03:00
Anatoliy Esherkin dfd1954795
ЧС 2026-03-12 10:49:42 +03:00
Anatoliy Esherkin c3c9be3a30
ЧС, возможность отключения белых и чёрных списков 2026-03-12 10:41:50 +03:00
4 changed files with 22 additions and 7 deletions

View File

@ -23,4 +23,5 @@ https://t.me/openmax_alerts
# Дополнительная информация
- [FAQ](faq/readme.md)
- [Документация проекта](https://github.com/openmax-server/docs)
- [Публичные сервера](faq/servers.md)

View File

@ -44,4 +44,8 @@ class ServerConfig:
### Telegram bot
telegram_bot_token = os.getenv("telegram_bot_token") or "123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ"
telegram_bot_enabled = bool(os.getenv("telegram_bot_enabled")) or True
telegram_whitelist_enabled = bool(os.getenv("telegram_whitelist_enabled")) or False
telegram_blacklist_enabled = bool(os.getenv("telegram_blacklist_enabled")) or False
telegram_whitelist_ids = [x.strip() for x in os.getenv("telegram_whitelist_ids", "").split(",") if x.strip()]
telegram_blacklist_ids = [x.strip() for x in os.getenv("telegram_blacklist_ids", "").split(",") if x.strip()]

View File

@ -23,6 +23,7 @@ class Static:
REGISTRATION_SUCCESS = "registration_success"
ACCOUNT_ALREADY_EXISTS = "account_already_exists"
ID_NOT_WHITELISTED = "id_not_whitelisted"
ID_BLACKLISTED = "id_blacklisted"
INTERNAL_ERROR = "internal_error"
INCOMING_CODE = "incoming_code"
@ -104,6 +105,9 @@ class Static:
"id_not_whitelisted": """
Ваш ID не находится в белом списке.
""",
"id_blacklisted": """
Ваш ID заблокирован.
""",
"internal_error": """
Ошибка при регистрации аккаунта.
""",

View File

@ -13,6 +13,7 @@ class TelegramBot:
self.enabled = enabled
self.db_pool = db_pool
self.whitelist_ids = whitelist_ids if whitelist_ids is not None else []
self.blacklist_ids = blacklist_ids if blacklist_ids is not None else []
self.logger = logging.getLogger(__name__)
self.msg_types = Static().BotMessageTypes()
@ -46,10 +47,15 @@ class TelegramBot:
async def handle_register(message):
tg_id = str(message.from_user.id)
# Проверка ID на наличие в белом списке
if tg_id not in self.whitelist_ids:
await self.bot.send_message(message.chat.id, self.get_bot_message(self.msg_types.ID_NOT_WHITELISTED))
return
# Проверка ID на наличие в белом списке и в чёрном списке
if whitelist_enabled:
if tg_id not in self.whitelist_ids:
await self.bot.send_message(message.chat.id, self.get_bot_message(self.msg_types.ID_NOT_WHITELISTED))
return
elif blacklist_enabled:
if tg_id in self.blacklist_ids:
await self.bot.send_message(message.chat.id, self.get_bot_message(self.msg_types.ID_BLACKLISTED))
return
async with self.db_pool.acquire() as conn:
async with conn.cursor() as cursor: