From 1a222a3cfc5fe5825d4bff961cf657efa36e8c87 Mon Sep 17 00:00:00 2001
From: Hafitz Setya <71178188+breakdowns@users.noreply.github.com>
Date: Wed, 24 Mar 2021 07:24:16 +0700
Subject: [PATCH] v4.4.4 (#35)
- cc after clone finish.
Thanks to anasty17
- Change to yt-dlp
---
README.md | 3 +-
.../youtube_dl_download_helper.py | 2 +-
.../mirror_utils/upload_utils/gdriveTools.py | 13 +++-----
bot/modules/clone.py | 31 ++++++++-----------
requirements.txt | 2 +-
5 files changed, 22 insertions(+), 29 deletions(-)
diff --git a/README.md b/README.md
index 07a1018..860f1a3 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
[](https://youtu.be/Pk_TthHfLeE)
# Slam Mirror Bot
-This is a telegram bot writen in python for mirroring files on the internet to our beloved Google Drive. This project is heavily inspired from @out386 's telegram bot which is written in JS.
+This is a telegram bot writen in python for mirroring files on the internet to our beloved Google Drive.
## How to deploy?
Deploying is pretty much straight forward and is divided into several steps as follows:
@@ -170,6 +170,7 @@ where host is the name of extractor (eg. youtube, twitch). Multiple accounts of
## Credits
Thanks to:
+- [out386](https://github.com/out386) heavily inspired from telegram bot which is written in JS.
- [Izzy12](https://github.com/lzzy12/) for original repo
- [Dank-del](https://github.com/Dank-del/) for base repo
- [magneto261290](https://github.com/magneto261290/) for some features
diff --git a/bot/helper/mirror_utils/download_utils/youtube_dl_download_helper.py b/bot/helper/mirror_utils/download_utils/youtube_dl_download_helper.py
index e4f8748..6363c8a 100644
--- a/bot/helper/mirror_utils/download_utils/youtube_dl_download_helper.py
+++ b/bot/helper/mirror_utils/download_utils/youtube_dl_download_helper.py
@@ -1,6 +1,6 @@
from .download_helper import DownloadHelper
import time
-from youtube_dl import YoutubeDL, DownloadError
+from yt_dlp import YoutubeDL, DownloadError
from bot import download_dict_lock, download_dict
from ..status_utils.youtube_dl_download_status import YoutubeDLDownloadStatus
import logging
diff --git a/bot/helper/mirror_utils/upload_utils/gdriveTools.py b/bot/helper/mirror_utils/upload_utils/gdriveTools.py
index c3869a1..5a315f3 100644
--- a/bot/helper/mirror_utils/upload_utils/gdriveTools.py
+++ b/bot/helper/mirror_utils/upload_utils/gdriveTools.py
@@ -269,7 +269,10 @@ class GoogleDriveHelper:
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':
- raise err
+ if USE_SERVICE_ACCOUNTS:
+ self.switchServiceAccount()
+ LOGGER.info(f"Got: {reason}, Trying Again.")
+ return self.copyFile(file_id,dest_id)
else:
raise err
@@ -368,13 +371,7 @@ class GoogleDriveHelper:
err = err.last_attempt.exception()
err = str(err).replace('>', '').replace('<', '')
LOGGER.error(err)
- if "User rate limit exceeded" in str(err):
- msg = "User rate limit exceeded."
- elif "File not found" in str(err):
- msg = "File not found."
- else:
- msg = f"Error.\n{err}"
- return msg, ""
+ return err, ""
return msg, InlineKeyboardMarkup(buttons.build_menu(2))
def cloneFolder(self, name, local_path, folder_id, parent_id):
diff --git a/bot/modules/clone.py b/bot/modules/clone.py
index 418c5c4..5fc8992 100644
--- a/bot/modules/clone.py
+++ b/bot/modules/clone.py
@@ -4,33 +4,28 @@ from bot.helper.telegram_helper.message_utils import *
from bot.helper.telegram_helper.filters import CustomFilters
from bot.helper.telegram_helper.bot_commands import BotCommands
from bot.helper.ext_utils.bot_utils import new_thread
-from bot import dispatcher, LOGGER
+from bot import dispatcher
@new_thread
def cloneNode(update,context):
- if update.message.from_user.last_name:
- last_name = f" {update.message.from_user.last_name}"
- else:
- last_name = ""
- if update.message.from_user.username:
- username = f"@{update.message.from_user.username}"
- else:
- username = ""
- name = f'{update.message.from_user.first_name}{last_name}'
-
args = update.message.text.split(" ",maxsplit=1)
+ if update.message.from_user.username:
+ uname = f"@{update.message.from_user.username}"
+ else:
+ uname = f'{update.message.from_user.first_name}'
+ if uname is not None:
+ cc = f'\n\ncc: {uname}'
if len(args) > 1:
link = args[1]
- msg = f'Cloning...\n' \
- f'User: {username}\n' \
- f'Link: {link}'
- sendMessage(msg, context.bot, update)
+ msg = sendMessage(f"Cloning: {link}",context.bot,update)
gd = GoogleDriveHelper()
result, button = gd.clone(link)
- LOGGER.info('ID: {} - Username: {} - Message: {}'.format(update.message.chat.id,update.message.chat.username,update.message.text))
- # deleteMessage(context.bot,msg)
- sendMarkup(result,context.bot,update,button)
+ deleteMessage(context.bot,msg)
+ if button == "":
+ sendMessage(result,context.bot,update)
+ else:
+ sendMarkup(result + cc,context.bot,update,button)
else:
sendMessage("Provide G-Drive Shareable Link to Clone.",context.bot,update)
diff --git a/requirements.txt b/requirements.txt
index 267a982..0f21557 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -13,7 +13,7 @@ python-magic
beautifulsoup4>=4.8.2,<4.8.10
pyrogram
TgCrypto
-youtube_dl
+yt-dlp
feedparser
natsort
heroku3