Skip to content
This repository has been archived by the owner on Dec 4, 2023. It is now read-only.

Commit

Permalink
V4.3 (#30)
Browse files Browse the repository at this point in the history
- Fixed Zippyshare.
Thanks to UsergeTeam, BianSepang, usmanmughalji 
- Update cloning log
  • Loading branch information
breakdowns authored Mar 19, 2021
1 parent 1015057 commit 227420d
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 25 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ python3 generate_drive_token.py

## Deployment

Fork this repo, than upload credentials.json and token.pickle to your forks
Fork this repo, than upload **token.pickle** to your forks

<p><a href="https://heroku.com/deploy"> <img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy to Heroku" /></a></p>

Expand Down
49 changes: 28 additions & 21 deletions bot/helper/mirror_utils/download_utils/direct_link_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,30 +43,37 @@ def direct_link_generator(link: str):
else:
raise DirectDownloadLinkException(f'No Direct link function found for {link}')

""" Zippy-Share up-to-date plugin from https://github.com/UsergeTeam/Userge-Plugins/blob/master/plugins/zippyshare.py """
""" Thanks to all contributors @aryanvikash, rking32, @BianSepang """

link = r'https://www(\d{1,3}).zippyshare.com/v/(\w{8})/file.html'
regex_result = (
r'var a = (\d{6});\s+var b = (\d{6});\s+document\.getElementById'
r'\(\'dlbutton\'\).omg = "f";\s+if \(document.getElementById\(\''
r'dlbutton\'\).omg != \'f\'\) {\s+a = Math.ceil\(a/3\);\s+} else'
r' {\s+a = Math.floor\(a/3\);\s+}\s+document.getElementById\(\'d'
r'lbutton\'\).href = "/d/[a-zA-Z\d]{8}/\"\+\(a \+ \d{6}%b\)\+"/('
r'[\w%-.]+)";'
)

def zippy_share(url: str) -> str:
""" ZippyShare direct links generator
Based on https://github.com/LameLemon/ziggy"""
dl_url = ''
try:
link = re.findall(r'\bhttps?://.*zippyshare\.com\S+', url)[0]
except IndexError:
raise DirectDownloadLinkException("`No ZippyShare links found`\n")
session = requests.Session()
base_url = re.search('http.+.com', link).group()
response = session.get(link)
page_soup = BeautifulSoup(response.content, "lxml")
scripts = page_soup.find_all("script", {"type": "text/javascript"})
for script in scripts:
if "getElementById('dlbutton')" in script.text:
url_raw = re.search(r'= (?P<url>\".+\" \+ (?P<math>\(.+\)) .+);',
script.text).group('url')
math = re.search(r'= (?P<url>\".+\" \+ (?P<math>\(.+\)) .+);',
script.text).group('math')
dl_url = url_raw.replace(math, '"' + str(eval(math)) + '"')
break
dl_url = base_url + eval(dl_url)
name = urllib.parse.unquote(dl_url.split('/')[-1])
with session as ses:
match = re.match(link, url)
if not match:
raise ValueError("Invalid URL: " + str(url))
server, id_ = match.group(1), match.group(2)
res = ses.get(url)
res.raise_for_status()
match = re.search(regex_result, res.text, re.DOTALL)
if not match:
raise ValueError("Invalid Response!")
val_1 = int(match.group(1))
val_2 = math.floor(val_1 / 3)
val_3 = int(match.group(2))
val = val_1 + val_2 % val_3
name = match.group(3)
dl_url = "https://www{}.zippyshare.com/d/{}/{}/{}".format(server, id_, val, name)
return dl_url


Expand Down
20 changes: 17 additions & 3 deletions bot/modules/clone.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,32 @@
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
from bot import dispatcher, LOGGER


@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'<a href="tg://user?id={update.message.from_user.id}">{update.message.from_user.first_name}{last_name}</a>'

args = update.message.text.split(" ",maxsplit=1)
if len(args) > 1:
link = args[1]
msg = sendMessage(f"Cloning: <code>{link}</code>",context.bot,update)
msg = f'Cloning...\n' \
f'User: {username}\n' \
f'Link: <a href="{link}">{link}</a>'
sendMessage(msg, context.bot, update)
gd = GoogleDriveHelper()
result, button = gd.clone(link)
deleteMessage(context.bot,msg)
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)
else:
sendMessage("Provide G-Drive Shareable Link to Clone.",context.bot,update)
Expand Down

0 comments on commit 227420d

Please sign in to comment.