Delete wraps

This commit is contained in:
Zakhar Izmaylov
2024-11-09 12:01:24 +03:00
parent eec5e8c887
commit 7d51ff3a85
3 changed files with 184 additions and 213 deletions
+80 -80
View File
@@ -15,96 +15,96 @@ from database import (
get_tg_id_by_client_id,
update_key_expiry,
)
from middlewares.admin import admin_only
router = Router()
@router.message(Command("add_balance"))
@admin_only()
async def cmd_add_balance(message: types.Message):
try:
_, client_id, amount = message.text.split()
amount = float(amount)
async def cmd_add_balance(message: types.Message, is_admin: bool):
if is_admin:
try:
_, client_id, amount = message.text.split()
amount = float(amount)
if not await check_connection_exists(int(client_id)):
await message.reply(f"Клиент с ID {client_id} не найден.")
return
if not await check_connection_exists(int(client_id)):
await message.reply(f"Клиент с ID {client_id} не найден.")
return
await add_balance_to_client(int(client_id), amount)
await message.reply(f"Баланс клиента {client_id} увеличен на {amount} у.е.")
except ValueError:
await message.reply(
"Пожалуйста, используйте формат: /add_balance <client_id> <amount>"
)
except Exception as e:
await message.reply(f"Произошла ошибка: {e}")
await add_balance_to_client(int(client_id), amount)
await message.reply(f"Баланс клиента {client_id} увеличен на {amount} у.е.")
except ValueError:
await message.reply(
"Пожалуйста, используйте формат: /add_balance <client_id> <amount>"
)
except Exception as e:
await message.reply(f"Произошла ошибка: {e}")
@router.message(Command("update_key_expiry"))
@admin_only()
async def cmd_update_key_expiry(message: types.Message):
try:
parts = message.text.split(maxsplit=2)
if len(parts) != 3:
async def cmd_update_key_expiry(message: types.Message, is_admin: bool):
if is_admin:
try:
parts = message.text.split(maxsplit=2)
if len(parts) != 3:
await message.reply(
"Пожалуйста, используйте формат: /update_key_expiry <email> <expiry_time(YYYY-MM-DD HH:MM:SS)>"
)
return
_, email, expiry_time_str = parts
expiry_time = int(
datetime.strptime(expiry_time_str, "%Y-%m-%d %H:%M:%S").timestamp()
* 1000
)
client_id = await get_client_id_by_email(email)
if client_id is None:
await message.reply(f"Клиент с email {email} не найден.")
return
await update_key_expiry(client_id, expiry_time)
conn = await asyncpg.connect(DATABASE_URL)
try:
record = await conn.fetchrow(
"SELECT server_id FROM keys WHERE client_id = $1", client_id
)
if not record:
await message.reply("Клиент не найден в базе данных.")
return
server_id = record["server_id"]
tg_id = await get_tg_id_by_client_id(client_id)
session = await login_with_credentials(
server_id, ADMIN_USERNAME, ADMIN_PASSWORD
)
logger.info(
f"Попытка обновить панель для server_id: {server_id}, tg_id: {tg_id}, client_id: {client_id}, email: {email}, expiryTime: {expiry_time}"
)
success = await extend_client_key_admin(
session, server_id, tg_id, client_id, email, expiry_time
)
logger.info(
f"Статус обновления панели: {'Успешно' if success else 'Не удалось'}"
)
if success:
await message.reply(
f"Время истечения ключа для клиента {client_id} ({email}) обновлено и синхронизировано с панелью."
)
else:
await message.reply(
f"Время истечения ключа для клиента {client_id} ({email}) обновлено, но не удалось синхронизировать с панелью."
)
finally:
await conn.close()
except ValueError:
await message.reply(
"Пожалуйста, используйте формат: /update_key_expiry <email> <expiry_time(YYYY-MM-DD HH:MM:SS)>"
)
return
_, email, expiry_time_str = parts
expiry_time = int(
datetime.strptime(expiry_time_str, "%Y-%m-%d %H:%M:%S").timestamp() * 1000
)
client_id = await get_client_id_by_email(email)
if client_id is None:
await message.reply(f"Клиент с email {email} не найден.")
return
await update_key_expiry(client_id, expiry_time)
conn = await asyncpg.connect(DATABASE_URL)
try:
record = await conn.fetchrow(
"SELECT server_id FROM keys WHERE client_id = $1", client_id
)
if not record:
await message.reply("Клиент не найден в базе данных.")
return
server_id = record["server_id"]
tg_id = await get_tg_id_by_client_id(client_id)
session = await login_with_credentials(
server_id, ADMIN_USERNAME, ADMIN_PASSWORD
)
logger.info(
f"Попытка обновить панель для server_id: {server_id}, tg_id: {tg_id}, client_id: {client_id}, email: {email}, expiryTime: {expiry_time}"
)
success = await extend_client_key_admin(
session, server_id, tg_id, client_id, email, expiry_time
)
logger.info(
f"Статус обновления панели: {'Успешно' if success else 'Не удалось'}"
)
if success:
await message.reply(
f"Время истечения ключа для клиента {client_id} ({email}) обновлено и синхронизировано с панелью."
)
else:
await message.reply(
f"Время истечения ключа для клиента {client_id} ({email}) обновлено, но не удалось синхронизировать с панелью."
)
finally:
await conn.close()
except ValueError:
await message.reply(
"Пожалуйста, используйте формат: /update_key_expiry <email> <expiry_time(YYYY-MM-DD HH:MM:SS)>"
)
except Exception as e:
await message.reply(f"Произошла ошибка: {e}")
except Exception as e:
await message.reply(f"Произошла ошибка: {e}")