From 27db838b3221a5f1a3dbd0065820f5c30ae4c2fe Mon Sep 17 00:00:00 2001 From: "Andrew K. Choi" Date: Mon, 17 Nov 2025 08:42:25 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20parse=5Faccounts?= =?UTF-8?q?=5Ffrom=5Fmessage=20=D0=B2=20=D0=BC=D0=B0=D1=81=D1=81=D0=BE?= =?UTF-8?q?=D0=B2=D1=8B=D1=85=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблема: при массовом добавлении/удалении использовался простой split(), который не обрабатывал формат 'КАРТА СЧЕТ' корректно Решение: - Заменил простой split('\n') и split(',') на parse_accounts_from_message() - Теперь все массовые операции используют единую логику парсинга - Корректно обрабатывается формат '2522 63-30-90-57-17-91-75' Затронутые функции: - process_bulk_add_accounts() - process_bulk_remove_accounts() --- .bot.pid | 1 + src/handlers/admin_panel.py | 20 ++++++-------------- 2 files changed, 7 insertions(+), 14 deletions(-) create mode 100644 .bot.pid diff --git a/.bot.pid b/.bot.pid new file mode 100644 index 0000000..d251503 --- /dev/null +++ b/.bot.pid @@ -0,0 +1 @@ +843174 diff --git a/src/handlers/admin_panel.py b/src/handlers/admin_panel.py index ae73e16..4715df0 100644 --- a/src/handlers/admin_panel.py +++ b/src/handlers/admin_panel.py @@ -1347,13 +1347,9 @@ async def process_bulk_add_accounts(message: Message, state: FSMContext): data = await state.get_data() lottery_id = data['bulk_add_accounts_lottery_id'] - # Парсим входные данные - поддерживаем и запятые, и переносы строк - account_inputs = [] - for line in message.text.split('\n'): - for account in line.split(','): - account = account.strip() - if account: - account_inputs.append(account) + # Используем функцию парсинга из account_utils для корректной обработки формата "КАРТА СЧЕТ" + from ..utils.account_utils import parse_accounts_from_message + account_inputs = parse_accounts_from_message(message.text) async with async_session_maker() as session: # Массовое добавление по номерам счетов @@ -1476,13 +1472,9 @@ async def process_bulk_remove_accounts(message: Message, state: FSMContext): data = await state.get_data() lottery_id = data['bulk_remove_accounts_lottery_id'] - # Парсим входные данные - поддерживаем и запятые, и переносы строк - account_inputs = [] - for line in message.text.split('\n'): - for account in line.split(','): - account = account.strip() - if account: - account_inputs.append(account) + # Используем функцию парсинга из account_utils для корректной обработки формата "КАРТА СЧЕТ" + from ..utils.account_utils import parse_accounts_from_message + account_inputs = parse_accounts_from_message(message.text) async with async_session_maker() as session: # Массовое удаление по номерам счетов