Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import argparse
- import bs4
- import os
- import re
- import requests
- import urllib.parse
- parser = argparse.ArgumentParser()
- parser.add_argument("-s", "--search", help="Search terms")
- parser.add_argument("-d", "--download", help="Link to emuparadise download")
- args = parser.parse_args()
- def search_game():
- relative_path = os.path.join(os.path.dirname(__file__), "emu-db")
- xdg_path = os.path.join(os.path.expanduser("~"), ".local", "share", "emu-db")
- if not os.path.exists(xdg_path):
- database = relative_path
- else:
- database = xdg_path
- with open(database, encoding="utf-8") as db:
- game_links = db.readlines()
- db.close()
- keywords = args.search.lower().split(" ")
- for game in game_links:
- if all(key in game.lower() for key in keywords):
- print("\"%s\"" % game.strip("\n"))
- def download_game(link):
- game = requests.get(link, headers={"referer": args.download}, stream=True)
- decoded_url = urllib.parse.unquote(game.url)
- filename = decoded_url.split("/")[-1]
- if os.path.exists(filename):
- print("File already exists. Not downloading.")
- return False
- current_size = 0
- total_size = int(game.headers.get("content-length"))
- print(filename)
- with open(filename, "wb") as game_file:
- for block in game.iter_content(1048576):
- game_file.write(block)
- current_size += len(block)
- percent = int((current_size / total_size * 100))
- print("\r%dMiB / %dMiB %d%%" % ((current_size >> 20), (total_size >> 20), percent), end="")
- game_file.close()
- print("")
- def get_dc_links():
- filenames = []
- html = requests.get(args.download).text
- soup = bs4.BeautifulSoup(html, "html.parser")
- dl_div = soup.find("div", class_="download-link")
- for dl_p in dl_div.find_all("p"):
- game_title = dl_p.a.get("title")
- filename = re.search("Download (.+?) ISO", game_title)
- filename = filename.group(1)
- filenames.append(filename)
- return filenames
- def format_link():
- if "Sega_Dreamcast_ISOs" in args.download:
- filenames = get_dc_links()
- for filename in filenames:
- link = "http://50.7.92.186/happyxhJ1ACmlTrxJQpol71nBc/Dreamcast/" + filename
- download_game(link)
- else:
- gid = args.download.split("/")[-1]
- link = "https://www.emuparadise.me/roms/get-download.php?gid=" + gid + "&test=true"
- download_game(link)
- if __name__ == "__main__":
- if args.search:
- search_game()
- elif args.download:
- format_link()
- else:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement