From 1a6e96ee4772de15d02c88bb2d14c85581a88b75 Mon Sep 17 00:00:00 2001 From: katboi01 Date: Sat, 25 Jan 2025 00:55:47 +0100 Subject: [PATCH] moved config from .bat to .py --- dmmBypass.py | 62 ++++++++++++++++++++++++++---------------- run_KF3.bat | 34 +---------------------- update_and_run_KF3.bat | 34 +---------------------- 3 files changed, 41 insertions(+), 89 deletions(-) diff --git a/dmmBypass.py b/dmmBypass.py index b83a87d..78806d9 100644 --- a/dmmBypass.py +++ b/dmmBypass.py @@ -1,12 +1,40 @@ import os import sys -import wmi +import json import hashlib +import argparse import requests -import dmmUpdater import subprocess import urllib.parse from uuid import getnode + +parser = argparse.ArgumentParser(description='DMM bypass script') +parser.add_argument('-g', '--game', type=str, help="DMM code name of the game", default="kfp2g") +parser.add_argument('-u', '--update', help="Check for game update before launching", action='store_true') +args = parser.parse_args() + +config_name = args.game + '.cfg' + +if not os.path.exists(config_name): + subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"]) + config = { + "game_id" : args.game, + "file_path" : input('Enter full file path to KF3 .exe: ').strip('\"'), + "dmm_login" : input('DMM Login (email): '), + "dmm_password" : input('DMM Password: '), + "use_proxy" : input('Your login tokens will be sent through my VPN machine.\nIs that okay? (yes/no): ').lower() == "yes" + } + with open(config_name, 'wt', encoding="utf-8") as f: + json.dump(config, f, indent=1, ensure_ascii=False) +else: + with open(config_name, "rt", encoding="utf-8") as f: + config = json.load(f) + print(f'Loaded settings from {config_name}') + +config["update_game"] = args.update + +import wmi +import dmmUpdater from bs4 import BeautifulSoup from pypasser import reCaptchaV3 @@ -88,24 +116,13 @@ def retrieve_launch_params(game_id, mac_addr, hdd_serial, motherboard, login_sec except Exception as e: print("Failed to retrieve launch arguments:", e) -def main(args): - if len(args) != 7: - print("Usage:", - "\tpython dmmBypass.py game_id game_path email password update_game use_proxy", - "\t- game_id: DMM code name of the game", - "\t- game_path: full path to the game .exe. Wrap in \" if there are spaces in the path", - "\t- email, password: dmm credentials", - "\t- update_game: \"true\" to check for game update before launching", - "\t- use_proxy: \"true\" to send required request through Katboi VPN. Otherwise use your own VPN", - "\texample: python dmmBypass.py kfp2g \"D:\Games\KFP2G\けもフレ3.exe\" kat@email.com abc123 true", sep="\n") - return - - game_id = args[1] - exe_location = args[2] - login = urllib.parse.quote_plus(args[3]) - password = urllib.parse.quote_plus(args[4]) - update_game = args[5].lower() == "true" - use_proxy = args[6].lower() == "true" +def main(config): + game_id = config["game_id"] + exe_location = config["file_path"] + login = urllib.parse.quote_plus(config["dmm_login"]) + password = urllib.parse.quote_plus(config["dmm_password"]) + update_game = config["update_game"] if "update_game" in config else False + use_proxy = config["use_proxy"] if "use_proxy" in config else False mac_addr = get_mac() hdd_serial = get_hash('') motherboard = get_hash(get_motherboard()) @@ -139,7 +156,6 @@ def main(args): args = [exe_location] + execute_args.split() print(args) subprocess.Popen(args, start_new_session=True) - input("Done. Press enter to exit") + input("Done. Press enter to exit (this will close the game)") -args = sys.argv -main(args) \ No newline at end of file +main(config) \ No newline at end of file diff --git a/run_KF3.bat b/run_KF3.bat index 1981673..04ebb41 100644 --- a/run_KF3.bat +++ b/run_KF3.bat @@ -1,35 +1,3 @@ @echo off -chcp 65001 -setlocal enabledelayedexpansion - -set file_name="kfp2g.cfg" - -IF NOT EXIST %file_name% ( - set /p null="Make sure python is installed. In next step, required packages will be installed. Press Enter to continue" - pip install -r requirements.txt - set /p file_path=Enter full file path to KF3 .exe: - set /p dmm_login=DMM Login: - set /p dmm_password=DMM Password: - set /p confirm="Your login tokens will be sent through Katboi's VPN machine, is that ok? Personal VPN is required if not (yes/no):" - if /i "!confirm!"=="yes" ( - set use_proxy=true - ) else ( - set use_proxy=false - ) - echo !file_path!> %file_name% - echo !dmm_login!>> %file_name% - echo !dmm_password!>> %file_name% - echo !use_proxy!>> %file_name% -) ELSE ( - < %file_name% ( - set /p file_path= - set /p dmm_login= - set /p dmm_password= - set /p use_proxy= - ) - echo Loaded settings from %file_name% -) - -python dmmBypass.py kfp2g %file_path% %dmm_login% %dmm_password% false %use_proxy% - +python dmmBypass.py -g kfp2g pause \ No newline at end of file diff --git a/update_and_run_KF3.bat b/update_and_run_KF3.bat index e49a872..0087bbf 100644 --- a/update_and_run_KF3.bat +++ b/update_and_run_KF3.bat @@ -1,35 +1,3 @@ @echo off -chcp 65001 -setlocal enabledelayedexpansion - -set file_name="kfp2g.cfg" - -IF NOT EXIST %file_name% ( - set /p null="Make sure python is installed. In next step, required packages will be installed. Press Enter to continue" - pip install -r requirements.txt - set /p file_path=Enter full file path to KF3 .exe: - set /p dmm_login=DMM Login: - set /p dmm_password=DMM Password: - set /p confirm="Your login tokens will be sent through Katboi's VPN machine, is that ok? Personal VPN is required if not (yes/no):" - if /i "!confirm!"=="yes" ( - set use_proxy=true - ) else ( - set use_proxy=false - ) - echo !file_path!> %file_name% - echo !dmm_login!>> %file_name% - echo !dmm_password!>> %file_name% - echo !use_proxy!>> %file_name% -) ELSE ( - < %file_name% ( - set /p file_path= - set /p dmm_login= - set /p dmm_password= - set /p use_proxy= - ) - echo Loaded settings from %file_name% -) - -python dmmBypass.py kfp2g %file_path% %dmm_login% %dmm_password% true %use_proxy% - +python dmmBypass.py -g kfp2g -u pause \ No newline at end of file