Example #1
0
 def onUploadComplete(self, link: str, size):
     with download_dict_lock:
         msg = f'<b>๐Ÿ—‚ ๐—™๐—ถ๐—น๐—ฒ๐—ก๐—ฎ๐—บ๐—ฒ : </b><code>{download_dict[self.uid].name()}</code>\n<b>๐Ÿ“ฆ ๐“๐จ๐ญ๐š๐ฅ ๐’๐ข๐ณ๐ž : </b><code>{size}</code>\n' \
               f' \n' \
               f'๐Ÿ”…MXT MIRROR ZonE\n' \
               f' \n' \
               f'๐Ÿ”…๐™‚๐™ง๐™ค๐™ช๐™ฅ : @Mxtmirrorgroup\n'
         buttons = button_build.ButtonMaker()
         if SHORTENER is not None and SHORTENER_API is not None:
             surl = requests.get(
                 f'https://{SHORTENER}/api?api={SHORTENER_API}&url={link}&format=text'
             ).text
             buttons.buildbutton("๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚", surl)
         else:
             buttons.buildbutton("๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚", link)
         LOGGER.info(f'Done Uploading {download_dict[self.uid].name()}')
         if INDEX_URL is not None:
             url_path = requests.utils.quote(
                 f'{download_dict[self.uid].name()}')
             share_url = f'{INDEX_URL}/{url_path}'
             if os.path.isdir(
                     f'{DOWNLOAD_DIR}/{self.uid}/{download_dict[self.uid].name()}'
             ):
                 share_url += '/'
             if SHORTENER is not None and SHORTENER_API is not None:
                 siurl = requests.get(
                     f'https://{SHORTENER}/api?api={SHORTENER_API}&url={share_url}&format=text'
                 ).text
                 buttons.buildbutton("๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€", siurl)
             else:
                 buttons.buildbutton("๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€", share_url)
         if BUTTON_THREE_NAME is not None and BUTTON_THREE_URL is not None:
             buttons.buildbutton(f"{BUTTON_THREE_NAME}",
                                 f"{BUTTON_THREE_URL}")
         if BUTTON_FOUR_NAME is not None and BUTTON_FOUR_URL is not None:
             buttons.buildbutton(f"{BUTTON_FOUR_NAME}",
                                 f"{BUTTON_FOUR_URL}")
         if BUTTON_FIVE_NAME is not None and BUTTON_FIVE_URL is not None:
             buttons.buildbutton(f"{BUTTON_FIVE_NAME}",
                                 f"{BUTTON_FIVE_URL}")
         if self.message.from_user.username:
             uname = f"@{self.message.from_user.username}"
         else:
             uname = f'<a href="tg://user?id={self.message.from_user.id}">{self.message.from_user.first_name}</a>'
         if uname is not None:
             msg += f'\n\n<b>๐Ÿ‘ค ๐—จ๐—ฝ๐—น๐—ผ๐—ฎ๐—ฑ๐—ฒ๐—ฟ : ๐Ÿ‘‰</b> {uname}\n\nโ–ซ๏ธ#Uploaded To Team Drive โœ“ \n\n๐Ÿšซ ๐˜ฟ๐™ค ๐™‰๐™ค๐™ฉ ๐™Ž๐™๐™–๐™ง๐™š ๐™„๐™ฃ๐™™๐™š๐™ญ ๐™‡๐™ž๐™ฃ๐™  \n\nโœ… ๐—ฃ๐—ผ๐˜„๐—ฒ๐—ฟ๐—ฒ๐—ฑ ๐—•๐˜† : <b>@ZEUTS</b>'
         try:
             fs_utils.clean_download(download_dict[self.uid].path())
         except FileNotFoundError:
             pass
         del download_dict[self.uid]
         count = len(download_dict)
     sendMarkup(msg, self.bot, self.update,
                InlineKeyboardMarkup(buttons.build_menu(2)))
     if count == 0:
         self.clean()
     else:
         update_all_messages()
Example #2
0
 def onUploadComplete(self, link: str, size):
     with download_dict_lock:
         msg = f'<b>๐Ÿ—‚ ๆ–‡ไปถๅ็งฐ : </b><code>{download_dict[self.uid].name()}</code>\n<b>๐Ÿ“ฆ ๆ€ป่ฎกๅฎน้‡ : </b><code>{size}</code>\n' \
               f' \n' \
               f'๐Ÿ”…่ฏถ๏ผŒ่ตท้ฃž๏ผ\n' \
               f' \n' \
               f'๐Ÿ”…ๅฐฑๆ˜ฏ้ฃž๏ผ\n'
         buttons = button_build.ButtonMaker()
         if SHORTENER is not None and SHORTENER_API is not None:
             surl = requests.get(
                 f'https://{SHORTENER}/api?api={SHORTENER_API}&url={link}&format=text'
             ).text
             buttons.buildbutton("๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ้“พๆŽฅ ๐Ÿ—‚", surl)
         else:
             buttons.buildbutton("๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ้“พๆŽฅ ๐Ÿ—‚", link)
         LOGGER.info(f'Done Uploading {download_dict[self.uid].name()}')
         if INDEX_URL is not None:
             url_path = requests.utils.quote(
                 f'{download_dict[self.uid].name()}')
             share_url = f'{INDEX_URL}/{url_path}'
             if os.path.isdir(
                     f'{DOWNLOAD_DIR}/{self.uid}/{download_dict[self.uid].name()}'
             ):
                 share_url += '/'
             if SHORTENER is not None and SHORTENER_API is not None:
                 siurl = requests.get(
                     f'https://{SHORTENER}/api?api={SHORTENER_API}&url={share_url}&format=text'
                 ).text
                 buttons.buildbutton("๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ้“พๆŽฅ ๐Ÿš€", siurl)
             else:
                 buttons.buildbutton("๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ้“พๆŽฅ ๐Ÿš€", share_url)
         if BUTTON_THREE_NAME is not None and BUTTON_THREE_URL is not None:
             buttons.buildbutton(f"{BUTTON_THREE_NAME}",
                                 f"{BUTTON_THREE_URL}")
         if BUTTON_FOUR_NAME is not None and BUTTON_FOUR_URL is not None:
             buttons.buildbutton(f"{BUTTON_FOUR_NAME}",
                                 f"{BUTTON_FOUR_URL}")
         if BUTTON_FIVE_NAME is not None and BUTTON_FIVE_URL is not None:
             buttons.buildbutton(f"{BUTTON_FIVE_NAME}",
                                 f"{BUTTON_FIVE_URL}")
         if self.message.from_user.username:
             uname = f"@{self.message.from_user.username}"
         else:
             uname = f'<a href="tg://user?id={self.message.from_user.id}">{self.message.from_user.first_name}</a>'
         if uname is not None:
             msg += f'\n\n<b>๐Ÿ‘ค ไธŠไผ ่€… : ๐Ÿ‘‰</b> {uname}\n\nโ–ซ๏ธ#ไธŠไผ ๅˆฐๅ›ข้˜Ÿ็›˜ โœ“ \n\n๐Ÿšซ ไธๅˆ†ไบซ ๐™„๐™ฃ๐™™๐™š๐™ญ ้“พๆŽฅ \n\nโœ…ๆŠ€ๆœฏๆ”ฏๆŒ  : <b>@wawawame</b>'
         try:
             fs_utils.clean_download(download_dict[self.uid].path())
         except FileNotFoundError:
             pass
         del download_dict[self.uid]
         count = len(download_dict)
     sendMarkup(msg, self.bot, self.update,
                InlineKeyboardMarkup(buttons.build_menu(2)))
     if count == 0:
         self.clean()
     else:
         update_all_messages()
Example #3
0
 def onUploadComplete(self, link: str, size):
     with download_dict_lock:
         msg = f'<b>๐Ÿ—‚ ๐—™๐—ถ๐—น๐—ฒ๐—ก๐—ฎ๐—บ๐—ฒ : </b><code>{download_dict[self.uid].name()}</code>\n<b>๐“ฃ๐“ธ๐“ฝ๐“ช๐“ต ๐“ข๐“ฒ๐”ƒ๐“ฎ : </b><code>{size}</code>\n' \
               f' \n' \
               f'โ–€โ–„โ–€โ–„โ–€โ–„ ๐“‚ฯ‡โ“ฃ ็ˆช๐•€๐•ฃัแป–ล• ๐™ฯƒฮท๏ฝ… โ–„โ–€โ–„โ–€โ–„โ–€\n' \
               f' \n' \
               f'Group : @Zeuts\n'
         buttons = button_build.ButtonMaker()
         if SHORTENER is not None and SHORTENER_API is not None:
             surl = requests.get(f'https://{SHORTENER}/api?api={SHORTENER_API}&url={link}&format=text').text
             buttons.buildbutton("๐•ฏ๐–—๐–Ž๐–›๐–Š ๐•ท๐–Ž๐–“๐–", surl)
         else:
             buttons.buildbutton("๐•ฏ๐–—๐–Ž๐–›๐–Š ๐•ท๐–Ž๐–“๐–", link)
         LOGGER.info(f'Done Uploading {download_dict[self.uid].name()}')
         if INDEX_URL is not None:
             url_path = requests.utils.quote(f'{download_dict[self.uid].name()}')
             share_url = f'{INDEX_URL}/{url_path}'
             if os.path.isdir(f'{DOWNLOAD_DIR}/{self.uid}/{download_dict[self.uid].name()}'):
                 share_url += '/'
             if SHORTENER is not None and SHORTENER_API is not None:
                 siurl = requests.get(f'https://{SHORTENER}/api?api={SHORTENER_API}&url={share_url}&format=text').text
                 buttons.buildbutton("๐“ฒ๐“ท๐“ญ๐“ฎ๐” ๐“ต๐“ฒ๐“ท๐“ด", siurl)
             else:
                 buttons.buildbutton("๐“ฒ๐“ท๐“ญ๐“ฎ๐” ๐“ต๐“ฒ๐“ท๐“ด", share_url)
         if BUTTON_THREE_NAME is not None and BUTTON_THREE_URL is not None:
             buttons.buildbutton(f"{BUTTON_THREE_NAME}", f"{BUTTON_THREE_URL}")
         if BUTTON_FOUR_NAME is not None and BUTTON_FOUR_URL is not None:
             buttons.buildbutton(f"{BUTTON_FOUR_NAME}", f"{BUTTON_FOUR_URL}")
         if BUTTON_FIVE_NAME is not None and BUTTON_FIVE_URL is not None:
             buttons.buildbutton(f"{BUTTON_FIVE_NAME}", f"{BUTTON_FIVE_URL}")
         if self.message.from_user.username:
             uname = f"@{self.message.from_user.username}"
         else:
             uname = f'<a href="tg://user?id={self.message.from_user.id}">{self.message.from_user.first_name}</a>'
         if uname is not None:
             msg += f'\n\n<b> ๐–€๐–•๐–‘๐–”๐–†๐–‰๐–Š๐–— </b> {uname}\n\nโ–ซ๏ธ ๐–€๐–•๐–‘๐–”๐–†๐–‰๐–Š๐–‰ โœ“ \n\n ๐““๐“ธ๐“ท'๐“ฝ ๐“ข๐“ฑ๐“ช๐“ป๐“ฎ ๐“›๐“ฒ๐“ท๐“ด \n\nโœ… ๐—ฃ๐—ผ๐˜„๐—ฒ๐—ฟ๐—ฒ๐—ฑ ๐—•๐˜† : <b@zeuts</b>'
         try:
             fs_utils.clean_download(download_dict[self.uid].path())
         except FileNotFoundError:
             pass
         del download_dict[self.uid]
         count = len(download_dict)
     sendMarkup(msg, self.bot, self.update, InlineKeyboardMarkup(buttons.build_menu(2)))
     if count == 0:
         self.clean()
     else:
         update_all_messages()
    def drive_list(self, fileName):
        msg = ""
        fileName = self.escapes(str(fileName))
        # Create Search Query for API request.
        query = f"'{parent_id}' in parents and (name contains '{fileName}')"
        response = self.__service.files().list(
            supportsTeamDrives=True,
            includeTeamDriveItems=True,
            q=query,
            spaces='drive',
            pageSize=200,
            fields='files(id, name, mimeType, size)',
            orderBy='modifiedTime desc').execute()

        content_count = 0
        if response["files"]:
            msg += f'<h4>Results : {fileName}</h4><br><br>'

            for file in response.get('files', []):
                if file.get(
                        'mimeType'
                ) == "application/vnd.google-apps.folder":  # Detect Whether Current Entity is a Folder or File.
                    furl = f"https://drive.google.com/drive/folders/{file.get('id')}"
                    msg += f"โ<code>{file.get('name')}<br>(folder๐Ÿ“)</code><br>"
                    if SHORTENER is not None and SHORTENER_API is not None:
                        sfurl = requests.get(
                            f'https://{SHORTENER}/api?api={SHORTENER_API}&url={furl}&format=text'
                        ).text
                        msg += f"<b><a href={sfurl}>๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚</a></b>"
                    else:
                        msg += f"<b><a href={furl}>๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚</a></b>"
                    if INDEX_URL is not None:
                        url_path = requests.utils.quote(f'{file.get("name")}')
                        url = f'{INDEX_URL}/{url_path}/'
                        if SHORTENER is not None and SHORTENER_API is not None:
                            siurl = requests.get(
                                f'https://{SHORTENER}/api?api={SHORTENER_API}&url={url}&format=text'
                            ).text
                            msg += f' <b>| <a href="{siurl}">๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€</a></b>'
                        else:
                            msg += f' <b>| <a href="{url}">๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€</a></b>'
                elif file.get(
                        'mimeType') == 'application/vnd.google-apps.shortcut':
                    msg += f"โ<a href='https://drive.google.com/drive/folders/{file.get('id')}'>{file.get('name')}" \
                        f"</a> (shortcut)"
                    # Excluded index link as indexes cant download or open these shortcuts
                else:
                    furl = f"https://drive.google.com/uc?id={file.get('id')}&export=download"
                    msg += f"โ<code>{file.get('name')}<br>({get_readable_file_size(int(file.get('size')))})๐Ÿ“„</code><br>"
                    if SHORTENER is not None and SHORTENER_API is not None:
                        sfurl = requests.get(
                            f'https://{SHORTENER}/api?api={SHORTENER_API}&url={furl}&format=text'
                        ).text
                        msg += f"<b><a href={sfurl}>๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚</a></b>"
                    else:
                        msg += f"<b><a href={furl}>๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚</a></b>"
                    if INDEX_URL is not None:
                        url_path = requests.utils.quote(f'{file.get("name")}')
                        url = f'{INDEX_URL}/{url_path}'
                        if SHORTENER is not None and SHORTENER_API is not None:
                            siurl = requests.get(
                                f'https://{SHORTENER}/api?api={SHORTENER_API}&url={url}&format=text'
                            ).text
                            msg += f' <b>| <a href="{siurl}">๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€</a></b>'
                        else:
                            msg += f' <b>| <a href="{url}">๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€</a></b>'
                msg += '<br><br>'
                content_count += 1
                if content_count == TELEGRAPHLIMIT:
                    self.telegraph_content.append(msg)
                    msg = ""
                    content_count = 0

            if msg != '':
                self.telegraph_content.append(msg)

            if len(self.telegraph_content) == 0:
                return "No Result Found :(", None

            for content in self.telegraph_content:
                self.path.append(
                    Telegraph(access_token=TELEGRAPH_TOKEN).create_page(
                        title='๐—ฃ๐—ฅ๐—œ๐—œ๐—œ๐—œ๐—ฌ๐—ข ๐— ๐—œ๐—ฅ๐—ฅ๐—ข๐—ฅ ๐—ญ๐—ข๐—ก๐—˜',
                        author_name='๐Ÿ‘ฒ ๐—จ๐—ฝ๐—น๐—ผ๐—ฎ๐—ฑ ๐—•๐˜†',
                        author_url='https://t.me/PriiiiyoBOTs',
                        html_content=content)['path'])

            self.num_of_path = len(self.path)
            if self.num_of_path > 1:
                self.edit_telegraph()

            msg = f"<b>๐Ÿ”Ž Search Results For <i>{fileName}</i></b> \n<b>๐Ÿ“š Found {len(response['files'])} results</b>"
            buttons = button_build.ButtonMaker()
            buttons.buildbutton("๐Ÿ”Ž Click HERE ๐Ÿ”Ž",
                                f"https://telegra.ph/{self.path[0]}")

            return msg, InlineKeyboardMarkup(buttons.build_menu(1))

        else:
            return '', ''
 def clone(self, link):
     self.transferred_size = 0
     try:
         file_id = self.getIdFromUrl(link)
     except (KeyError, IndexError):
         msg = "Google drive ID could not be found in the provided link"
         return msg, ""
     msg = ""
     LOGGER.info(f"File ID: {file_id}")
     try:
         meta = self.getFileMetadata(file_id)
         if meta.get("mimeType") == self.__G_DRIVE_DIR_MIME_TYPE:
             dir_id = self.create_directory(meta.get('name'), parent_id)
             result = self.cloneFolder(meta.get('name'), meta.get('name'),
                                       meta.get('id'), dir_id)
             msg += f'<b>๐Ÿ—‚ ๐—™๐—ถ๐—น๐—ฒ๐—ก๐—ฎ๐—บ๐—ฒ : </b><code>{meta.get("name")}</code>\n<b>Size : </b><code>{get_readable_file_size(self.transferred_size)}<code>'
             durl = self.__G_DRIVE_DIR_BASE_DOWNLOAD_URL.format(dir_id)
             buttons = button_build.ButtonMaker()
             if SHORTENER is not None and SHORTENER_API is not None:
                 surl = requests.get(
                     f'https://{SHORTENER}/api?api={SHORTENER_API}&url={durl}&format=text'
                 ).text
                 buttons.buildbutton("๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚", surl)
             else:
                 buttons.buildbutton("๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚", durl)
             if INDEX_URL is not None:
                 url_path = requests.utils.quote(f'{meta.get("name")}')
                 url = f'{INDEX_URL}/{url_path}/'
                 if SHORTENER is not None and SHORTENER_API is not None:
                     siurl = requests.get(
                         f'https://{SHORTENER}/api?api={SHORTENER_API}&url={url}&format=text'
                     ).text
                     buttons.buildbutton("๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€", siurl)
                 else:
                     buttons.buildbutton("๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€", url)
             if BUTTON_THREE_NAME is not None and BUTTON_THREE_URL is not None:
                 buttons.buildbutton(f"{BUTTON_THREE_NAME}",
                                     f"{BUTTON_THREE_URL}")
             if BUTTON_FOUR_NAME is not None and BUTTON_FOUR_URL is not None:
                 buttons.buildbutton(f"{BUTTON_FOUR_NAME}",
                                     f"{BUTTON_FOUR_URL}")
             if BUTTON_FIVE_NAME is not None and BUTTON_FIVE_URL is not None:
                 buttons.buildbutton(f"{BUTTON_FIVE_NAME}",
                                     f"{BUTTON_FIVE_URL}")
         else:
             file = self.copyFile(meta.get('id'), parent_id)
             msg += f'<b>๐Ÿ—‚ ๐—™๐—ถ๐—น๐—ฒ๐—ก๐—ฎ๐—บ๐—ฒ : </b><code>{file.get("name")}</code>'
             durl = self.__G_DRIVE_BASE_DOWNLOAD_URL.format(file.get("id"))
             buttons = button_build.ButtonMaker()
             if SHORTENER is not None and SHORTENER_API is not None:
                 surl = requests.get(
                     f'https://{SHORTENER}/api?api={SHORTENER_API}&url={durl}&format=text'
                 ).text
                 buttons.buildbutton("๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚", surl)
             else:
                 buttons.buildbutton("๐Ÿ—‚ ๐ƒ๐ซ๐ข๐ฏ๐ž ๐‹๐ข๐ง๐ค ๐Ÿ—‚", durl)
             try:
                 msg += f'\n<b>๐Ÿ“ฆ ๐“๐จ๐ญ๐š๐ฅ ๐’๐ข๐ณ๐ž : </b> {get_readable_file_size(int(meta.get("size")))}\n\n๐Ÿ”ฅ ๐™‹๐™ง๐™ž๐™ž๐™ž๐™ž๐™ฎ๐™ค ๐™ˆ๐™ž๐™ง๐™ง๐™ค๐™ง ๐™•๐™ค๐™ฃ๐™€\n\nโ–ซ๏ธ#Uploaded to Drive โœ“ \n\n๐Ÿšซ ๐˜ฟ๐™ค ๐™‰๐™ค๐™ฉ ๐™Ž๐™๐™–๐™ง๐™š ๐™„๐™ฃ๐™™๐™š๐™ญ ๐™‡๐™ž๐™ฃ๐™  \n\nโœ… ๐—ฃ๐—ผ๐˜„๐—ฒ๐—ฟ๐—ฒ๐—ฑ ๐—ฏ๐˜† : <b>@PriiiiyoBOTs</b>'
             except TypeError:
                 pass
             if INDEX_URL is not None:
                 url_path = requests.utils.quote(f'{file.get("name")}')
                 url = f'{INDEX_URL}/{url_path}'
                 if SHORTENER is not None and SHORTENER_API is not None:
                     siurl = requests.get(
                         f'https://{SHORTENER}/api?api={SHORTENER_API}&url={url}&format=text'
                     ).text
                     buttons.buildbutton("๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€", siurl)
                 else:
                     buttons.buildbutton("๐Ÿš€ ๐ˆ๐ง๐๐ž๐ฑ ๐‹๐ข๐ง๐ค ๐Ÿš€", url)
             if BUTTON_THREE_NAME is not None and BUTTON_THREE_URL is not None:
                 buttons.buildbutton(f"{BUTTON_THREE_NAME}",
                                     f"{BUTTON_THREE_URL}")
             if BUTTON_FOUR_NAME is not None and BUTTON_FOUR_URL is not None:
                 buttons.buildbutton(f"{BUTTON_FOUR_NAME}",
                                     f"{BUTTON_FOUR_URL}")
             if BUTTON_FIVE_NAME is not None and BUTTON_FIVE_URL is not None:
                 buttons.buildbutton(f"{BUTTON_FIVE_NAME}",
                                     f"{BUTTON_FIVE_URL}")
     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 err, ""
     return msg, InlineKeyboardMarkup(buttons.build_menu(2))
Example #6
0
 def clone(self, link):
     self.transferred_size = 0
     try:
         file_id = self.getIdFromUrl(link)
     except (KeyError,IndexError):
         msg = "Google drive ID could not be found in the provided link"
         return msg, ""
     msg = ""
     LOGGER.info(f"File ID: {file_id}")
     try:
         meta = self.getFileMetadata(file_id)
         if meta.get("mimeType") == self.__G_DRIVE_DIR_MIME_TYPE:
             dir_id = self.create_directory(meta.get('name'), parent_id)
             result = self.cloneFolder(meta.get('name'), meta.get('name'), meta.get('id'), dir_id)
             msg += f'<b> Filename: </b><code>{meta.get("name")}</code>\n<b>Size : </b><code>{get_readable_file_size(self.transferred_size)}<code>'
             durl = self.__G_DRIVE_DIR_BASE_DOWNLOAD_URL.format(dir_id)
             buttons = button_build.ButtonMaker()
             if SHORTENER is not None and SHORTENER_API is not None:
                 surl = requests.get(f'https://{SHORTENER}/api?api={SHORTENER_API}&url={durl}&format=text').text
                 buttons.buildbutton("๐•ฏ๐–—๐–Ž๐–›๐–Š ๐•ท๐–Ž๐–“๐–", surl)
             else:
                 buttons.buildbutton("๐•ฏ๐–—๐–Ž๐–›๐–Š ๐•ท๐–Ž๐–“๐–", durl)
             if INDEX_URL is not None:
                 url_path = requests.utils.quote(f'{meta.get("name")}')
                 url = f'{INDEX_URL}/{url_path}/'
                 if SHORTENER is not None and SHORTENER_API is not None:
                     siurl = requests.get(f'https://{SHORTENER}/api?api={SHORTENER_API}&url={url}&format=text').text
                     buttons.buildbutton("๐“ฒ๐“ท๐“ญ๐“ฎ๐” ๐“ต๐“ฒ๐“ท๐“ด", siurl)
                 else:
                     buttons.buildbutton("๐“ฒ๐“ท๐“ญ๐“ฎ๐” ๐“ต๐“ฒ๐“ท๐“ด", url)
             if BUTTON_THREE_NAME is not None and BUTTON_THREE_URL is not None:
                 buttons.buildbutton(f"{BUTTON_THREE_NAME}", f"{BUTTON_THREE_URL}")
             if BUTTON_FOUR_NAME is not None and BUTTON_FOUR_URL is not None:
                 buttons.buildbutton(f"{BUTTON_FOUR_NAME}", f"{BUTTON_FOUR_URL}")
             if BUTTON_FIVE_NAME is not None and BUTTON_FIVE_URL is not None:
                 buttons.buildbutton(f"{BUTTON_FIVE_NAME}", f"{BUTTON_FIVE_URL}")
         else:
             file = self.copyFile(meta.get('id'), parent_id)
             msg += f'<b> Filename: </b><code>{file.get("name")}</code>'
             durl = self.__G_DRIVE_BASE_DOWNLOAD_URL.format(file.get("id"))
             buttons = button_build.ButtonMaker()
             if SHORTENER is not None and SHORTENER_API is not None:
                 surl = requests.get(f'https://{SHORTENER}/api?api={SHORTENER_API}&url={durl}&format=text').text
                 buttons.buildbutton("๐•ฏ๐–—๐–Ž๐–›๐–Š ๐•ท๐–Ž๐–“๐–", surl)
             else:
                 buttons.buildbutton("๐•ฏ๐–—๐–Ž๐–›๐–Š ๐•ท๐–Ž๐–“๐–", durl)
             try:
                 msg += f'\n\n<b> ๐“ฃ๐“ธ๐“ฝ๐“ช๐“ต ๐“ข๐“ฒ๐”ƒ๐“ฎ:</b> {get_readable_file_size(int(meta.get("size")))}\n\n๐•„๐•๐•‹ ๐•„๐•š๐•ฃ๐•ฃ๐• ๐•ฃ โ„ค๐•†โ„•๐”ผ\n\nโ–ซ๏ธ#Uploaded  โœ“ \n\n๐Ÿšซ Do not share links  \n\nโœ… ๐—ฃ๐—ผ๐˜„๐—ฒ๐—ฟ๐—ฒ๐—ฑ ๐—ฏ๐˜† : <b>@๐–Ÿ๐–Š๐–š๐–™๐–˜</b>'
             except TypeError:
                 pass
             if INDEX_URL is not None:
                 url_path = requests.utils.quote(f'{file.get("name")}')
                 url = f'{INDEX_URL}/{url_path}'
                 if SHORTENER is not None and SHORTENER_API is not None:
                     siurl = requests.get(f'https://{SHORTENER}/api?api={SHORTENER_API}&url={url}&format=text').text
                     buttons.buildbutton("๐“ฒ๐“ท๐“ญ๐“ฎ๐” ๐“ต๐“ฒ๐“ท๐“ด", siurl)
                 else:
                     buttons.buildbutton("๐“ฒ๐“ท๐“ญ๐“ฎ๐” ๐“ต๐“ฒ๐“ท๐“ด", url)
             if BUTTON_THREE_NAME is not None and BUTTON_THREE_URL is not None:
                 buttons.buildbutton(f"{BUTTON_THREE_NAME}", f"{BUTTON_THREE_URL}")
             if BUTTON_FOUR_NAME is not None and BUTTON_FOUR_URL is not None:
                 buttons.buildbutton(f"{BUTTON_FOUR_NAME}", f"{BUTTON_FOUR_URL}")
             if BUTTON_FIVE_NAME is not None and BUTTON_FIVE_URL is not None:
                 buttons.buildbutton(f"{BUTTON_FIVE_NAME}", f"{BUTTON_FIVE_URL}")
     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 err, ""
     return msg, InlineKeyboardMarkup(buttons.build_menu(2))