2023-05-16 21:50:18 +03:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
import logging
|
|
|
|
from traceback import format_exc
|
|
|
|
|
|
|
|
from libbot import config_get, json_read
|
|
|
|
from pyrogram import filters
|
|
|
|
from pyrogram.client import Client
|
|
|
|
from pyrogram.enums.chat_action import ChatAction
|
|
|
|
from pyrogram.types import Message
|
|
|
|
|
|
|
|
from modules.utils import string, userGet
|
|
|
|
from modules.bwt import getWaterLeft
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
@Client.on_message(
|
|
|
|
~filters.scheduled & filters.command(["balance", "баланс"], prefixes=["/", ""]) # type: ignore
|
|
|
|
)
|
|
|
|
async def command_balance(app: Client, msg: Message):
|
|
|
|
try:
|
|
|
|
if "card" in (await json_read("data/database.json"))[str(msg.from_user.id)]:
|
|
|
|
await app.send_chat_action(chat_id=msg.chat.id, action=ChatAction.TYPING)
|
|
|
|
water_left = await getWaterLeft(
|
|
|
|
userGet(msg.from_user.id, "card"), msg.from_user.id, app
|
|
|
|
)
|
|
|
|
if water_left == "":
|
|
|
|
await msg.reply_text(
|
|
|
|
(await string("error_new")).format(
|
|
|
|
f'https://bwtaqua.com.ua/card-topup/?id={userGet(msg.from_user.id, "card")}'
|
|
|
|
)
|
|
|
|
)
|
|
|
|
# raise EmptyCardException("Card information is empty")
|
|
|
|
elif water_left == "Failure":
|
|
|
|
await msg.reply_text(
|
|
|
|
(await string("error_occured")).format(await string("get_number"))
|
|
|
|
)
|
|
|
|
logger.warning(
|
|
|
|
f"User {str(msg.from_user.id)} could not get left water amount"
|
|
|
|
)
|
|
|
|
else:
|
|
|
|
await msg.reply_text((await string("card_balance")).format(water_left))
|
|
|
|
logger.info(
|
|
|
|
f"User {str(msg.from_user.id)} has {water_left} liters remaining"
|
|
|
|
)
|
|
|
|
else:
|
|
|
|
await msg.reply_text(
|
|
|
|
(await string("card_not_linked")).format(await string("get_number"))
|
|
|
|
)
|
|
|
|
logger.info(
|
|
|
|
f"User {str(msg.from_user.id)} tried to get balance without card set"
|
|
|
|
)
|
|
|
|
except Exception as exp:
|
2023-07-14 13:42:47 +03:00
|
|
|
if msg.from_user.id != app.owner:
|
2023-05-16 21:50:18 +03:00
|
|
|
await msg.reply_text(
|
|
|
|
(await string("error_occured")).format(await string("get_number"))
|
|
|
|
)
|
|
|
|
await app.send_message(
|
2023-07-14 13:42:47 +03:00
|
|
|
app.owner,
|
2023-05-16 21:50:18 +03:00
|
|
|
f"Error occured by {str(msg.from_user.id)}:\nException: `{exp}`\nTraceback: `{format_exc()}`",
|
|
|
|
)
|
|
|
|
logger.warning(f"User {str(msg.from_user.id)} could not get left water amount")
|