from ..helper.ext_utils.bot_utils import sync_to_async, new_task from ..helper.ext_utils.links_utils import is_gdrive_link from ..helper.ext_utils.status_utils import get_readable_file_size from ..helper.mirror_leech_utils.gdrive_utils.count import GoogleDriveCount from ..helper.telegram_helper.message_utils import delete_message, send_message @new_task async def count_node(_, message): args = message.text.split() user = message.from_user or message.sender_chat if username := user.username: tag = f"@{username}" else: tag = message.from_user.mention link = args[1] if len(args) > 1 else "" if len(link) == 0 and (reply_to := message.reply_to_message): link = reply_to.text.split(maxsplit=1)[0].strip() if is_gdrive_link(link): msg = await send_message(message, f"Counting: {link}") name, mime_type, size, files, folders = await sync_to_async( GoogleDriveCount().count, link, user.id ) if mime_type is None: await send_message(message, name) return await delete_message(msg) msg = f"Name: {name}" msg += f"\n\nSize: {get_readable_file_size(size)}" msg += f"\n\nType: {mime_type}" if mime_type == "Folder": msg += f"\nSubFolders: {folders}" msg += f"\nFiles: {files}" msg += f"\n\ncc: {tag}" else: msg = ( "Send Gdrive link along with command or by replying to the link by command" ) await send_message(message, msg)