def _telegram_file(client, message): user_id = message.from_user.id sent_message = message.reply_text('🕵️**Checking File...**', quote=True) if message.document: file = message.document elif message.video: file = message.video elif message.audio: file = message.audio sent_message.edit( Messages.DOWNLOAD_TG_FILE.format(file.file_name, humanbytes(file.file_size), file.mime_type)) LOGGER.info(f'Download:{user_id}: {file.file_id}') try: file_path = message.download(file_name=DOWNLOAD_DIRECTORY) sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path, file.mime_type) sent_message.edit(msg) except RPCError: sent_message.edit(Messages.WENT_WRONG) LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path)
def clone(self, link): self.transferred_size = 0 try: file_id = self.getIdFromUrl(link) except (IndexError, KeyError): return Messages.INVALID_GDRIVE_URL try: meta = self.__service.files().get( supportsAllDrives=True, fileId=file_id, fields="name,id,mimeType,size").execute() if meta.get("mimeType") == self.__G_DRIVE_DIR_MIME_TYPE: dir_id = self.create_directory(meta.get('name')) result = self.cloneFolder(meta.get('name'), meta.get('name'), meta.get('id'), dir_id) return Messages.COPIED_SUCCESSFULLY.format( meta.get('name'), self.__G_DRIVE_DIR_BASE_DOWNLOAD_URL.format(dir_id), humanbytes(self.transferred_size)) else: file = self.copyFile(meta.get('id'), self.__parent_id) return Messages.COPIED_SUCCESSFULLY.format( file.get('name'), self.__G_DRIVE_BASE_DOWNLOAD_URL.format(file.get('id')), humanbytes(int(meta.get('size')))) except Exception as err: if isinstance(err, RetryError): LOGGER.info( f"Total Attempts: {err.last_attempt.attempt_number}") err = err.last_attempt.exception() err = str(err).replace('>', '').replace('<', '') LOGGER.error(err) return f"**ERROR:** ```{err}```"
def upload_file(self, file_path, mimeType=None): mime_type = mimeType if mimeType else guess_type(file_path)[0] mime_type = mime_type if mime_type else "text/plain" media_body = MediaFileUpload( file_path, mimetype=mime_type, chunksize=150*1024*1024, resumable=True ) filename = os.path.basename(file_path) filesize = humanbytes(os.path.getsize(file_path)) body = { "name": filename, "description": "Uploaded using @UploadGdriveBot", "mimeType": mime_type, } body["parents"] = [self.__parent_id] LOGGER.info(f'Upload: {file_path}') try: uploaded_file = self.__service.files().create(body=body, media_body=media_body, fields='id', supportsTeamDrives=True).execute() file_id = uploaded_file.get('id') return Messages.UPLOADED_SUCCESSFULLY.format(filename, self.__G_DRIVE_BASE_DOWNLOAD_URL.format(file_id), filesize) except HttpError as err: if err.resp.get('content-type', '').startswith('application/json'): reason = json.loads(err.content).get('error').get('errors')[0].get('reason') if reason == 'userRateLimitExceeded' or reason == 'dailyLimitExceeded': return Messages.RATE_LIMIT_EXCEEDED_MESSAGE else: return f"**ERROR:** {reason}" except Exception as e: return f"**ERROR:** ```{e}```"
def clone(self, link): self.transferred_size = 0 try: file_id = self.getIdFromUrl(link) except (IndexError, KeyError): return Messages.INVALID_GDRIVE_URL try: meta = self.__service.files().get( supportsAllDrives=True, fileId=file_id, fields="name,id,mimeType,size").execute() except HttpError as err: if err.resp.get('content-type', '').startswith('application/json'): reason = json.loads( err.content).get('error').get('errors')[0].get('reason') if 'notFound' in reason: return Messages.FILE_NOT_FOUND_MESSAGE.format(file_id) else: return f"**ERROR:** ```{str(err).replace('>', '').replace('<', '')}```" except Exception as e: return f"**ERROR:** ```{str(e).replace('>', '').replace('<', '')}```" if meta.get("mimeType") == self.__G_DRIVE_DIR_MIME_TYPE: dir_id = self.create_directory(meta.get('name')) try: result = self.cloneFolder(meta.get('name'), meta.get('name'), meta.get('id'), dir_id) return Messages.COPIED_SUCCESSFULLY.format( meta.get('name'), self.__G_DRIVE_DIR_BASE_DOWNLOAD_URL.format(dir_id), humanbytes(self.transferred_size)) except Exception as e: return f'**ERROR:** ```{e}```' else: try: file = self.copyFile(meta.get('id'), self.__parent_id) return Messages.COPIED_SUCCESSFULLY.format( file.get('name'), self.__G_DRIVE_BASE_DOWNLOAD_URL.format(file.get('id')), humanbytes(int(meta.get('size')))) except Exception as e: return f'**ERROR:** ```{e}```'
def _ytdl(client, message): user_id = message.from_user.id if len(message.command) > 1: sent_message = message.reply_text('🕵️**Checking Link...**', quote=True) link = message.command[1] LOGGER.info(f'YTDL:{user_id}: {link}') sent_message.edit(Messages.DOWNLOADING.format(link)) result, file_path = utube_dl(link) if result: sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path) else: sent_message.edit(Messages.DOWNLOAD_ERROR.format(file_path, link)) else: message.reply_text(Messages.PROVIDE_YTDL_LINK, quote=True)
def _download(client, message): user_id = message.from_user.id if not message.media: sent_message = message.reply_text('🕵️**Checking link...**', quote=True) if message.command: link = message.command[1] else: link = message.text if 'drive.google.com' in link: sent_message.edit(Messages.CLONING.format(link)) LOGGER.info(f'Copy:{user_id}: {link}') msg = GoogleDrive(user_id).clone(link) sent_message.edit(msg) else: if '|' in link: link, filename = link.split('|') link = link.strip() filename.strip() dl_path = os.path.join( f'{Config.DOWNLOAD_DIRECTORY}/{filename}') else: link = link.strip() filename = os.path.basename(link) dl_path = Config.DOWNLOAD_DIRECTORY LOGGER.info(f'Download:{user_id}: {link}') sent_message.edit(Messages.DOWNLOADING.format(link)) result, file_path = download_file(link, dl_path) if result == True: sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path) else: sent_message.edit( Messages.DOWNLOAD_ERROR.format(file_path, link))
def _download(client, message): user_id = message.from_user.id LOGGER.info(f'Download request from {user_id}') sent_message = message.reply_text('**Checking link...**', quote=True) if not message.media: if message.command: link = message.command[1] else: link = message.text if '|' in link: link, filename = link.split('|') link = link.strip() filename.strip() dl_path = os.path.join(f'{DOWNLOAD_DIRECTORY}/{filename}') else: link = link.strip() filename = os.path.basename(link) dl_path = os.path.join(f'{DOWNLOAD_DIRECTORY}/') sent_message.edit(Messages.DOWNLOADING.format(filename)) result, file_path = download_file(link, dl_path) if result == False: sent_message.edit(Messages.DOWNLOAD_ERROR.format(file_path, link)) return elif message.media: sent_message.edit(Messages.DOWNLOAD_TG_FILE) try: file_path = client.download_media(message) except FloodWait as e: sleep(e.x) except Exception as e: sent_message.edit(f'**ERROR:** ```{e}```') return sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) os.remove(file_path)
def _download(client, message): user_id = message.from_user.id if not message.media: sent_message = message.reply_text('🕵️**Checking link...**', quote=True) if message.command: link = message.command[1] else: link = message.text if 'drive.google.com' in link: sent_message.edit(Messages.CLONING.format(link)) LOGGER.info(f'Copy:{user_id}: {link}') msg = GoogleDrive(user_id).clone(link) sent_message.edit(msg) elif 'mediafire.com' in link: """ MediaFire """ if '|' in link: link, filename = link.split('|') link = link.strip() filename.strip() dl_path = os.path.join( f'{Config.DOWNLOAD_DIRECTORY}/{filename}') else: link = link.strip() filename = os.path.basename(link) dl_path = Config.DOWNLOAD_DIRECTORY try: link = re.findall(r'\bhttps?://.*mediafire\.com\S+', url)[0] except IndexError: return sent_message.edit( "No MediaFire links found\nMight Be File/Files Deleted. \nOpen The Link And Check" ) page = BeautifulSoup(requests.get(link).content, 'lxml') info = page.find('a', {'aria-label': 'Download file'}) link = info.get('href') sent_message.edit(Messages.DOWNLOADING.format(link)) result, file_path = download_file(link, dl_path) if result == True: sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) # LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path) else: sent_message.edit( Messages.DOWNLOAD_ERROR.format(file_path, link)) elif 'zippyshare.com' in link: """ ZippyShare """ if '|' in link: link, filename = link.split('|') link = link.strip() filename.strip() dl_path = os.path.join( f'{Config.DOWNLOAD_DIRECTORY}/{filename}') else: link = link.strip() filename = os.path.basename(link) dl_path = Config.DOWNLOAD_DIRECTORY try: link = re.findall(r'\bhttps?://.*zippyshare\.com\S+', url)[0] except IndexError: raise DirectDownloadLinkException("No Zippyshare links found") try: base_url = re.search('http.+.zippyshare.com', link).group() response = requests.get(link).content pages = BeautifulSoup(response, "lxml") try: js_script = pages.find("div", { "class": "center" }).find_all("script")[1] except IndexError: js_script = pages.find("div", { "class": "right" }).find_all("script")[0] js_content = re.findall(r'\.href.=."/(.*?)";', str(js_script)) js_content = 'var x = "/' + js_content[0] + '"' evaljs = EvalJs() setattr(evaljs, "x", None) evaljs.execute(js_content) js_content = getattr(evaljs, "x") link = base_url + js_content except IndexError: raise sent_message.edit("ERROR: Can't find download button") sent_message.edit(Messages.DOWNLOADING.format(link)) result, file_path = download_file(link, dl_path) if result == True: sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) # LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path) else: sent_message.edit( Messages.DOWNLOAD_ERROR.format(file_path, link)) elif 'anonfiles.com' in link: """ Anonfiles """ if '|' in link: link, filename = link.split('|') link = link.strip() filename.strip() dl_path = os.path.join( f'{Config.DOWNLOAD_DIRECTORY}/{filename}') else: link = link.strip() filename = os.path.basename(link) dl_path = Config.DOWNLOAD_DIRECTORY bypasser = lk21.Bypass() link = bypasser.bypass_anonfiles(link) sent_message.edit(Messages.DOWNLOADING.format(link)) result, file_path = download_file(link, dl_path) if result == True: sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) # LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path) else: sent_message.edit( Messages.DOWNLOAD_ERROR.format(file_path, link)) elif 'bayfiles.com' in link: """ Bayfiles """ if '|' in link: link, filename = link.split('|') link = link.strip() filename.strip() dl_path = os.path.join( f'{Config.DOWNLOAD_DIRECTORY}/{filename}') else: link = link.strip() filename = os.path.basename(link) dl_path = Config.DOWNLOAD_DIRECTORY bypasser = lk21.Bypass() link = bypasser.bypass_anonfiles(link) sent_message.edit(Messages.DOWNLOADING.format(link)) result, file_path = download_file(link, dl_path) if result == True: sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) # LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path) elif 'racaty.net' in link: """ Racaty """ if '|' in link: link, filename = link.split('|') link = link.strip() filename.strip() dl_path = os.path.join( f'{Config.DOWNLOAD_DIRECTORY}/{filename}') else: link = link.strip() filename = os.path.basename(link) dl_path = Config.DOWNLOAD_DIRECTORY dl_url = '' try: link = re.findall(r'\bhttps?://.*racaty\.net\S+', url)[0] except IndexError: raise ("No Racaty links found\n") scraper = cfscrape.create_scraper() r = scraper.get(url) soup = BeautifulSoup(r.text, "lxml") op = soup.find("input", {"name": "op"})["value"] ids = soup.find("input", {"name": "id"})["value"] rpost = scraper.post(url, data={"op": op, "id": ids}) rsoup = BeautifulSoup(rpost.text, "lxml") dl_url = rsoup.find("a", {"id": "uniqueExpirylink"})["href"].replace( " ", "%20") link = dl_url result, file_path = download_file(link, dl_path) if result == True: sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path) else: sent_message.edit( Messages.DOWNLOAD_ERROR.format(file_path, link)) # elif '1fichier.com' in link: elif 'ouo.press' in link or 'ouo.io' in link: """ Ouo Bypass """ bypasser = lk21.Bypass() link = bypasser.bypass_ouo(link) sent_message.edit( f"Bypassed The Ouo Link That U Provided.\n\nLink = `{link}`") # elif is_gdtot_link(link): else: if '|' in link: link, filename = link.split('|') link = link.strip() filename.strip() dl_path = os.path.join( f'{Config.DOWNLOAD_DIRECTORY}/{filename}') else: link = link.strip() filename = os.path.basename(link) dl_path = Config.DOWNLOAD_DIRECTORY LOGGER.info(f'Download:{user_id}: {link}') sent_message.edit(Messages.DOWNLOADING.format(link)) result, file_path = download_file(link, dl_path) if result == True: sent_message.edit( Messages.DOWNLOADED_SUCCESSFULLY.format( os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path) else: sent_message.edit( Messages.DOWNLOAD_ERROR.format(file_path, link))
sent_message.edit(msg) else: if '|' in link: link, filename = link.split('|') link = link.strip() filename.strip() dl_path = os.path.join(f'{DOWNLOAD_DIRECTORY}/{filename}') else: link = link.strip() filename = os.path.basename(link) dl_path = DOWNLOAD_DIRECTORY LOGGER.info(f'Download:{user_id}: {link}') sent_message.edit(Messages.DOWNLOADING.format(link)) result, file_path = download_file(link, dl_path) if result == True: sent_message.edit(Messages.DOWNLOADED_SUCCESSFULLY.format(os.path.basename(file_path), humanbytes(os.path.getsize(file_path)))) msg = GoogleDrive(user_id).upload_file(file_path) sent_message.edit(msg) LOGGER.info(f'Deleteing: {file_path}') os.remove(file_path) else: sent_message.edit(Messages.DOWNLOAD_ERROR.format(file_path, link)) @Client.on_message(filters.private & filters.incoming & (filters.document | filters.audio | filters.video) & CustomFilters.auth_users) def _telegram_file(client, message): user_id = message.from_user.id sent_message = message.reply_text('🕵️**Checking File...**', quote=True) if message.document: file = message.document elif message.video: