63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
import argparse
|
|
import contextlib
|
|
import re
|
|
|
|
from playwright.sync_api import sync_playwright, Page
|
|
|
|
|
|
def download_filejoker(url: str) -> dict:
|
|
with launch_browser() as page:
|
|
page.goto(url, referer='http://planetsuzy.org')
|
|
page.get_by_role("button", name="Slow Download").click()
|
|
page.get_by_role("button", name="Get Download Link").click()
|
|
with page.expect_response(re.compile('https://fs.+.filejoker.net/')) as res:
|
|
with page.expect_download(timeout=0) as dl:
|
|
page.get_by_role("button", name="Download File").click(timeout=0)
|
|
dl.value.cancel()
|
|
print(dl.value.url)
|
|
print(dl.value)
|
|
page.pause()
|
|
print()
|
|
|
|
|
|
def download_filefox(url: str) -> dict:
|
|
with launch_browser() as page:
|
|
page.goto(url, referer='http://planetsuzy.org')
|
|
page.get_by_role("button", name="Slow Download").click()
|
|
page.get_by_role("button", name="Slow Download").click(timeout=0)
|
|
with page.expect_response(re.compile('https://fs.+.filefox.net/')) as res:
|
|
with page.expect_download(timeout=0) as dl:
|
|
page.get_by_role("button", name="Download File").click(timeout=0)
|
|
dl.value.cancel()
|
|
print(dl.value.url)
|
|
print(dl.value)
|
|
page.pause()
|
|
print()
|
|
|
|
|
|
@contextlib.contextmanager
|
|
def launch_browser() -> Page:
|
|
with sync_playwright() as playwright:
|
|
with playwright.chromium.launch(headless=False) as browser:
|
|
with browser.new_context() as context:
|
|
with context.new_page() as page:
|
|
yield page
|
|
|
|
|
|
def parse_args():
|
|
arger = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
|
arger.add_argument('url', help='URL to download', type=str)
|
|
return arger.parse_args()
|
|
|
|
|
|
def main():
|
|
args = parse_args()
|
|
url = args.url
|
|
download_filejoker(url)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# download_filejoker('https://filejoker.net/ofg59z1pqjjb')
|
|
download_filefox('https://filefox.cc/qxd2yrxgu4ak')
|
|
main()
|