From 57b49df69677e6ae99d654640ffe323d4b2ab4a7 Mon Sep 17 00:00:00 2001 From: Official Husko Date: Fri, 4 Mar 2022 23:37:21 +0100 Subject: [PATCH] Update to 1.5 New Safety Nets Collection Support Fixed Tool not launching if discord was closed Added 3 New Games to the supported list * Hunt and Snare * Rimworld * Call to Arms - Gates of Hell: Ostfront If the games is not supported it will still download it and inform the user it needs to be installed manually --- .gitignore | 2 +- Clean Folder.bat | 6 + README.md | 35 ++++- bot.py | 397 +++++++++++++++++++++++++++++------------------ icon.ico | Bin 12400 -> 6999 bytes icon.png | Bin 15520 -> 52722 bytes 6 files changed, 276 insertions(+), 164 deletions(-) create mode 100644 Clean Folder.bat diff --git a/.gitignore b/.gitignore index 45e4c55..d613ff8 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ Huskos SteamWorkshop Downloader.spec configs/ -update/ +update/ \ No newline at end of file diff --git a/Clean Folder.bat b/Clean Folder.bat new file mode 100644 index 0000000..ef57504 --- /dev/null +++ b/Clean Folder.bat @@ -0,0 +1,6 @@ +rmdir /s /q .\update +rmdir /s /q .\dist +rmdir /s /q .\build +rmdir /s /q .\__pycache__ +rmdir /s /q .\temp +del ".\Huskos SteamWorkshop Downloader.spec" \ No newline at end of file diff --git a/README.md b/README.md index 50b8b05..6e8ef03 100644 --- a/README.md +++ b/README.md @@ -11,25 +11,44 @@ The bot will ask for an app_id of the game you want to download mods for. This i Other Infos can be found on the [Wiki][1]! +
+ ## Current Features Proxy Scraper: to anonymize request Randomized User Agent to Further Anonymize request sent Automatic installation of downloaded mods -Beautiful Terminal Interface +Beautiful Terminal Interface* Discord RPC - - +Update Grabber +Collection Support +Grabs Dependencies + +
+ ### Known Issues -~Entering an invalid id will make the bot crash~ Fixed in 1.4 -~if you enter a link make sure it looks like this https://steamcommunity.com/sharedfiles/filedetails/?id=2674456883 or it will crash~ Fixed in 1.4 - +~~Entering an invalid id will make the bot crash~~ ***Fixed in 1.4*** +~~if you enter a link make sure it looks like this https://steamcommunity.com/sharedfiles/filedetails/?id=2674456883 or it will crash~~ ***Fixed in 1.4*** +~~Bot Will Crash when discord is not running.~~ ***Fixed in 1.5*** +Certain Collections may throw an installation error. This can be safely ignored for now. +
+ ### Planned -Feature to download collections -Feature to download from a file +~~Feature to download collections~~ ***Added in 1.5*** +Feature to download from a text file Adding More Games to the supported list More Bug Fixes Linux Support +A real auto updater +Adding an API to communicate with a browser addon +Code Cleanup +
+# [1]: https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader/wiki [2]: https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader/releases/latest +[3]: https://steamworkshopdownloader.io/ + +#### Disclaimer +***We are not in any way affiliated or working with the team from [Steam Workshop Downloader IO][3]. This is a unofficial project.*** +*I would suggest you to use a customized Windows Terminal. diff --git a/bot.py b/bot.py index fa556c4..1d9c517 100644 --- a/bot.py +++ b/bot.py @@ -1,5 +1,6 @@ from socket import timeout from time import sleep +from tkinter import E import requests import random import ctypes @@ -18,15 +19,20 @@ # Defined Variables global cfg cfg = configparser.RawConfigParser() -version = "1.4" +version = "1.5" threads = 1 get_date = datetime.datetime.now() month = get_date.month +collection = [] # Connect to Discord RPC client_id = '945401698401284116' -RPC = Presence(client_id) -RPC.connect() +try: + RPC = Presence(client_id) + RPC.connect() + discord_active = 1 +except: + discord_active = 0 # Check if folder exists else create it if os.path.exists('temp'): @@ -34,8 +40,6 @@ os.makedirs('temp') elif not os.path.exists('temp'): os.makedirs('temp') -else: - print("Error while checking for temp folder. Please report this issue") if not os.path.exists('configs'): os.makedirs('configs') @@ -53,7 +57,8 @@ def update_checker(): updt_name = str(git_data.get('name')) updt_rel = str(git_data.get('published_at')) if float(version) < float(cv): - RPC.update(state="Updating Downloader to " + cv,buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},],small_text="Updating",small_image="update",large_image="bridge") + if discord_active == 1: + RPC.update(state="Updating Downloader to " + cv,buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},],small_text="Updating",small_image="update",large_image="bridge") print(colored("A new Update is available!", "green")) print("") print("Name: " + colored(updt_name, "green")) @@ -95,13 +100,14 @@ def update_checker(): ctypes.windll.kernel32.SetConsoleTitleW("Husko's Steam Workshop Downloader | v" + version) def game_selection(cfg): - RPC.update(state="Selecting a Game",buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},],small_text="Game Selection",small_image="selection",large_image="bridge") + if discord_active == 1: + RPC.update(state="Selecting a Game",buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},],small_text="Game Selection",small_image="selection",large_image="bridge") os.system('cls') print(colored("======================================================================================================================", "red")) print(colored("| |", "red")) - print(colored("| " + colored("Product: Husko's Steam Workshop Downloader", "white") + colored(" |", "red"), "red")) - print(colored("| " + colored("Version: ", "white") + version + colored(" |", "red"), "red")) - print(colored("| " + colored("Description: Download and Install SteamWorkshop mods with a few simple click.", "white") + colored(" |", "red"), "red")) + print(colored("| " + colored("Product: ", "white") + colored("Husko's Steam Workshop Downloader", "green") + colored(" |", "red"), "red")) + print(colored("| " + colored("Version: ", "white") + colored(version, "green") + colored(" |", "red"), "red")) + print(colored("| " + colored("Description: ", "white") + colored("Download and Install SteamWorkshop mods with a few simple clicks.", "green") + colored(" |", "red"), "red")) print(colored("| |", "red")) print(colored("======================================================================================================================", "red")) print("") @@ -109,6 +115,7 @@ def game_selection(cfg): print("") print("Please Enter a App ID") global game + global not_supported try: game = int(input(">> ")) except ValueError: @@ -116,113 +123,145 @@ def game_selection(cfg): sleep(3) game_selection(cfg) if game in supported_games: + not_supported = False check_config(cfg) else: print("") - print(colored("Game is not Supported Sorry. Please open a request for me to add support to this game.", "yellow")) - sleep(5) - game_selection(cfg) + print(colored("This game has not yet received a special installation instruction in this Tool. I will be downloaded but it won't be installed automatically!", "yellow")) + sleep(7) + not_supported = True + config(cfg) def config(cfg): os.system('cls') print(colored("======================================================================================================================", "red")) print(colored("| |", "red")) print(colored("| " + colored("Product: Husko's Steam Workshop Downloader", "white") + colored(" |", "red"), "red")) - print(colored("| " + colored("Version: ", "white") + version + colored(" |", "red"), "red")) - print(colored("| " + colored("Description: Download and Install SteamWorkshop mods with a few simple click.", "white") + colored(" |", "red"), "red")) + print(colored("| " + colored("Version: ", "white") + version + colored(" |", "red"), "red")) + print(colored("| " + colored("Description: Download and Install SteamWorkshop mods with a few simple clicks.", "white") + colored(" |", "red"), "red")) print(colored("| |", "red")) print(colored("======================================================================================================================", "red")) print("") - configFilePath = "configs/" + config_names.get(game) + "_config.ini" - cfg.read(configFilePath) global mods - mods = cfg.get('Default', 'ModsPath') global proxies - proxies = cfg.get('Default', 'Proxies') global rua - rua = cfg.get('Default', 'RandomUserAgent') global timeout - timeout = cfg.getint('Default', 'TimeOut') - print("-----------<[ Using the Following Config: " + config_names.get(game) + "_config.ini ]>-----------") - print("Game: " + colored(game_names.get(game), "green")) - print("App ID: " + colored(game, "green")) - print("Mods Path: " + colored(mods, "green")) + if not_supported == False: + print("-----------<[ Using the Following Config: " + config_names.get(game) + "_config.ini ]>-----------") + configFilePath = "configs/" + config_names.get(game) + "_config.ini" + cfg.read(configFilePath) + mods = cfg.get('Default', 'ModsPath') + proxies = cfg.get('Default', 'Proxies') + rua = cfg.get('Default', 'RandomUserAgent') + timeout = cfg.getint('Default', 'TimeOut') + print("Game: " + colored(game_names.get(game), "green")) + print("App ID: " + colored(game, "green")) + print("Mods Path: " + colored(mods, "green")) + else: + print("-----------<[ Using the Following Config: default_config.ini ]>-----------") + print("Game: " + colored("Unknown", "green")) + print("App ID: " + colored(game, "green")) + print("Mods Path: " + colored("Manual Installation", "green")) + timeout = 10 + proxies = "yes" + rua = "yes" print("Gather & Use Proxies: " + colored(proxies, "green")) print("Randomize User-Agents: " + colored(rua, "green")) print("Connection TimeOut: " + colored(str(timeout) + " Seconds", "green")) print("Proxies Loaded: " + colored(str(len(proxy_list)), "green")) print("") print("Please Enter the Workshop Link") - RPC.update(state="Looking for a mod to Download",buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},],small_text=game_names.get(game),small_image=config_names.get(game),large_image="bridge") + if discord_active == 1: + RPC.update(state="Looking for a mod to Download",buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},],small_text=game_names.get(game),small_image=config_names.get(game),large_image="bridge") config2(cfg) def config2(cfg): - RPC.update(state="Looking for a mod to Download",buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},],small_text=game_names.get(game),small_image=config_names.get(game),large_image="bridge") + if discord_active == 1: + RPC.update(state="Looking for a mod to Download",buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},],small_text=game_names.get(game),small_image=config_names.get(game),large_image="bridge") global id global xid - xid = input(colored(">> ", )) - xxid = re.match(r"(.*\d+)", xid).group() - id = xxid.strip("https://steamcommunity.com/sharedfiles/filedetails/?id=") - if id.isnumeric() == False: + xid = input(">> ") + if "https://steamcommunity.com/workshop/filedetails/?id=" in xid: + xxid = xid.strip("https://steamcommunity.com/workshop/filedetails/?id=") + elif "https://steamcommunity.com/sharedfiles/filedetails/?id=" in xid: + xxid = xid.strip("https://steamcommunity.com/sharedfiles/filedetails/?id=") + else: print(colored("Something Went Wrong! Either wrong workshop URL or another error.", "red")) sleep(5) config2(cfg) + id = re.match(r"(.*\d+)", xxid).group() + if id.isnumeric() == False: + print(colored("Something Went Wrong! Either wrong workshop URL or another error.", "red")) + sleep(3) + config2(cfg) else: + collection.append(id) downloader(cfg) def downloader(cfg): - backend = ["node01","node02","node03","node04","node05"] - bd = random.choice(backend) - header = "User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36" - url = "https://" + bd + ".steamworkshopdownloader.io/prod/api/details/file" - mod_id = "[" + id + "]" - if rua == "yes": - header = random.choice(user_agents) - if proxies == "yes": - proxy = random.choice(proxy_list) - proxyy = {"http":proxy} - page = requests.post(url,headers={"User-Agent":header},proxies=proxyy,timeout=timeout,data=mod_id).text - else: - page = requests.post(url,headers={"User-Agent":header},timeout=timeout,data=mod_id).text - if page == "[]": - print(colored("Mod Not Found. If this seems to be a mistake please open an issue report.", "red")) - sleep(3) - config2(cfg) - data = json.loads(page) - for i in data: - pubid = str(i.get('publishedfileid')) - safe_name = str(i.get('title_disk_safe')) - name = str(i.get('title')) - app_id = str(i.get('creator_appid')) - if int(app_id) != int(game): - print(colored("You Tried to download a mod for a different game then you selected!", "red")) - sleep(3) - game_selection(cfg) - print("Downloading: " + colored(name, "green")) - RPC.update(details="Downloading " + name,buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},{"label": "Mod Page", "url": "" + xid +""}],small_text="Stormworks: Build and Rescue",small_image="stormworks",large_image="bridge") - url2 = "https://" + bd + ".steamworkshopdownloader.io/prod/api/download/request" - req_data = '{"publishedFileId":' + pubid + ',"collectionId":null,"hidden":false,"downloadFormat":"raw","autodownload":false}' - if proxies == "yes": - proxy = random.choice(proxy_list) - proxyy = {"http":proxy} - page2 = requests.post(url2,headers={"User-Agent":header},proxies=proxyy,timeout=timeout,data=req_data).text - else: - page2 = requests.post(url2,headers={"User-Agent":header},timeout=timeout,data=req_data).text - data2 = json.loads(page2) - uuid = data2.get('uuid') - url3 = "https://" + bd + ".steamworkshopdownloader.io/prod/api/download/status" - check = '{"uuids":["' + uuid + '"]}' - if proxies == "yes": - proxy = random.choice(proxy_list) - proxyy = {"http":proxy} - page3 = requests.post(url3,headers={"User-Agent":header},proxies=proxyy,timeout=timeout,data=check).text - else: - page3 = requests.post(url3,headers={"User-Agent":header},timeout=timeout,data=check).text - data3 = json.loads(page3) - status = data3[uuid]['status'] - while status != "prepared": - sleep(2) + for id in collection: + backend = ["node01","node02","node03","node04","node05"] + bd = random.choice(backend) + header = "User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36" + url = "https://" + bd + ".steamworkshopdownloader.io/prod/api/details/file" + mod_id = "[" + id + "]" + if rua == "yes": + header = random.choice(user_agents) + if proxies == "yes": + proxy = random.choice(proxy_list) + proxyy = {"http":proxy} + page = requests.post(url,headers={"User-Agent":header},proxies=proxyy,timeout=timeout,data=mod_id).text + else: + page = requests.post(url,headers={"User-Agent":header},timeout=timeout,data=mod_id).text + if page == "[]": + print(colored("Mod Not Found. If this seems to be a mistake please open an issue report.", "red")) + sleep(3) + config2(cfg) + data = json.loads(page) + for i in data: + pubid = str(i.get('publishedfileid')) + safe_name = str(i.get('title_disk_safe')) + fil_name = str(i.get('filename')) + name = str(i.get('title')) + app_id = str(i.get('consumer_appid')) + dformat = str(i.get('download_format')) + coll = str(i.get('children')) + if coll != "None" and fil_name != "None" and int(len(collection)) <= 1: + """if int(len(collection)) <= 1 and ".png" or ".jpg" or ".jpeg" in fil_name: + collection.clear()""" # Stripped the id out after it "detected" it as a collection but is disabled due to not working as intended + fcoll = coll.replace("'",'"') + cdata = json.loads(fcoll) + for g in cdata: + tidd = str(g.get('publishedfileid')) + collection.append(tidd) + amount = str(len(collection)) + if ".png" or ".jpg" or ".jpeg" in fil_name: + print("Downloading Collection: " + colored(name, "green") + " with " + colored(str(len(collection)), "green") + " Mods") + print("") + downloader(cfg) + amount = str(len(collection)) + if int(amount) <= 1: + collection.clear() + if int(app_id) != int(game): + print(colored("You Tried to download a mod for a different game then you selected!", "red")) + sleep(3) + game_selection(cfg) + print("Downloading: " + colored(name, "green")) + if discord_active == 1: + RPC.update(details="Downloading " + name,buttons=[{"label": "GitHub", "url": "https://github.com/Official-Husko/Husko-s-SteamWorkshop-Downloader"},{"label": "Mod Page", "url": "" + xid +""}],small_text="Stormworks: Build and Rescue",small_image="stormworks",large_image="bridge") + url2 = "https://" + bd + ".steamworkshopdownloader.io/prod/api/download/request" + req_data = '{"publishedFileId":' + pubid + ',"collectionId":null,"hidden":false,"downloadFormat":"' + dformat + '","autodownload":false}' + if proxies == "yes": + proxy = random.choice(proxy_list) + proxyy = {"http":proxy} + page2 = requests.post(url2,headers={"User-Agent":header},proxies=proxyy,timeout=timeout,data=req_data).text + else: + page2 = requests.post(url2,headers={"User-Agent":header},timeout=timeout,data=req_data).text + data2 = json.loads(page2) + uuid = data2.get('uuid') + url3 = "https://" + bd + ".steamworkshopdownloader.io/prod/api/download/status" + check = '{"uuids":["' + uuid + '"]}' if proxies == "yes": proxy = random.choice(proxy_list) proxyy = {"http":proxy} @@ -231,32 +270,38 @@ def downloader(cfg): page3 = requests.post(url3,headers={"User-Agent":header},timeout=timeout,data=check).text data3 = json.loads(page3) status = data3[uuid]['status'] - data4 = json.loads(page3) - node = data4[uuid]['storageNode'] - spath = data4[uuid]['storagePath'] - url4 = "https://" + node + "/prod//storage/" + spath + "?uuid=" + uuid - if os.path.exists("temp/" + safe_name + ".zip"): - os.remove("temp/" + safe_name + ".zip") - if proxies == "yes": - r = requests.get(url4,headers={"User-Agent":header},proxies=proxyy,timeout=timeout,stream=True) - else: - r = requests.get(url4,headers={"User-Agent":header},timeout=timeout,stream=True) - file_path = os.path.join("temp/", safe_name + ".zip") - file = open(file_path, 'wb') - with alive_bar(int(int(r.headers.get('content-length')) / 1024 + 1)) as bar: - for chunk in r.iter_content(chunk_size=1024): - if chunk: - file.write(chunk) - file.flush() - bar() - file.close() - if int(game) == 573090: - if os.path.exists("temp/" + safe_name + ".xml"): - os.remove("temp/" + safe_name + ".xml") - if os.path.exists("temp/" + safe_name + ".png"): - os.remove("temp/" + safe_name + ".png") + while status != "prepared": + sleep(2) + if proxies == "yes": + proxy = random.choice(proxy_list) + proxyy = {"http":proxy} + page3 = requests.post(url3,headers={"User-Agent":header},proxies=proxyy,timeout=timeout,data=check).text + else: + page3 = requests.post(url3,headers={"User-Agent":header},timeout=timeout,data=check).text + data3 = json.loads(page3) + status = data3[uuid]['status'] + data4 = json.loads(page3) + node = data4[uuid]['storageNode'] + spath = data4[uuid]['storagePath'] + url4 = "https://" + node + "/prod//storage/" + spath + "?uuid=" + uuid + if os.path.exists("temp/" + safe_name + ".zip"): + os.remove("temp/" + safe_name + ".zip") + if proxies == "yes": + r = requests.get(url4,headers={"User-Agent":header},proxies=proxyy,timeout=timeout,stream=True) + else: + r = requests.get(url4,headers={"User-Agent":header},timeout=timeout,stream=True) + file_path = os.path.join("temp/", safe_name + ".zip") + file = open(file_path, 'wb') + with alive_bar(int(int(r.headers.get('content-length')) / 1024 + 1)) as bar: + for chunk in r.iter_content(chunk_size=1024): + if chunk: + file.write(chunk) + file.flush() + bar() + file.close() zip = "temp/" + safe_name + '.zip' - destination = 'temp/' + destination = 'temp/' + safe_name + badzip = False with zipfile.ZipFile(zip) as zf: try: zf.extractall(destination) @@ -264,59 +309,94 @@ def downloader(cfg): print(colored("Received Corrupt Zip File. Try to download the mod again. If the issue persists try to open it manually and if it works report this issue to the mod author else the server sent a corrupt file.", "red")) badzip = True os.remove("temp/" + safe_name + ".zip") - if os.path.exists("temp/vehicle.xml") & os.path.exists("temp/workshop_preview.png"): - mod_path = mods + "/vehicles/" - if not os.path.exists(mod_path): - os.makedirs(mod_path) - os.rename("temp/vehicle.xml", "temp/" + safe_name + ".xml") - os.rename("temp/workshop_preview.png", "temp/" + safe_name + ".png") + if not_supported == True: + print("You can now proceed to manually install the mod " + colored(name, "green") + " located in the temp folder.") + print("") + collection.clear() + config2(cfg) + + # Stormworks: Build and Rescue + if int(game) == 573090: + + # Installing Vehicles + if os.path.exists(destination + "/vehicle.xml") & os.path.exists(destination + "/workshop_preview.png"): + mod_path = mods + "/vehicles/" + if not os.path.exists(mod_path): + os.makedirs(mod_path) + os.rename(destination + "/vehicle.xml", destination + "/" + safe_name + ".xml") + os.rename(destination + "/workshop_preview.png", destination + "/" + safe_name + ".png") + file_names = os.listdir(destination) + if os.path.exists(mod_path + safe_name + ".xml"): + os.remove(mod_path + safe_name + ".xml") + if os.path.exists(mod_path + safe_name + ".png"): + os.remove(mod_path + safe_name + ".png") + for file_name in file_names: + shutil.move(os.path.join(destination, file_name), mod_path) + + # Installing Addons + elif os.path.exists(destination + "/playlist") & os.path.exists(destination + "/workshop_preview.png"): + mod_path = mods + "/missions/" + if not os.path.exists(mod_path): + os.makedirs(mod_path) + os.rename(destination + "/playlist", destination + "/" + safe_name) + os.rename(destination + "/workshop_preview.png", destination + "/" + safe_name + ".png") + file_names = os.listdir(destination) + if os.path.exists(mod_path + safe_name): + shutil.rmtree(mod_path + safe_name, ignore_errors=True) + if os.path.exists(mod_path + safe_name + ".png"): + os.remove(mod_path + safe_name + ".png") + for file_name in file_names: + shutil.move(os.path.join(destination, file_name), mod_path) + + # Project Zomboid + elif int(game) == 108600: + mod_path = mods + "/mods/" + file_names = os.listdir(destination + '/mods') + for file_name in file_names: + shutil.rmtree(mod_path + file_name, ignore_errors=True) + shutil.move(os.path.join(destination + '/mods', file_name), mod_path) + + # Hunt and Snare + elif int(game) == 944330: + mod_path = mods + safe_name + if os.path.exists(mod_path): + shutil.rmtree(mod_path, ignore_errors=True) source_dir = 'temp/' file_names = os.listdir(source_dir) - if os.path.exists(mod_path + safe_name + ".xml"): - os.remove(mod_path + safe_name + ".xml") - if os.path.exists(mod_path + safe_name + ".png"): - os.remove(mod_path + safe_name + ".png") for file_name in file_names: shutil.move(os.path.join("temp/", file_name), mod_path) - elif os.path.exists("temp/playlist") & os.path.exists("temp/workshop_preview.png"): - mod_path = mods + "/missions/" + + # Rimworld + elif int(game) == 294100: + mod_path = mods if not os.path.exists(mod_path): os.makedirs(mod_path) - os.rename("temp/playlist", "temp/" + safe_name) - os.rename("temp/workshop_preview.png", "temp/" + safe_name + ".png") source_dir = 'temp/' file_names = os.listdir(source_dir) - if os.path.exists(mod_path + safe_name): - shutil.rmtree(mod_path + safe_name, ignore_errors=True) - if os.path.exists(mod_path + safe_name + ".png"): - os.remove(mod_path + safe_name + ".png") + shutil.rmtree(mod_path + "/" + safe_name, ignore_errors=True) + for file_name in file_names: + shutil.move(os.path.join("temp/", file_name), mod_path) + + # Call to Arms - Gates of Hell: Ostfront + elif int(game) == 400750: + mod_path = mods + safe_name + if os.path.exists(mod_path): + shutil.rmtree(mod_path, ignore_errors=True) + source_dir = 'temp/' + file_names = os.listdir(source_dir) for file_name in file_names: shutil.move(os.path.join("temp/", file_name), mod_path) + else: - if badzip == True: - fuck = "yes" - else: - print(colored("An Error occured while installing the mod! Please check your Mods Folder Path. If the issue persists please report this issue to the author", "red")) - elif int(game) == 108600: - mod_path = mods + "/mods/" - zip = "temp/" + safe_name + '.zip' - destination = 'temp/' - with zipfile.ZipFile(zip) as zf: - try: - zf.extractall(destination) - except zipfile.BadZipFile: - print(colored("Received Corrupt Zip File. Try to download the mod again. If the issue persists try to open it manually and if it works report this issue to the mod author else the server sent a corrupt file.", "red")) - badzip = True - os.remove("temp/" + safe_name + ".zip") - source_dir = 'temp/mods' - file_names = os.listdir(source_dir) - for file_name in file_names: - shutil.rmtree(mod_path + file_name, ignore_errors=True) - shutil.move(os.path.join("temp/mods", file_name), mod_path) - else: - print("Couldn't Determine mod while installing. Please report this issue to the dev") - print("Mod " + colored(name, "green") + " Successfully Installed!") - print("") + print("Couldn't Determine mod while installing. Please report this issue to the dev") + if badzip == True: + print("Mod " + colored(name, "red") + " Failed to Install!") + else: + print("Mod " + colored(name, "green") + " Successfully Installed!") + print("") + shutil.rmtree('temp', ignore_errors=True) + os.makedirs('temp') + collection.clear() config2(cfg) user_agents = [ @@ -374,21 +454,28 @@ def downloader(cfg): supported_games = [ 573090, - 108600 + 108600, + 944330, + 294100, + 400750 ] config_names = { 573090: "stormworks", - 108600: "pz" + 108600: "pz", + 944330: "hunt_snare", + 294100: "rimworld", + 400750: "cta_goh" } game_names = { 573090: "Stormworks: Build and Rescue", - 108600: "Project Zomboid" + 108600: "Project Zomboid", + 944330: "Hunt and Snare", + 294100: "Rimworld", + 400750: "Call to Arms - Gates of Hell: Ostfront" } - - # Check if the stormworks_config.ini exists else create it def check_config(cfg): if not os.path.exists("configs/" + config_names.get(game) + "_config.ini"): @@ -427,5 +514,5 @@ def proxy_scraper(cfg): # Credits # -# h110m - Adding a fancy download bar +# h110m - Helping and explaining on how to add a fancy download bar # \ No newline at end of file diff --git a/icon.ico b/icon.ico index 79dfcfd4e29272a066f692e3aad4d9eab9b19c11..864f897a834f8529bbf361e4f71108a9d152b92a 100644 GIT binary patch literal 6999 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 F{|^u6RWkqp diff --git a/icon.png b/icon.png index ec0e2b86c65a5576d51ae188f2d8921507c1ddbc..c07ca7739c65469b6fa43df79e2e9af8f9f952b6 100644 GIT binary patch literal 52722 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 JPDHLkV1mNbTI&D+ literal 15520 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