https://dev.kronoz.win/r/marzneshin.git
1from datetime import datetime
2from app.db import GetDB, crud
3from app.models.user import UserResponse
4from app.telegram import bot
5# from pytz import UTC
6from telebot.custom_filters import ChatFilter
7from telebot.util import extract_arguments
8
9from app.utils.system import readable_size
10
11bot.add_custom_filter(ChatFilter())
12
13
14@bot.message_handler(commands=['usage'])
15def usage_command(message):
16 username = extract_arguments(message.text)
17 if not username:
18 return bot.reply_to(message, 'Usage: `/usage <username>`', parse_mode='MarkdownV2')
19
20 with GetDB() as db:
21 dbuser = crud.get_user(db, username)
22
23 if not dbuser:
24 return bot.reply_to(message, "No user found with this username")
25 user = UserResponse.model_validate(dbuser)
26
27 statuses = {
28 'active': '✅',
29 'expired': '🕰',
30 'limited': '📵',
31 'disabled': '❌'}
32
33 text = f'''\
34┌─{statuses[user.status]} <b>Status:</b> <code>{user.status.title()}</code>
35│ └─<b>Username:</b> <code>{user.username}</code>
36│
37├─🔋 <b>Data limit:</b> <code>{readable_size(user.data_limit) if user.data_limit else 'Unlimited'}</code>
38│ └─<b>Data Used:</b> <code>{readable_size(user.used_traffic) if user.used_traffic else "-"}</code>
39│
40└─📅 <b>Expiry Date:</b> <code>{datetime.fromtimestamp(user.expire).date() if user.expire else 'Never'}</code>
41 └─<b>Days left:</b> <code>{(datetime.fromtimestamp(user.expire or 0) - datetime.now()).days if user.expire else '-'}</code>'''
42
43 return bot.reply_to(message, text, parse_mode='HTML')