уведомление о неиспользованном триале

This commit is contained in:
Vladless
2024-10-13 04:02:47 +03:00
parent d54f05dc77
commit 93c69eed8b
2 changed files with 38 additions and 2 deletions
+37 -2
View File
@@ -126,14 +126,49 @@ async def cancel_create_key(callback_query: CallbackQuery, state: FSMContext):
@router.message(Command('start'))
async def handle_start(message: types.Message, state: FSMContext):
# Обработка команды /start
await start_command(message)
@router.message(Command('menu'))
async def handle_menu(message: types.Message, state: FSMContext):
# Обработка команды /menu
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'))
async def send_message_to_all_clients(message: types.Message, state: FSMContext):
if message.from_user.id != ADMIN_ID:
+1
View File
@@ -96,3 +96,4 @@ async def notify_expiring_keys(bot: Bot):
await conn.close()
except Exception as e:
print(f"Ошибка при отправке уведомлений: {e}")
# Импортируйте функцию, которая возвращает все соединения