Token Sys

Anonymous
plain_text
08/28/2023 9:58 AM
4.2 KB
36
Indexable
from asyncio import sleep
from datetime import datetime, timedelta, timezone
import os
from os import environ
from time import time
from re import match as re_match
from uuid import uuid4
from button_build import ButtonMaker
from message_utils import sendMessage, get_readable_time, deleteMessage
from pyrogram import Client, filters
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from pyrogram.handlers import MessageHandler, CallbackQueryHandler
from pyrogram.filters import command
from pyrogram.handlers import MessageHandler
from multishort import short_url
from message_utils import LOGGER

bot_name = environ.get('bot_name', '')
TOKEN_TIMEOUT = environ.get('TOKEN_TIMEOUT', '60')


config_dict = {"TOKEN_TIMEOUT": TOKEN_TIMEOUT}
user_data = {}


# Create a new Pyrogram client
SESSION = "TOKENBOT"  # Replace with your desired session name
API_ID = ""          # Replace with your actual API ID
API_HASH = ""      # Replace with your actual API hash
BOT_TOKEN = ""    # Replace with your actual bot token

# Create a new Pyrogram client
app = Client(
    name=SESSION,
    api_id=API_ID,
    api_hash=API_HASH,
    bot_token=BOT_TOKEN
)

@app.on_message(filters.command("start") & filters.private)
async def start(_, message):
    if len(message.command) > 1:
        userid = message.from_user.id
        input_token = message.command[1]
        if userid not in user_data:
            return await sendMessage(message, 'Who are you?')
        data = user_data[userid]
        if 'token' not in data or data['token'] != input_token:
            return await sendMessage(message, 'This is a token already expired')
        data['token'] = str(uuid4())
        data['time'] = time()
        user_data[userid].update(data)
        return await sendMessage(message, 'Token refreshed successfully!')
    else:
        start_string = '🌹 Welcome To One Of A Modified Anasty Mirror Bot\n' \
            'This bot can Mirror all your links To Google Drive!\n' \
            '👨🏽‍💻 Powered By: @JMDKH_Team'
    await sendMessage(message, start_string)

def checking_access(user_id, button=None):
    if not config_dict['TOKEN_TIMEOUT']:
        return None, button
    user_data.setdefault(user_id, {})
    data = user_data[user_id]
    expire = data.get('time')
    isExpired = (expire is None or expire is not None and (
        time() - expire) > config_dict['TOKEN_TIMEOUT'])
    if isExpired:
        token = data['token'] if expire is None and 'token' in data else str(
            uuid4())
        if expire is not None:
            del data['time']
        data['token'] = token
        user_data[user_id].update(data)
        if button is None:
            button = ButtonMaker()
        button.ubutton('Refresh Token', short_url(
            f'https://t.me/{bot_name}?start={token}'))
        return 'Token is expired, refresh your token and try again.', button
    return None, button


async def main():
# Add handlers to the client
    app.add_handler(MessageHandler(
        start, filters=filters.command("start") & filters.private))

# Start the client
if __name__ == "__main__":
    app.run()
Editor is loading...