уведомление о неиспользованном триале
This commit is contained in:
@@ -126,14 +126,49 @@ async def cancel_create_key(callback_query: CallbackQuery, state: FSMContext):
|
|||||||
|
|
||||||
@router.message(Command('start'))
|
@router.message(Command('start'))
|
||||||
async def handle_start(message: types.Message, state: FSMContext):
|
async def handle_start(message: types.Message, state: FSMContext):
|
||||||
# Обработка команды /start
|
|
||||||
await start_command(message)
|
await start_command(message)
|
||||||
|
|
||||||
@router.message(Command('menu'))
|
@router.message(Command('menu'))
|
||||||
async def handle_menu(message: types.Message, state: FSMContext):
|
async def handle_menu(message: types.Message, state: FSMContext):
|
||||||
# Обработка команды /menu
|
|
||||||
await start_command(message)
|
await start_command(message)
|
||||||
|
|
||||||
|
@router.message(Command('send_trial'))
|
||||||
|
async def handle_send_trial_command(message: types.Message, state: FSMContext):
|
||||||
|
try:
|
||||||
|
conn = await asyncpg.connect(DATABASE_URL)
|
||||||
|
try:
|
||||||
|
# Получаем всех пользователей с не использованным пробным ключом
|
||||||
|
records = await conn.fetch('''
|
||||||
|
SELECT tg_id FROM connections WHERE trial = 0
|
||||||
|
''')
|
||||||
|
|
||||||
|
if records:
|
||||||
|
for record in records:
|
||||||
|
tg_id = record['tg_id']
|
||||||
|
trial_message = (
|
||||||
|
"🎉 Вам предоставлен пробный период на 1 день!\n"
|
||||||
|
"Пожалуйста, воспользуйтесь им, чтобы протестировать наш сервис."
|
||||||
|
)
|
||||||
|
try:
|
||||||
|
# Отправляем сообщение каждому пользователю
|
||||||
|
await bot.send_message(chat_id=tg_id, text=trial_message)
|
||||||
|
except Exception as e:
|
||||||
|
# Если бот был заблокирован пользователем, просто пропускаем его
|
||||||
|
if "Forbidden: bot was blocked by the user" in str(e):
|
||||||
|
print(f"Бот заблокирован пользователем с tg_id: {tg_id}")
|
||||||
|
else:
|
||||||
|
print(f"Ошибка при отправке сообщения пользователю {tg_id}: {e}")
|
||||||
|
|
||||||
|
await message.answer("Сообщения о пробном периоде отправлены всем пользователям с не использованным ключом.")
|
||||||
|
else:
|
||||||
|
await message.answer("Нет пользователей с не использованными пробными ключами.")
|
||||||
|
|
||||||
|
finally:
|
||||||
|
await conn.close()
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
await message.answer(f"Ошибка при отправке сообщений: {e}")
|
||||||
|
|
||||||
@router.message(Command('send_to_all'))
|
@router.message(Command('send_to_all'))
|
||||||
async def send_message_to_all_clients(message: types.Message, state: FSMContext):
|
async def send_message_to_all_clients(message: types.Message, state: FSMContext):
|
||||||
if message.from_user.id != ADMIN_ID:
|
if message.from_user.id != ADMIN_ID:
|
||||||
|
|||||||
@@ -96,3 +96,4 @@ async def notify_expiring_keys(bot: Bot):
|
|||||||
await conn.close()
|
await conn.close()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Ошибка при отправке уведомлений: {e}")
|
print(f"Ошибка при отправке уведомлений: {e}")
|
||||||
|
# Импортируйте функцию, которая возвращает все соединения
|
||||||
|
|||||||
Reference in New Issue
Block a user