Spaces:
Running
Running
# SPECIAL THANKS TO [Rishikesh Sharma] @Rk_botowner FOR THESE AMAZING CODES | |
# SPECIAL THANKS TO @DeletedFromEarth FOR MODIFYING THESE AMAZING CODES | |
from datetime import timedelta | |
import pytz | |
import datetime, time | |
from Script import script | |
from info import ADMINS, PREMIUM_LOGS | |
from utils import get_seconds | |
from database.users_chats_db import db | |
from pyrogram import Client, filters | |
from pyrogram.errors.exceptions.bad_request_400 import MessageTooLong | |
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup | |
async def remove_premium(client, message): | |
if len(message.command) == 2: | |
user_id = int(message.command[1]) # Convert the user_id to integer | |
user = await client.get_users(user_id) | |
if await db.remove_premium_access(user_id): | |
await message.reply_text("ᴜꜱᴇʀ ʀᴇᴍᴏᴠᴇᴅ ꜱᴜᴄᴄᴇꜱꜱꜰᴜʟʟʏ !") | |
await client.send_message( | |
chat_id=user_id, | |
text=f"<b>ʜᴇʏ {user.mention},\n\nʏᴏᴜʀ ᴘʀᴇᴍɪᴜᴍ ᴀᴄᴄᴇss ʜᴀs ʙᴇᴇɴ ʀᴇᴍᴏᴠᴇᴅ.\nᴛʜᴀɴᴋ ʏᴏᴜ ꜰᴏʀ ᴜsɪɴɢ ᴏᴜʀ sᴇʀᴠɪᴄᴇ 😊\nᴄʟɪᴄᴋ ᴏɴ /plan ᴛᴏ ᴄʜᴇᴄᴋ ᴏᴜᴛ ᴏᴛʜᴇʀ ᴘʟᴀɴꜱ.</b>" | |
) | |
else: | |
await message.reply_text("ᴜɴᴀʙʟᴇ ᴛᴏ ʀᴇᴍᴏᴠᴇ ᴜꜱᴇᴅ !\nᴀʀᴇ ʏᴏᴜ ꜱᴜʀᴇ, ɪᴛ ᴡᴀꜱ ᴀ ᴘʀᴇᴍɪᴜᴍ ᴜꜱᴇʀ ɪᴅ ?") | |
else: | |
await message.reply_text("ᴜꜱᴀɢᴇ : /remove_premium user_id") | |
async def myplan(client, message): | |
user = message.from_user.mention | |
user_id = message.from_user.id | |
data = await db.get_user(message.from_user.id) # Convert the user_id to integer | |
if data and data.get("expiry_time"): | |
#expiry_time = datetime.datetime.now() + datetime.timedelta(seconds=data) | |
expiry = data.get("expiry_time") | |
expiry_ist = expiry.astimezone(pytz.timezone("Asia/Kolkata")) | |
expiry_str_in_ist = expiry.astimezone(pytz.timezone("Asia/Kolkata")).strftime("%d-%m-%Y\n⏱️ ᴇxᴘɪʀʏ ᴛɪᴍᴇ : %I:%M:%S %p") | |
# Calculate time difference | |
current_time = datetime.datetime.now(pytz.timezone("Asia/Kolkata")) | |
time_left = expiry_ist - current_time | |
# Calculate days, hours, and minutes | |
days = time_left.days | |
hours, remainder = divmod(time_left.seconds, 3600) | |
minutes, seconds = divmod(remainder, 60) | |
# Format time left as a string | |
time_left_str = f"{days} ᴅᴀʏꜱ, {hours} ʜᴏᴜʀꜱ, {minutes} ᴍɪɴᴜᴛᴇꜱ" | |
await message.reply_text(f"⚜️ ᴘʀᴇᴍɪᴜᴍ ᴜꜱᴇʀ ᴅᴀᴛᴀ :\n\n👤 ᴜꜱᴇʀ : {user}\n⚡ ᴜꜱᴇʀ ɪᴅ : <code>{user_id}</code>\n⏰ ᴛɪᴍᴇ ʟᴇꜰᴛ : {time_left_str}\n⌛️ ᴇxᴘɪʀʏ ᴅᴀᴛᴇ : {expiry_str_in_ist}") | |
else: | |
await message.reply_text(f"ʜᴇʏ {user},\n\nʏᴏᴜ ᴅᴏ ɴᴏᴛ ʜᴀᴠᴇ ᴀɴʏ ᴀᴄᴛɪᴠᴇ ᴘʀᴇᴍɪᴜᴍ ᴘʟᴀɴs, ɪꜰ ʏᴏᴜ ᴡᴀɴᴛ ᴛᴏ ᴛᴀᴋᴇ ᴘʀᴇᴍɪᴜᴍ ᴛʜᴇɴ ᴄʟɪᴄᴋ ᴏɴ ʙᴇʟᴏᴡ ʙᴜᴛᴛᴏɴ 👇", | |
reply_markup=InlineKeyboardMarkup([[InlineKeyboardButton("💸 ᴄʜᴇᴄᴋᴏᴜᴛ ᴘʀᴇᴍɪᴜᴍ ᴘʟᴀɴꜱ 💸", callback_data='seeplans')]])) | |
async def get_premium(client, message): | |
if len(message.command) == 2: | |
user_id = int(message.command[1]) | |
user = await client.get_users(user_id) | |
data = await db.get_user(user_id) # Convert the user_id to integer | |
if data and data.get("expiry_time"): | |
#expiry_time = datetime.datetime.now() + datetime.timedelta(seconds=data) | |
expiry = data.get("expiry_time") | |
expiry_ist = expiry.astimezone(pytz.timezone("Asia/Kolkata")) | |
expiry_str_in_ist = expiry.astimezone(pytz.timezone("Asia/Kolkata")).strftime("%d-%m-%Y\n⏱️ ᴇxᴘɪʀʏ ᴛɪᴍᴇ : %I:%M:%S %p") | |
# Calculate time difference | |
current_time = datetime.datetime.now(pytz.timezone("Asia/Kolkata")) | |
time_left = expiry_ist - current_time | |
# Calculate days, hours, and minutes | |
days = time_left.days | |
hours, remainder = divmod(time_left.seconds, 3600) | |
minutes, seconds = divmod(remainder, 60) | |
# Format time left as a string | |
time_left_str = f"{days} days, {hours} hours, {minutes} minutes" | |
await message.reply_text(f"⚜️ ᴘʀᴇᴍɪᴜᴍ ᴜꜱᴇʀ ᴅᴀᴛᴀ :\n\n👤 ᴜꜱᴇʀ : {user.mention}\n⚡ ᴜꜱᴇʀ ɪᴅ : <code>{user_id}</code>\n⏰ ᴛɪᴍᴇ ʟᴇꜰᴛ : {time_left_str}\n⌛️ ᴇxᴘɪʀʏ ᴅᴀᴛᴇ : {expiry_str_in_ist}") | |
else: | |
await message.reply_text("ɴᴏ ᴀɴʏ ᴘʀᴇᴍɪᴜᴍ ᴅᴀᴛᴀ ᴏꜰ ᴛʜᴇ ᴡᴀꜱ ꜰᴏᴜɴᴅ ɪɴ ᴅᴀᴛᴀʙᴀꜱᴇ !") | |
else: | |
await message.reply_text("ᴜꜱᴀɢᴇ : /get_premium user_id") | |
async def give_premium_cmd_handler(client, message): | |
if len(message.command) == 4: | |
time_zone = datetime.datetime.now(pytz.timezone("Asia/Kolkata")) | |
current_time = time_zone.strftime("%d-%m-%Y\n⏱️ ᴊᴏɪɴɪɴɢ ᴛɪᴍᴇ : %I:%M:%S %p") | |
user_id = int(message.command[1]) # Convert the user_id to integer | |
user = await client.get_users(user_id) | |
time = message.command[2]+" "+message.command[3] | |
seconds = await get_seconds(time) | |
if seconds > 0: | |
expiry_time = datetime.datetime.now() + datetime.timedelta(seconds=seconds) | |
user_data = {"id": user_id, "expiry_time": expiry_time} # Using "id" instead of "user_id" | |
await db.update_user(user_data) # Use the update_user method to update or insert user data | |
data = await db.get_user(user_id) | |
expiry = data.get("expiry_time") | |
expiry_str_in_ist = expiry.astimezone(pytz.timezone("Asia/Kolkata")).strftime("%d-%m-%Y\n⏱️ ᴇxᴘɪʀʏ ᴛɪᴍᴇ : %I:%M:%S %p") | |
await message.reply_text(f"ᴘʀᴇᴍɪᴜᴍ ᴀᴅᴅᴇᴅ ꜱᴜᴄᴄᴇꜱꜱꜰᴜʟʟʏ ✅\n\n👤 ᴜꜱᴇʀ : {user.mention}\n⚡ ᴜꜱᴇʀ ɪᴅ : <code>{user_id}</code>\n⏰ ᴘʀᴇᴍɪᴜᴍ ᴀᴄᴄᴇꜱꜱ : <code>{time}</code>\n\n⏳ ᴊᴏɪɴɪɴɢ ᴅᴀᴛᴇ : {current_time}\n\n⌛️ ᴇxᴘɪʀʏ ᴅᴀᴛᴇ : {expiry_str_in_ist}", disable_web_page_preview=True) | |
await client.send_message( | |
chat_id=user_id, | |
text=f"👋 ʜᴇʏ {user.mention},\nᴛʜᴀɴᴋ ʏᴏᴜ ꜰᴏʀ ᴘᴜʀᴄʜᴀꜱɪɴɢ ᴘʀᴇᴍɪᴜᴍ.\nᴇɴᴊᴏʏ !! ✨🎉\n\n⏰ ᴘʀᴇᴍɪᴜᴍ ᴀᴄᴄᴇꜱꜱ : <code>{time}</code>\n⏳ ᴊᴏɪɴɪɴɢ ᴅᴀᴛᴇ : {current_time}\n\n⌛️ ᴇxᴘɪʀʏ ᴅᴀᴛᴇ : {expiry_str_in_ist}", disable_web_page_preview=True | |
) | |
await client.send_message(PREMIUM_LOGS, text=f"#Added_Premium\n\n👤 ᴜꜱᴇʀ : {user.mention}\n⚡ ᴜꜱᴇʀ ɪᴅ : <code>{user_id}</code>\n⏰ ᴘʀᴇᴍɪᴜᴍ ᴀᴄᴄᴇꜱꜱ : <code>{time}</code>\n\n⏳ ᴊᴏɪɴɪɴɢ ᴅᴀᴛᴇ : {current_time}\n\n⌛️ ᴇxᴘɪʀʏ ᴅᴀᴛᴇ : {expiry_str_in_ist}", disable_web_page_preview=True) | |
else: | |
await message.reply_text("Invalid time format. Please use '1 day for days', '1 hour for hours', or '1 min for minutes', or '1 month for months' or '1 year for year'") | |
else: | |
await message.reply_text("Usage : /add_premium user_id time (e.g., '1 day for days', '1 hour for hours', or '1 min for minutes', or '1 month for months' or '1 year for year')") | |
async def premium_user(client, message): | |
aa = await message.reply_text("<i>ꜰᴇᴛᴄʜɪɴɢ...</i>") | |
new = f"⚜️ ᴘʀᴇᴍɪᴜᴍ ᴜꜱᴇʀꜱ ʟɪꜱᴛ :\n\n" | |
user_count = 1 | |
users = await db.get_all_users() | |
async for user in users: | |
data = await db.get_user(user['id']) | |
if data and data.get("expiry_time"): | |
expiry = data.get("expiry_time") | |
expiry_ist = expiry.astimezone(pytz.timezone("Asia/Kolkata")) | |
expiry_str_in_ist = expiry.astimezone(pytz.timezone("Asia/Kolkata")).strftime("%d-%m-%Y\n⏱️ ᴇxᴘɪʀʏ ᴛɪᴍᴇ : %I:%M:%S %p") | |
current_time = datetime.datetime.now(pytz.timezone("Asia/Kolkata")) | |
time_left = expiry_ist - current_time | |
days = time_left.days | |
hours, remainder = divmod(time_left.seconds, 3600) | |
minutes, seconds = divmod(remainder, 60) | |
time_left_str = f"{days} days, {hours} hours, {minutes} minutes" | |
new += f"{user_count}. {(await client.get_users(user['id'])).mention}\n👤 ᴜꜱᴇʀ ɪᴅ : {user['id']}\n⏳ ᴇxᴘɪʀʏ ᴅᴀᴛᴇ : {expiry_str_in_ist}\n⏰ ᴛɪᴍᴇ ʟᴇꜰᴛ : {time_left_str}\n" | |
user_count += 1 | |
else: | |
pass | |
try: | |
await aa.edit_text(new) | |
except MessageTooLong: | |
with open('usersplan.txt', 'w+') as outfile: | |
outfile.write(new) | |
await message.reply_document('usersplan.txt', caption="Paid Users:") | |
async def plan(client, message): | |
user_id = message.from_user.id | |
users = message.from_user.mention | |
btn = [[ | |
InlineKeyboardButton("📲 ꜱᴇɴᴅ ᴘᴀʏᴍᴇɴᴛ ꜱᴄʀᴇᴇɴꜱʜᴏᴛ ʜᴇʀᴇ", user_id=int(767250672))],[InlineKeyboardButton("❌ ᴄʟᴏꜱᴇ ❌", callback_data="close_data") | |
]] | |
await message.reply_photo(photo="https://telegra.ph/file/734170f40b8169830d821.jpg", caption=script.PREMIUM_TEXT.format(message.from_user.mention), reply_markup=InlineKeyboardMarkup(btn)) | |
# SPECIAL THANKS TO [Rishikesh Sharma] @Rk_botowner FOR THESE AMAZING CODES | |
# SPECIAL THANKS TO @DeletedFromEarth FOR MODIFYING THESE AMAZING CODES | |