def unauthorize(update, context): reply_message = None message_ = None reply_message = update.message.reply_to_message message_ = update.message.text.split(' ') if len(message_) == 2: chat_id = int(message_[1]) if chat_id in AUTHORIZED_CHATS: msg = DbManger().db_unauth(chat_id) else: msg = '❎ User already unauthorized' else: if reply_message is None: # Trying to unauthorize a chat chat_id = update.effective_chat.id if chat_id in AUTHORIZED_CHATS: msg = DbManger().db_unauth(chat_id) else: msg = '❎ Already unauthorized chat' else: # Trying to authorize someone in specific user_id = reply_message.from_user.id if user_id in AUTHORIZED_CHATS: msg = DbManger().db_unauth(user_id) else: msg = '❎ User already unauthorized' sendMessage(msg, context.bot, update)
def sendAuthChats(update, context): user = sudo = '' user += '\n'.join(str(id) for id in AUTHORIZED_CHATS) sudo += '\n'.join(str(id) for id in SUDO_USERS) sendMessage( f'<b><u>Authorized Chats</u></b>\n{user}\n<b><u>Sudo Users</u></b>\n{sudo}', context.bot, update)
def usage(update, context): heroku_api = "https://api.heroku.com" if HEROKU_API_KEY is not None and HEROKU_APP_NAME is not None: Heroku = heroku3.from_key(HEROKU_API_KEY) app = Heroku.app(HEROKU_APP_NAME) else: sendMessage( "Please insert your HEROKU_APP_NAME and HEROKU_API_KEY in Vars", context.bot, update) useragent = ("Mozilla/5.0 (Linux; Android 10; SM-G975F) " "AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/81.0.4044.117 Mobile Safari/537.36") user_id = Heroku.account().id headers = { "User-Agent": useragent, "Authorization": f"Bearer {HEROKU_API_KEY}", "Accept": "application/vnd.heroku+json; version=3.account-quotas", } path = "/accounts/" + user_id + "/actions/get-quota" session = requests.Session() with session as ses: with ses.get(heroku_api + path, headers=headers) as r: result = r.json() """Account Quota.""" quota = result["account_quota"] quota_used = result["quota_used"] quota_remain = quota - quota_used quota_percent = math.floor(quota_remain / quota * 100) minutes_remain = quota_remain / 60 hours = math.floor(minutes_remain / 60) minutes = math.floor(minutes_remain % 60) """App Quota.""" Apps = result["apps"] for apps in Apps: if apps.get("app_uuid") == app.id: AppQuotaUsed = apps.get("quota_used") / 60 AppPercent = math.floor( apps.get("quota_used") * 100 / quota) break else: AppQuotaUsed = 0 AppPercent = 0 AppHours = math.floor(AppQuotaUsed / 60) AppMinutes = math.floor(AppQuotaUsed % 60) sendMessage( f"<b>📈 Dyno Usage for</b> <code>{app.name}</code> :\n" f"• <code>{AppHours}</code> <b>Hours and</b> <code>{AppMinutes}</code> <b>Minutes - {AppPercent}%</b>\n\n" "<b>⌛ Dyno Remaining this month :</b>\n" f"• <code>{hours}</code> <b>Hours and</b> <code>{minutes}</code> <b>Minutes - {quota_percent}%</b>", context.bot, update) return True
def list_drive(update, context): try: search = update.message.text.split(' ', maxsplit=1)[1] LOGGER.info(f"Searching: {search}") reply = sendMessage('Searching..... Please wait!', context.bot, update) gdrive = GoogleDriveHelper(None) msg, button = gdrive.drive_list(search) if button: editMessage(msg, reply, button) else: editMessage('No result found', reply, button) except IndexError: sendMessage('Send a search key along with command', context.bot, update)
def _watch(bot: Bot, update, isTar=False): mssg = update.message.text message_args = mssg.split(' ') name_args = mssg.split('|') try: link = message_args[1] except IndexError: msg = f"/{BotCommands.WatchCommand} [yt_dl supported link] [quality] |[CustomName] to mirror with youtube_dl.\n\n" msg += "<b>Note :- Quality and custom name are optional</b>\n\nExample of quality :- audio, 144, 240, 360, 480, 720, 1080, 2160." msg += "\n\nIf you want to use custom filename, plz enter it after |" msg += f"\n\nExample :-\n<code>/{BotCommands.WatchCommand} https://youtu.be/Pk_TthHfLeE 720 |Slam</code>\n\n" msg += "This file will be downloaded in 720p quality and it's name will be <b>Slam</b>" sendMessage(msg, bot, update) return try: if "|" in mssg: mssg = mssg.split("|") qual = mssg[0].split(" ")[2] if qual == "": raise IndexError else: qual = message_args[2] if qual != "audio": qual = f'bestvideo[height<={qual}]+bestaudio/best[height<={qual}]' except IndexError: qual = "bestvideo+bestaudio/best" try: name = name_args[1] except IndexError: name = "" reply_to = update.message.reply_to_message if reply_to is not None: tag = reply_to.from_user.username else: tag = None pswd = "" listener = MirrorListener(bot, update, pswd, isTar, tag) ydl = YoutubeDLHelper(listener) threading.Thread(target=ydl.add_download, args=(link, f'{DOWNLOAD_DIR}{listener.uid}', qual, name)).start() sendStatusMessage(update, bot) if len(Interval) == 0: Interval.append( setInterval(DOWNLOAD_STATUS_UPDATE_INTERVAL, update_all_messages))
def removeSudo(update, context): reply_message = None message_ = None reply_message = update.message.reply_to_message message_ = update.message.text.split(' ') if len(message_) == 2: chat_id = int(message_[1]) if chat_id in SUDO_USERS: msg = DbManger().db_rmsudo(chat_id) else: msg = '🙅♂️ Not a Sudo User' else: if reply_message is None: msg = "Give ID or Reply To message of whom you want to remove from Sudo" else: user_id = reply_message.from_user.id if user_id in SUDO_USERS: msg = DbManger().db_rmsudo(user_id) else: msg = '🙅♂️ Not a Sudo User' sendMessage(msg, context.bot, update)
def addSudo(update, context): reply_message = None message_ = None reply_message = update.message.reply_to_message message_ = update.message.text.split(' ') if len(message_) == 2: chat_id = int(message_[1]) if chat_id not in SUDO_USERS: msg = DbManger().db_addsudo(chat_id) else: msg = '👨🦱 Already Sudo User' else: if reply_message is None: msg = "Give ID or Reply To message of whom you want to Promote" else: # Trying to authorize someone in specific user_id = reply_message.from_user.id if user_id not in SUDO_USERS: msg = DbManger().db_addsudo(user_id) else: msg = '👨🦱 Already Sudo User' sendMessage(msg, context.bot, update)
def authorize(update, context): reply_message = update.message.reply_to_message msg = '' with open('authorized_chats.txt', 'a') as file: if reply_message is None: # Trying to authorize a chat chat_id = update.effective_chat.id if chat_id not in AUTHORIZED_CHATS: file.write(f'{chat_id}\n') AUTHORIZED_CHATS.add(chat_id) msg = 'Chat authorized' else: msg = 'Already authorized chat' else: # Trying to authorize someone in specific user_id = reply_message.from_user.id if user_id not in AUTHORIZED_CHATS: file.write(f'{user_id}\n') AUTHORIZED_CHATS.add(user_id) msg = '✅ Person Authorized to use the bot!' else: msg = '✅ Person already authorized' sendMessage(msg, context.bot, update)
def unauthorize(update, context): reply_message = update.message.reply_to_message if reply_message is None: # Trying to unauthorize a chat chat_id = update.effective_chat.id if chat_id in AUTHORIZED_CHATS: AUTHORIZED_CHATS.remove(chat_id) msg = '❎ Chat unauthorized' else: msg = '❎ Already unauthorized chat' else: # Trying to authorize someone in specific user_id = reply_message.from_user.id if user_id in AUTHORIZED_CHATS: AUTHORIZED_CHATS.remove(user_id) msg = '❎ Person unauthorized to use the bot!' else: msg = '❎ Person already unauthorized!' with open('authorized_chats.txt', 'a') as file: file.truncate(0) for i in AUTHORIZED_CHATS: file.write(f'{i}\n') sendMessage(msg, context.bot, update)
def deletefile(update, context): msg_args = update.message.text.split(None, 1) msg = '' try: link = msg_args[1] LOGGER.info(msg_args[1]) except IndexError: msg = 'Send a link along with command' if msg == '': drive = gdriveTools.GoogleDriveHelper() msg = drive.deletefile(link) LOGGER.info(f"DeleteFileCmd : {msg}") reply_message = sendMessage(msg, context.bot, update) threading.Thread(target=auto_delete_message, args=(context.bot, update.message, reply_message)).start()