From b7ead9f5183c62f0224803d388a5a47fbf32f161 Mon Sep 17 00:00:00 2001 From: "Gary M. Josack" Date: Fri, 27 Nov 2020 01:19:33 -0800 Subject: [PATCH 1/4] Large overhaul to UI/UX Remove console from being required Small little tkinter UI to jump to the browser websockets to give real-time updates to browser --- requirements.txt | 6 +- src/modlunky2/assets/assets.py | 41 ++++-- src/modlunky2/cli.py | 47 ++++--- src/modlunky2/constants.py | 12 ++ src/modlunky2/native.py | 55 ++++++++ src/modlunky2/static/images/bg_cave.png | Bin 0 -> 159021 bytes src/modlunky2/static/images/icon.png | Bin 0 -> 5515 bytes src/modlunky2/templates/assets.html | 54 -------- src/modlunky2/templates/assets_extract.html | 18 --- src/modlunky2/templates/assets_repack.html | 18 --- src/modlunky2/templates/base.html | 91 +++++++------ src/modlunky2/templates/extract.html | 127 +++++++++++++++++ src/modlunky2/templates/index.html | 19 +-- src/modlunky2/templates/pack.html | 36 +++++ src/modlunky2/views/assets.py | 144 ++++++++++++++++---- src/modlunky2/web.py | 0 16 files changed, 476 insertions(+), 192 deletions(-) create mode 100644 src/modlunky2/constants.py create mode 100644 src/modlunky2/native.py create mode 100644 src/modlunky2/static/images/bg_cave.png create mode 100644 src/modlunky2/static/images/icon.png delete mode 100644 src/modlunky2/templates/assets.html delete mode 100644 src/modlunky2/templates/assets_extract.html delete mode 100644 src/modlunky2/templates/assets_repack.html create mode 100644 src/modlunky2/templates/extract.html create mode 100644 src/modlunky2/templates/pack.html create mode 100644 src/modlunky2/web.py diff --git a/requirements.txt b/requirements.txt index fdd3ef285..d3335ce2b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,9 @@ Flask==1.1.2 -psutil==5.7.3 -pyinstaller==4.0 +Flask-Sockets==0.2.1 +ppyinstaller==4.0 packaging==20.4 requests==2.25.0 zstandard==0.14.0 Pillow==8.0.1 +gevent==20.9.0 +gevent-websocket==0.10.1 diff --git a/src/modlunky2/assets/assets.py b/src/modlunky2/assets/assets.py index c2c7c95cb..736471b10 100644 --- a/src/modlunky2/assets/assets.py +++ b/src/modlunky2/assets/assets.py @@ -22,6 +22,17 @@ from .converters import dds_to_png, png_to_dds from .exc import FileConflict, MissingAsset, MultipleMatchingAssets +class NullExtractCtx: + @staticmethod + def alert(_level, _msg): + return + + @staticmethod + def extract_complete(_filepath): + return + +null_extract_ctx = NullExtractCtx() + @dataclass class ExeAssetBlock: @@ -108,7 +119,7 @@ def write_data(self, exe_handle, data): exe_handle.write(data) -class ExeAsset(object): +class ExeAsset: def __init__(self, asset_block, filepath): self.asset_block = asset_block self.filepath = filepath @@ -242,17 +253,22 @@ def populate_asset_filepaths(self): asset.filepath = filepath @staticmethod - def _extract_single(asset, *args, **kwargs): + def _extract_single(asset, extract_ctx, *args, **kwargs): try: logging.info("Extracting %s... ", asset.filepath) asset.extract(*args, **kwargs) - except Exception: # pylint: disable=broad-except + extract_ctx.extract_complete(asset.filepath) + except Exception as err: # pylint: disable=broad-except + extract_ctx.alert('danger', f"Failed to extract {asset.filepath}: {err}") logging.exception("Failed Extraction") - def extract(self, extract_dir, compressed_dir, compression_level=DEFAULT_COMPRESSION_LEVEL): + def extract( + self, extract_dir, compressed_dir, + compression_level=DEFAULT_COMPRESSION_LEVEL, + extract_ctx=null_extract_ctx + ): unextracted = [] for asset in self.assets: - if asset.filepath is None: # No known filepaths matched this asset. unextracted.append(asset) @@ -264,11 +280,12 @@ def extract(self, extract_dir, compressed_dir, compression_level=DEFAULT_COMPRES futures = [ pool.submit( self._extract_single, - asset, - extract_dir, - compressed_dir, - self.key, - compression_level, + asset, + extract_ctx, + extract_dir, + compressed_dir, + self.key, + compression_level, ) for asset in self.assets if asset.filepath @@ -339,7 +356,9 @@ def repackage( asset.asset_block.offset = offset asset.asset_block.asset_len = disk_asset.get_asset_len() - asset.asset_block.asset_offset = asset.asset_block.offset + 8 + asset.asset_block.filepath_len + 1 + asset.asset_block.asset_offset = ( + asset.asset_block.offset + 8 + asset.asset_block.filepath_len + 1 + ) # The name hash of soundbank files is padded such that the asset_offset # is divisible by 32. diff --git a/src/modlunky2/cli.py b/src/modlunky2/cli.py index c73900bbf..fbac0a357 100644 --- a/src/modlunky2/cli.py +++ b/src/modlunky2/cli.py @@ -1,33 +1,36 @@ import argparse import logging import sys +import threading from pathlib import Path import requests from flask import Flask +from flask_sockets import Sockets +from gevent import pywsgi +from geventwebsocket.handler import WebSocketHandler from packaging import version +from PIL import Image, ImageTk +from .constants import APP_DIR, BASE_DIR, ROOT_DIR +from .native import NativeUI from .views.assets import blueprint as assets_blueprint +from .views.assets import ws_blueprint as assets_ws_blueprint from .views.index import blueprint as index_blueprint -PROCESS_NAME = "Spel2.exe" -# Setup static files to work with onefile exe -BASE_DIR = Path(__file__).resolve().parent -APP_DIR = BASE_DIR -ROOT_DIR = BASE_DIR.parent.parent -if hasattr(sys, "_MEIPASS"): - BASE_DIR = BASE_DIR / getattr(sys, "_MEIPASS") - APP_DIR = Path(sys.executable).resolve().parent - ROOT_DIR = BASE_DIR - - app = Flask( __name__, static_folder=f"{BASE_DIR / 'static'}", template_folder=f"{BASE_DIR / 'templates'}", ) +sockets = Sockets(app) + app.register_blueprint(index_blueprint) app.register_blueprint(assets_blueprint, url_prefix="/assets") +sockets.register_blueprint(assets_ws_blueprint, url_prefix="/ws/assets") + + +#WebSocketHandler.log_request = lambda _: None def get_latest_version(): @@ -53,11 +56,6 @@ def main(): ) parser.add_argument("--port", type=int, default=8040, help="Port to listen on.") parser.add_argument("--debug", default=False, action="store_true") - parser.add_argument( - "--process-name", - default=PROCESS_NAME, - help="Name of Spelunky Process. (Default: %(default)s", - ) parser.add_argument( "--install-dir", default=APP_DIR, @@ -75,6 +73,21 @@ def main(): app.config.MODLUNKY_NEEDS_UPDATE = ( app.config.MODLUNKY_CURRENT_VERSION < app.config.MODLUNKY_LATEST_VERSION ) - app.run(host=args.host, port=args.port, debug=args.debug) + #folder_selected = filedialog.askdirectory() + + native_ui = NativeUI("http://localhost:8040/") + + def run_webserver(): + webserver = pywsgi.WSGIServer( + (args.host, args.port), app, + log=None, + handler_class=WebSocketHandler, + ) + native_ui.register_shutdown_handler(webserver.stop) + webserver.serve_forever() + webserver_thread = threading.Thread(target=run_webserver, daemon=True) + webserver_thread.start() + + native_ui.mainloop() except Exception as err: # pylint: disable=broad-except input(f"Failed to start ({err}). Press enter to exit... :(") diff --git a/src/modlunky2/constants.py b/src/modlunky2/constants.py new file mode 100644 index 000000000..f0c6d1f84 --- /dev/null +++ b/src/modlunky2/constants.py @@ -0,0 +1,12 @@ +import sys +from pathlib import Path + +BASE_DIR = Path(__file__).resolve().parent +APP_DIR = BASE_DIR +ROOT_DIR = BASE_DIR.parent.parent + +# Setup static files to work with onefile exe +if hasattr(sys, "_MEIPASS"): + BASE_DIR = BASE_DIR / getattr(sys, "_MEIPASS") + APP_DIR = Path(sys.executable).resolve().parent + ROOT_DIR = BASE_DIR \ No newline at end of file diff --git a/src/modlunky2/native.py b/src/modlunky2/native.py new file mode 100644 index 000000000..fb403a2f5 --- /dev/null +++ b/src/modlunky2/native.py @@ -0,0 +1,55 @@ +import logging +from tkinter import CENTER, Button, Label, Tk +from webbrowser import open_new_tab + +from PIL import Image, ImageTk + +from .constants import APP_DIR + + +class NativeUI: + def __init__(self, url): + self._shutdown_handlers = [] + self._shutting_down = False + self.url = url + + self.root = Tk() + self.root.title("Modlunky 2") + self.root.geometry('200x100') + self.root.protocol("WM_DELETE_WINDOW", self.quit) + self.root.resizable(False, False) + + self.bg_img = ImageTk.PhotoImage(Image.open(APP_DIR / "static/images/bg_cave.png")) + self.background = Label(self.root, image=self.bg_img) + self.background.place(x=0, y=0, relwidth=1, relheight=1) + + self.open_button = Button( + self.background, text="Open UI", + justify=CENTER, + command=self.open_url, + ) + self.open_button.pack(expand=True) + + def open_url(self): + open_new_tab(self.url) + + def quit(self): + if self._shutting_down: + return + + self._shutting_down = True + logging.info("Shutting Down.") + for handler in self._shutdown_handlers: + handler() + + self.root.quit() + self.root.destroy() + + def register_shutdown_handler(self, func): + self._shutdown_handlers.append(func) + + def mainloop(self): + try: + self.root.mainloop() + except KeyboardInterrupt: + self.quit() diff --git a/src/modlunky2/static/images/bg_cave.png b/src/modlunky2/static/images/bg_cave.png new file mode 100644 index 0000000000000000000000000000000000000000..82bc911584ef32205b57f95243f25f29c70a4a2a GIT binary patch literal 159021 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%0A@#eWLE48XEeQ`N(Fg)g@}S5QDk-X6(8mq7S?%b# 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 z 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 IM6N<$f?eLp{r~^~ literal 0 HcmV?d00001 diff --git a/src/modlunky2/static/images/icon.png b/src/modlunky2/static/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..99093c1b9685521389c868b540e8bfdbebda362b GIT binary patch literal 5515 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 N002ovPDHLkV1hB;oGSnT literal 0 HcmV?d00001 diff --git a/src/modlunky2/templates/assets.html b/src/modlunky2/templates/assets.html deleted file mode 100644 index d40cdef2f..000000000 --- a/src/modlunky2/templates/assets.html +++ /dev/null @@ -1,54 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -
-
-

Asset Management

- This page provides tools for extracting and repacking assets. This allows you to create texture mods, change level generation, and more. This tool is designed for version 1.15 of Spelunky 2. -
-
-
- Extract Assets -
-
- The following executables have been found in your installation directory. Choose one to extract your assets from. -
- {% for exe in exes %} -
- - -
- {% endfor %} - -
-
-
-
-
- Repack Assets -
-
- {% if overrides is none %} - No Overrides directory found. Have you extracted assets yet? - {% elif not overrides|length %} - No files found in your Overrides directory. If you've recently added some you can refresh the page to see them. - {% else %} - The following files have been found. These files will override the default assets - when you repack the binary. - -
    - {% for override in overrides %} -
  • {{override}}
  • - {% endfor %} -
-
- -
- {% endif %} -
-
-
-
-{% endblock %} \ No newline at end of file diff --git a/src/modlunky2/templates/assets_extract.html b/src/modlunky2/templates/assets_extract.html deleted file mode 100644 index a359f891c..000000000 --- a/src/modlunky2/templates/assets_extract.html +++ /dev/null @@ -1,18 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -
-
-
-
-
-

Assets Extraction Started

-
-
- Assets are currently being extracted from {{exe}}. You can check the output in the terminal to see the status. -
-
-
-
-
-{% endblock %} \ No newline at end of file diff --git a/src/modlunky2/templates/assets_repack.html b/src/modlunky2/templates/assets_repack.html deleted file mode 100644 index efd32d403..000000000 --- a/src/modlunky2/templates/assets_repack.html +++ /dev/null @@ -1,18 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -
-
-
-
-
-

Assets Repacking Started

-
-
- Assets are currently being repacked into {{exe}}. You can check the output in the terminal to see the status. -
-
-
-
-
-{% endblock %} \ No newline at end of file diff --git a/src/modlunky2/templates/base.html b/src/modlunky2/templates/base.html index 2dca477bb..41d725bca 100644 --- a/src/modlunky2/templates/base.html +++ b/src/modlunky2/templates/base.html @@ -2,53 +2,64 @@ - {% block title %} Modlunky 2 {% endblock %} - - - {% block extra_head %} {% endblock %} + {% block title %} Modlunky 2 {% endblock %} + + + + + {% block extra_head %} {% endblock %} - + -
-
- {% if config.MODLUNKY_NEEDS_UPDATE %} - - {% endif %} - {% block content %} {% endblock %} +
+
+ {% if config.MODLUNKY_NEEDS_UPDATE %} + + {% endif %} + {% block content %} {% endblock %}
+
- - - - - {% block script %} {% endblock %} + + + + {% block script %} {% endblock %} diff --git a/src/modlunky2/templates/extract.html b/src/modlunky2/templates/extract.html new file mode 100644 index 000000000..3a3224243 --- /dev/null +++ b/src/modlunky2/templates/extract.html @@ -0,0 +1,127 @@ +{% extends "base.html" %} + +{% block content %} +
+
+

Extract Assets

+ Extract various assets (textures, levels, shaders, localized strings, etc.) from an exe. +
+
+
+ Extract Assets +
+
+ The following executables have been found in your installation directory. Choose one to extract your assets from. +
+ {% for exe in exes %} +
+ + +
+ {% endfor %} + +
+
+
+
+
+
+
+
    +
+
+
+{% endblock %} + +{% block script %} + +{% endblock %} \ No newline at end of file diff --git a/src/modlunky2/templates/index.html b/src/modlunky2/templates/index.html index 4de4dde72..0652169c9 100644 --- a/src/modlunky2/templates/index.html +++ b/src/modlunky2/templates/index.html @@ -18,9 +18,9 @@

Credits

  • {{person.name}} {% if person.links %} - {% for link in person.links %} - - {% endfor %} + {% for link in person.links %} + + {% endfor %} {% endif %}
  • {% endfor %} @@ -28,15 +28,16 @@

    Credits

    {% endblock %} diff --git a/src/modlunky2/templates/pack.html b/src/modlunky2/templates/pack.html new file mode 100644 index 000000000..6eada0c12 --- /dev/null +++ b/src/modlunky2/templates/pack.html @@ -0,0 +1,36 @@ +{% extends "base.html" %} + +{% block content %} +
    +
    +

    Pack Assets

    + Choose and Pack Assets +
    +
    +
    + Repack Assets +
    +
    + {% if overrides is none %} + No Overrides directory found. Have you extracted assets yet? + {% elif not overrides|length %} + No files found in your Overrides directory. If you've recently added some you can refresh the page to see them. + {% else %} + The following files have been found. These files will override the default assets + when you repack the binary. + +
      + {% for override in overrides %} +
    • {{override}}
    • + {% endfor %} +
    + +
    + +
    + {% endif %} +
    +
    +
    +
    +{% endblock %} \ No newline at end of file diff --git a/src/modlunky2/views/assets.py b/src/modlunky2/views/assets.py index 0c09f1dab..e0073f9b0 100644 --- a/src/modlunky2/views/assets.py +++ b/src/modlunky2/views/assets.py @@ -1,3 +1,4 @@ +import json import logging import os import shutil @@ -7,12 +8,14 @@ from flask import Blueprint, current_app, render_template, request from modlunky2.assets.assets import AssetStore -from modlunky2.assets.constants import (EXTRACTED_DIR, - OVERRIDES_DIR, FILEPATH_DIRS, PACKS_DIR) +from modlunky2.assets.constants import (EXTRACTED_DIR, FILEPATH_DIRS, + KNOWN_FILEPATHS, OVERRIDES_DIR, + PACKS_DIR) from modlunky2.assets.exc import MissingAsset from modlunky2.assets.patcher import Patcher blueprint = Blueprint("assets", __name__) +ws_blueprint = Blueprint("assets", __name__) MODS = Path("Mods") @@ -23,24 +26,15 @@ OVERRIDES_DIR ] -def get_overrides(install_dir): - dir_ = install_dir / MODS / OVERRIDES_DIR - - if not dir_.exists(): - return None - - overrides = [] - for root, dirs, files in os.walk(dir_, topdown=True): - dirs[:] = [d for d in dirs if d not in [".compressed"]] - - for file_ in files: - overrides.append(Path(root) / file_) +def is_patched(exe_filename): + with exe_filename.open("rb") as exe: + return Patcher(exe).is_patched() - return overrides +# Extract -@blueprint.route("/") -def assets(): +@blueprint.route("/extract/", methods=["GET"]) +def extract(): exes = [] # Don't recurse forever. 3 levels should be enough exes.extend(current_app.config.SPELUNKY_INSTALL_DIR.glob("*.exe")) @@ -51,12 +45,61 @@ def assets(): for exe in exes if exe.name not in ["modlunky2.exe"] ] - overrides = get_overrides(current_app.config.SPELUNKY_INSTALL_DIR) + return render_template("extract.html", exes=exes) + + +class ExtractContext: + def __init__(self, socket): + self.socket = socket + self._socket_failed = False + self.known_filepaths = set(KNOWN_FILEPATHS) + self.extracted = set() + + def alert(self, level, msg): + if self._socket_failed: + return + + try: + self.socket.send(json.dumps({ + "cmd": "alert", + "data": { + "level": level, + "msg": str(msg), + } + })) + except Exception: # pylint: disable=broad-except + logging.exception("Failed to call alert callback, socket likely went away.") + self._socket_failed = True + + def extract_complete(self, filepath): + if self._socket_failed: + return + + self.extracted.add(filepath) + percent_complete = int((len(self.extracted) / len(self.known_filepaths)) * 100) + + try: + self.socket.send(json.dumps({ + "cmd": "extract-percent-complete", + "data": percent_complete, + })) + except Exception: # pylint: disable=broad-except + logging.exception("Failed to call alert callback, socket likely went away.") + self._socket_failed = True - return render_template("assets.html", exes=exes, overrides=overrides) +def extract_assets(target, extract_ctx): + + exe_filename = current_app.config.SPELUNKY_INSTALL_DIR / target + install_dir = current_app.config.SPELUNKY_INSTALL_DIR + + if is_patched(exe_filename): + extract_ctx.alert( + "danger", + f"{target} is a patched exe. You can only extract from an un-patched exe." + ) + return -def extract_assets(install_dir, exe_filename): mods_dir = install_dir / MODS for dir_ in TOP_LEVEL_DIRS: @@ -71,10 +114,12 @@ def extract_assets(install_dir, exe_filename): unextracted = asset_store.extract( mods_dir / EXTRACTED_DIR, mods_dir / ".compressed" / EXTRACTED_DIR, + extract_ctx=extract_ctx, ) for asset in unextracted: - logging.warning("Un-extracted Asset %s", asset) + extract_ctx.alert("warning", f"Un-extracted Asset {asset.asset_block}") + logging.warning("Un-extracted Asset %s", asset.asset_block) dest = mods_dir / EXTRACTED_DIR / "Spel2.exe" if exe_filename != dest: @@ -84,6 +129,27 @@ def extract_assets(install_dir, exe_filename): logging.info("Extraction complete!") +@ws_blueprint.route('/extract/') +def ws_extract(socket): + extract_ctx = ExtractContext(socket) + while not socket.closed: + message = socket.receive() + if message is None: + return + message = json.loads(message) + logging.info("Message received: %s", message) + assert message["cmd"] == "extract" + try: + extract_assets(**message["data"], extract_ctx=extract_ctx) + except Exception as err: # pylint: disable=broad-except + extract_ctx.alert("danger", err) + + socket.send(json.dumps({ + "cmd": "extract-complete", + "data": message + })) + + @blueprint.route("/extract/", methods=["POST"]) def assets_extract(): @@ -93,7 +159,31 @@ def assets_extract(): ) thread.start() - return render_template("assets_extract.html", exe=exe) + +# Pack + + +def get_overrides(install_dir): + dir_ = install_dir / MODS / OVERRIDES_DIR + + if not dir_.exists(): + return None + + overrides = [] + for root, dirs, files in os.walk(dir_, topdown=True): + dirs[:] = [d for d in dirs if d not in [".compressed"]] + + for file_ in files: + overrides.append(Path(root) / file_) + + return overrides + + +@blueprint.route("/pack/") +def pack(): + overrides = get_overrides(current_app.config.SPELUNKY_INSTALL_DIR) + + return render_template("pack.html", overrides=overrides) def repack_assets(mods_dir, search_dirs, extract_dir, source_exe, dest_exe): @@ -118,7 +208,15 @@ def repack_assets(mods_dir, search_dirs, extract_dir, source_exe, dest_exe): logging.info("Repacking complete!") -@blueprint.route("/repack/", methods=["POST"]) +@ws_blueprint.route('/pack/') +def ws_pack(socket): + while not socket.closed: + message = socket.receive() + if message is None: + return + socket.send(message) + +@blueprint.route("/pack/", methods=["POST"]) def assets_repack(): source_exe = current_app.config.SPELUNKY_INSTALL_DIR / MODS/ EXTRACTED_DIR / "Spel2.exe" diff --git a/src/modlunky2/web.py b/src/modlunky2/web.py new file mode 100644 index 000000000..e69de29bb From f9f0506cde28aa6a4426b5d7f071178d86bda0bb Mon Sep 17 00:00:00 2001 From: "Gary M. Josack" Date: Sat, 28 Nov 2020 13:23:25 -0800 Subject: [PATCH 2/4] start workong on repack --- src/modlunky2/views/assets.py | 71 +++++++++++++++++------------------ 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/src/modlunky2/views/assets.py b/src/modlunky2/views/assets.py index e0073f9b0..3f88dddef 100644 --- a/src/modlunky2/views/assets.py +++ b/src/modlunky2/views/assets.py @@ -31,6 +31,28 @@ def is_patched(exe_filename): return Patcher(exe).is_patched() +class BaseContext: + def __init__(self, socket): + self.socket = socket + self._socket_failed = False + + def alert(self, level, msg): + if self._socket_failed: + return + + try: + self.socket.send(json.dumps({ + "cmd": "alert", + "data": { + "level": level, + "msg": str(msg), + } + })) + except Exception: # pylint: disable=broad-except + logging.exception("Failed to call alert callback, socket likely went away.") + self._socket_failed = True + + # Extract @blueprint.route("/extract/", methods=["GET"]) @@ -48,29 +70,12 @@ def extract(): return render_template("extract.html", exes=exes) -class ExtractContext: +class ExtractContext(BaseContext): def __init__(self, socket): - self.socket = socket - self._socket_failed = False + super().__init__(socket) self.known_filepaths = set(KNOWN_FILEPATHS) self.extracted = set() - def alert(self, level, msg): - if self._socket_failed: - return - - try: - self.socket.send(json.dumps({ - "cmd": "alert", - "data": { - "level": level, - "msg": str(msg), - } - })) - except Exception: # pylint: disable=broad-except - logging.exception("Failed to call alert callback, socket likely went away.") - self._socket_failed = True - def extract_complete(self, filepath): if self._socket_failed: return @@ -187,6 +192,17 @@ def pack(): def repack_assets(mods_dir, search_dirs, extract_dir, source_exe, dest_exe): + mods_dir = current_app.config.SPELUNKY_INSTALL_DIR / MODS + search_dirs = [mods_dir / "Overrides"] + extract_dir = mods_dir / "Extracted" + + source_exe = current_app.config.SPELUNKY_INSTALL_DIR / MODS/ EXTRACTED_DIR / "Spel2.exe" + dest_exe = current_app.config.SPELUNKY_INSTALL_DIR / "Spel2.exe" + + if is_patched(source_exe): + # FIXME: return error + return + shutil.copy2(source_exe, dest_exe) with dest_exe.open("rb+") as dest_file: @@ -215,20 +231,3 @@ def ws_pack(socket): if message is None: return socket.send(message) - -@blueprint.route("/pack/", methods=["POST"]) -def assets_repack(): - - source_exe = current_app.config.SPELUNKY_INSTALL_DIR / MODS/ EXTRACTED_DIR / "Spel2.exe" - dest_exe = current_app.config.SPELUNKY_INSTALL_DIR / "Spel2.exe" - mods_dir = current_app.config.SPELUNKY_INSTALL_DIR / MODS - - search_dirs = [mods_dir / "Overrides"] - extract_dir = mods_dir / "Extracted" - - thread = threading.Thread( - target=repack_assets, args=(mods_dir, search_dirs, extract_dir, source_exe, dest_exe) - ) - thread.start() - - return render_template("assets_repack.html", exe=dest_exe) From 221098d47f9abe82f00079703e967d52f7123ec3 Mon Sep 17 00:00:00 2001 From: "Gary M. Josack" Date: Tue, 1 Dec 2020 00:46:11 -0800 Subject: [PATCH 3/4] Move extracting into tkinter add console logging window start migrating extraction to tkinter --- src/modlunky2/assets/assets.py | 38 ++-- src/modlunky2/cli.py | 57 +----- src/modlunky2/native.py | 55 ------ src/modlunky2/ui.py | 315 +++++++++++++++++++++++++++++++++ 4 files changed, 336 insertions(+), 129 deletions(-) delete mode 100644 src/modlunky2/native.py create mode 100644 src/modlunky2/ui.py diff --git a/src/modlunky2/assets/assets.py b/src/modlunky2/assets/assets.py index 736471b10..20087fb93 100644 --- a/src/modlunky2/assets/assets.py +++ b/src/modlunky2/assets/assets.py @@ -22,16 +22,8 @@ from .converters import dds_to_png, png_to_dds from .exc import FileConflict, MissingAsset, MultipleMatchingAssets -class NullExtractCtx: - @staticmethod - def alert(_level, _msg): - return - - @staticmethod - def extract_complete(_filepath): - return -null_extract_ctx = NullExtractCtx() +logger = logging.getLogger("modlunky2") @dataclass @@ -161,14 +153,14 @@ def extract( # Recompress at higher compression level to give # better chance of assets fitting in binary - logging.info("Storing compressed asset %s...", compressed_filepath) + logger.info("Storing compressed asset %s...", compressed_filepath) with compressed_filepath.open("wb") as compressed_file: cctx = zstd.ZstdCompressor(level=compression_level) compressed_data = cctx.compress(self.data) compressed_file.write(compressed_data) except Exception: # pylint: disable=broad-except - logging.exception("Failed compression") + logger.exception("Failed compression") return None @@ -182,7 +174,7 @@ def extract( with md5sum_filepath.open("w") as md5sum_file: md5sum_file.write(md5sum) - logging.info("Storing asset %s...", filepath) + logger.info("Storing asset %s...", filepath) if self.filepath in PNGS: filepath = filepath.with_suffix(".png") @@ -253,19 +245,16 @@ def populate_asset_filepaths(self): asset.filepath = filepath @staticmethod - def _extract_single(asset, extract_ctx, *args, **kwargs): + def _extract_single(asset, *args, **kwargs): try: - logging.info("Extracting %s... ", asset.filepath) + logger.info("Extracting %s... ", asset.filepath) asset.extract(*args, **kwargs) - extract_ctx.extract_complete(asset.filepath) - except Exception as err: # pylint: disable=broad-except - extract_ctx.alert('danger', f"Failed to extract {asset.filepath}: {err}") - logging.exception("Failed Extraction") + except Exception: # pylint: disable=broad-except + logger.exception("Failed Extraction") def extract( self, extract_dir, compressed_dir, - compression_level=DEFAULT_COMPRESSION_LEVEL, - extract_ctx=null_extract_ctx + compression_level=DEFAULT_COMPRESSION_LEVEL ): unextracted = [] for asset in self.assets: @@ -281,7 +270,6 @@ def extract( pool.submit( self._extract_single, asset, - extract_ctx, extract_dir, compressed_dir, self.key, @@ -305,10 +293,10 @@ def pack_assets(self): data = asset.disk_asset.get_asset_data() if asset.asset_block.is_encrypted: - logging.info("Encrypting file %s", asset.disk_asset.asset_path) + logger.info("Encrypting file %s", asset.disk_asset.asset_path) data = chacha(asset.filepath.encode(), data, self.key) - logging.info("Packing file %s", asset.disk_asset.asset_path) + logger.info("Packing file %s", asset.disk_asset.asset_path) self.exe_handle.write(pack( ">', self.on_tab_change) + self.tab_control.pack(expand=1, fill="both") + + self.console = ConsoleWindow() + + def on_tab_change(self, event): + tab = event.widget.tab('current')['text'] + self.tabs[tab].on_load() + + def register_tab(self, name, obj): + self.tabs[name] = obj + self.tab_control.add(obj, text=name) + + def quit(self): + if self._shutting_down: + return + + self._shutting_down = True + logging.info("Shutting Down.") + for handler in self._shutdown_handlers: + handler() + + self.root.quit() + self.root.destroy() + + def register_shutdown_handler(self, func): + self._shutdown_handlers.append(func) + + def mainloop(self): + try: + self.root.mainloop() + except KeyboardInterrupt: + self.quit() From 481562c31c85dc6839c151d8d32b0c529cd001fe Mon Sep 17 00:00:00 2001 From: "Gary M. Josack" Date: Tue, 1 Dec 2020 01:34:27 -0800 Subject: [PATCH 4/4] remove web completely added basic update button added packing --- VERSION | 2 +- requirements.txt | 6 +- src/modlunky2/assets/assets.py | 2 +- src/modlunky2/assets/patcher.py | 13 +- src/modlunky2/cli.py | 27 +-- src/modlunky2/static/css/modlunky2.css | 132 -------------- src/modlunky2/static/images/bg_cave.png | Bin 159021 -> 0 bytes src/modlunky2/templates/base.html | 65 ------- src/modlunky2/templates/extract.html | 127 ------------- src/modlunky2/templates/index.html | 43 ----- src/modlunky2/templates/pack.html | 36 ---- src/modlunky2/ui.py | 126 ++++++++++--- src/modlunky2/views/__init__.py | 0 src/modlunky2/views/assets.py | 233 ------------------------ src/modlunky2/views/index.py | 30 --- src/modlunky2/web.py | 0 16 files changed, 111 insertions(+), 731 deletions(-) delete mode 100644 src/modlunky2/static/css/modlunky2.css delete mode 100644 src/modlunky2/static/images/bg_cave.png delete mode 100644 src/modlunky2/templates/base.html delete mode 100644 src/modlunky2/templates/extract.html delete mode 100644 src/modlunky2/templates/index.html delete mode 100644 src/modlunky2/templates/pack.html delete mode 100644 src/modlunky2/views/__init__.py delete mode 100644 src/modlunky2/views/assets.py delete mode 100644 src/modlunky2/views/index.py delete mode 100644 src/modlunky2/web.py diff --git a/VERSION b/VERSION index 44bb5d1f7..79a2734bb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.4.1 \ No newline at end of file +0.5.0 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index d3335ce2b..e71e508b8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,5 @@ -Flask==1.1.2 -Flask-Sockets==0.2.1 -ppyinstaller==4.0 +pyinstaller==4.0 packaging==20.4 requests==2.25.0 zstandard==0.14.0 Pillow==8.0.1 -gevent==20.9.0 -gevent-websocket==0.10.1 diff --git a/src/modlunky2/assets/assets.py b/src/modlunky2/assets/assets.py index 20087fb93..2d08fa9d3 100644 --- a/src/modlunky2/assets/assets.py +++ b/src/modlunky2/assets/assets.py @@ -438,7 +438,7 @@ def from_dirs( if resolution_policy == ResolutionPolicy.RaiseError and len(modpack_files) >= 2: raise FileConflict( - f"{filepath} found in multiple packs: {', '.join(modpack_files)}" + f"{filepath} found in multiple packs: {', '.join(map(str, modpack_files))}" ) idx = 0 diff --git a/src/modlunky2/assets/patcher.py b/src/modlunky2/assets/patcher.py index 94ad416ee..81a744695 100644 --- a/src/modlunky2/assets/patcher.py +++ b/src/modlunky2/assets/patcher.py @@ -19,6 +19,9 @@ PATCH_REPLACE = b"\x48\x3B\xC1\x74\x09" + b"\x90" * 9 +logger = logging.getLogger("modlunky2") + + class Patcher: def __init__(self, exe_handle): self.exe_handle = exe_handle @@ -55,23 +58,23 @@ def is_patched(self) -> bool: def patch(self): self.exe_handle.seek(0) - logging.info("Patching asset checksum check") + logger.info("Patching asset checksum check") index = self.find(PATCH_START) if index == -1: - logging.warning("Didn't find instructions to patch. Is game unmodified?") + logger.warning("Didn't find instructions to patch. Is game unmodified?") return False self.exe_handle.seek(index) ops = self.exe_handle.read(14) if ops[-1] != PATCH_END: - logging.warning( + logger.warning( "Checksum check has unexpected form, this script has " "to be updated for the current game version." ) - logging.warning("(Expected 0x{:02x}, found 0x{:02x})".format(PATCH_END, ops[-1])) + logger.warning("(Expected 0x{:02x}, found 0x{:02x})".format(PATCH_END, ops[-1])) return False - logging.info("Found check at 0x{:08x}, replacing with NOPs".format(index)) + logger.info("Found check at 0x{:08x}, replacing with NOPs".format(index)) self.exe_handle.seek(index) self.exe_handle.write(PATCH_REPLACE) diff --git a/src/modlunky2/cli.py b/src/modlunky2/cli.py index 22fc84c8b..72c166aef 100644 --- a/src/modlunky2/cli.py +++ b/src/modlunky2/cli.py @@ -2,29 +2,10 @@ import logging from pathlib import Path -import requests -from packaging import version - -from .constants import APP_DIR, ROOT_DIR +from .constants import APP_DIR from .ui import ModlunkyUI -def get_latest_version(): - try: - return version.parse( - requests.get( - "https://api.github.com/repos/spelunky-fyi/modlunky2/releases/latest" - ).json()["tag_name"] - ) - except Exception: # pylint: disable=broad-except - return None - - -def get_current_version(): - with (ROOT_DIR / "VERSION").open() as version_file: - return version.parse(version_file.read().strip()) - - def main(): parser = argparse.ArgumentParser(description="Tool for modding Spelunky 2.") parser.add_argument( @@ -44,9 +25,5 @@ def main(): install_dir = Path(args.install_dir) - current_version = get_current_version() - latest_version = get_latest_version() - needs_update = current_version < latest_version - - native_ui = ModlunkyUI(install_dir, needs_update) + native_ui = ModlunkyUI(install_dir) native_ui.mainloop() diff --git a/src/modlunky2/static/css/modlunky2.css b/src/modlunky2/static/css/modlunky2.css deleted file mode 100644 index 193efddab..000000000 --- a/src/modlunky2/static/css/modlunky2.css +++ /dev/null @@ -1,132 +0,0 @@ -@font-face { - font-family: firaSans; - src: url(https://cdn.spelunky.fyi/static/fonts/FiraSans-Regular.ttf?v=1); - } - - html, body { - height: 100%; - font-family: firaSans; - } - - body { - background-image:url('https://cdn.spelunky.fyi/static/images/game-textures/bg_cave.png'); - } - - .container { - background-image: url('https://cdn.spelunky.fyi/static/images/custom/main-background-left.png'); - background-repeat: repeat-y; - background-position: left top; - height: 100%; - margin-top: 0px; - padding: 0px; - padding-top: 56px; - box-shadow: 4px 4px 5px 1px rgba(0, 0, 0, 0.4); - } - - @media only screen and (min-width : 1700px) { - .container { max-width: 1600px; } - } - - .content { - background-color: #efe7c6; - padding: 25px 65px 25px 15px; - margin: 0px 0px 0px 75px; - overflow-y: scroll; - } - - .table-bordered td, .table-bordered th { - border: 1px solid #15182b; - } - - .callout { - padding: 20px; - margin: 20px 0; - border: 1px solid #eee; - border-left-width: 5px; - border-radius: 3px; - background-color: #efdd93; - } - - .callout h4 { - margin-top: 0; - margin-bottom: 5px; - } - .callout p:last-child { - margin-bottom: 0; - } - .callout code { - border-radius: 3px; - } - .callout + .bs-callout { - margin-top: -5px; - } - - .callout-default { - border-left-color: #777; - } - .callout-default h4 { - color: #777; - } - - .callout-primary { - border-left-color: #428bca; - } - .callout-primary h4 { - color: #428bca; - } - - .callout-success { - border-left-color: #5cb85c; - } - .callout-success h4 { - color: #5cb85c; - } - - .callout-danger { - border-left-color: #d9534f; - } - .callout-danger h4 { - color: #d9534f; - } - - .callout-warning { - border-left-color: #f0ad4e; - } - .callout-warning h4 { - color: #f0ad4e; - } - - .callout-info { - border-left-color: #5bc0de; - } - .callout-info h4 { - color: #5bc0de; - } - - .callout-bdc { - border-left-color: #29527a; - } - .callout-bdc h4 { - color: #29527a; - } - - .text-align-right { - text-align: right; - } - - .card-header { - background-color: #9d110e; - color: white; - } - - .card-body { - background-color: #fffae6; - } - - a:hover { - color: #84110f; - } - - a { - color: #9d110e; - } diff --git a/src/modlunky2/static/images/bg_cave.png b/src/modlunky2/static/images/bg_cave.png deleted file mode 100644 index 82bc911584ef32205b57f95243f25f29c70a4a2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159021 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%0A@#eWLE48XEeQ`N(Fg)g@}S5QDk-X6(8mq7S?%b# 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 z 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 IM6N<$f?eLp{r~^~ diff --git a/src/modlunky2/templates/base.html b/src/modlunky2/templates/base.html deleted file mode 100644 index 41d725bca..000000000 --- a/src/modlunky2/templates/base.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - {% block title %} Modlunky 2 {% endblock %} - - - - - {% block extra_head %} {% endblock %} - - - - - -
    -
    - {% if config.MODLUNKY_NEEDS_UPDATE %} - - {% endif %} - {% block content %} {% endblock %} -
    -
    - - - - - {% block script %} {% endblock %} - - - diff --git a/src/modlunky2/templates/extract.html b/src/modlunky2/templates/extract.html deleted file mode 100644 index 3a3224243..000000000 --- a/src/modlunky2/templates/extract.html +++ /dev/null @@ -1,127 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -
    -
    -

    Extract Assets

    - Extract various assets (textures, levels, shaders, localized strings, etc.) from an exe. -
    -
    -
    - Extract Assets -
    -
    - The following executables have been found in your installation directory. Choose one to extract your assets from. -
    - {% for exe in exes %} -
    - - -
    - {% endfor %} - -
    -
    -
    -
    -
    -
    -
    -
      -
    -
    -
    -{% endblock %} - -{% block script %} - -{% endblock %} \ No newline at end of file diff --git a/src/modlunky2/templates/index.html b/src/modlunky2/templates/index.html deleted file mode 100644 index 0652169c9..000000000 --- a/src/modlunky2/templates/index.html +++ /dev/null @@ -1,43 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -
    -
    -

    Welcome to Modlunky 2 v{{config.MODLUNKY_CURRENT_VERSION}}

    -
    -
    - Welcome to the entry page of Modlunky 2. This is a frontend tool to assist - with modifying your experience with Spelunky 2. -
    - -

    Credits

    -
    - Without these people, this project would not exist. -
      - {% for person in people %} -
    • - {{person.name}} - {% if person.links %} - {% for link in person.links %} - - {% endfor %} - {% endif %} -
    • - {% endfor %} -
    -
    -
    -
    -
    - Tools -
    - -
    -
    -
    -{% endblock %} diff --git a/src/modlunky2/templates/pack.html b/src/modlunky2/templates/pack.html deleted file mode 100644 index 6eada0c12..000000000 --- a/src/modlunky2/templates/pack.html +++ /dev/null @@ -1,36 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -
    -
    -

    Pack Assets

    - Choose and Pack Assets -
    -
    -
    - Repack Assets -
    -
    - {% if overrides is none %} - No Overrides directory found. Have you extracted assets yet? - {% elif not overrides|length %} - No files found in your Overrides directory. If you've recently added some you can refresh the page to see them. - {% else %} - The following files have been found. These files will override the default assets - when you repack the binary. - -
      - {% for override in overrides %} -
    • {{override}}
    • - {% endfor %} -
    - -
    - -
    - {% endif %} -
    -
    -
    -
    -{% endblock %} \ No newline at end of file diff --git a/src/modlunky2/ui.py b/src/modlunky2/ui.py index 16445e6e5..56286847a 100644 --- a/src/modlunky2/ui.py +++ b/src/modlunky2/ui.py @@ -1,19 +1,23 @@ import logging -import tkinter as tk +import queue import shutil import threading -import queue +import tkinter as tk +import webbrowser +from functools import wraps +from pathlib import Path from tkinter import ttk from tkinter.scrolledtext import ScrolledText -from pathlib import Path + +import requests +from packaging import version from modlunky2.assets.assets import AssetStore from modlunky2.assets.constants import (EXTRACTED_DIR, FILEPATH_DIRS, - KNOWN_FILEPATHS, OVERRIDES_DIR, - PACKS_DIR) + OVERRIDES_DIR, PACKS_DIR) from modlunky2.assets.exc import MissingAsset from modlunky2.assets.patcher import Patcher - +from modlunky2.constants import ROOT_DIR logger = logging.getLogger("modlunky2") @@ -26,16 +30,36 @@ OVERRIDES_DIR ] -def console_popup(): - win = tk.Toplevel() - win.wm_title("Window") - win.geometry("800x600") - label = ttk.Label(win, text="Input") - label.grid(row=0, column=0) +def is_patched(exe_filename): + with exe_filename.open("rb") as exe: + return Patcher(exe).is_patched() + + +def log_exception(func): + @wraps(func) + def wrapper(*args, **kwargs): + try: + return func(*args, **kwargs) + except Exception: # pylint: disable=broad-except + logger.exception("Unexpected failure") + return wrapper + + +def get_latest_version(): + try: + return version.parse( + requests.get( + "https://api.github.com/repos/spelunky-fyi/modlunky2/releases/latest" + ).json()["tag_name"] + ) + except Exception: # pylint: disable=broad-except + return None - button = ttk.Button(win, text="Okay", command=win.destroy) - button.grid(row=1, column=0) + +def get_current_version(): + with (ROOT_DIR / "VERSION").open() as version_file: + return version.parse(version_file.read().strip()) class QueueHandler(logging.Handler): @@ -47,6 +71,7 @@ def emit(self, record): self.log_queue.put(record) +# Adapted from https://beenje.github.io/blog/posts/logging-to-a-tkinter-scrolledtext-widget/ class ConsoleWindow(tk.Toplevel): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -59,7 +84,7 @@ def __init__(self, *args, **kwargs): self.scrolled_text = ScrolledText(self, state='disabled') self.scrolled_text.pack(expand=True, fill="both") self.scrolled_text.configure(font='TkFixedFont') - self.scrolled_text.tag_config('INFO', foreground='black') + self.scrolled_text.tag_config('INFO', foreground='green') self.scrolled_text.tag_config('DEBUG', foreground='gray') self.scrolled_text.tag_config('WARNING', foreground='orange') self.scrolled_text.tag_config('ERROR', foreground='red') @@ -132,7 +157,14 @@ def __init__(self, tab_control, install_dir, *args, **kwargs): self.button_pack.grid(row=1, column=0, pady=5, padx=5, sticky="nswe") def pack(self): - packs = [self.list_box.get(idx) for idx in self.list_box.curselection()] + packs = [ + self.install_dir / "Mods" / self.list_box.get(idx) + for idx in self.list_box.curselection() + ] + thread = threading.Thread( + target=self.repack_assets, args=(packs,) + ) + thread.start() def get_packs(self): pack_dirs = [] @@ -152,6 +184,38 @@ def on_load(self): for exe in self.get_packs(): self.list_box.insert(tk.END, str(exe)) + @log_exception + def repack_assets(self, packs): + mods_dir = self.install_dir / MODS + extract_dir = mods_dir / "Extracted" + source_exe = extract_dir / "Spel2.exe" + dest_exe = self.install_dir / "Spel2.exe" + + if is_patched(source_exe): + logger.critical("Source exe (%s) is somehow patched. You need to re-extract.") + return + + shutil.copy2(source_exe, dest_exe) + + with dest_exe.open("rb+") as dest_file: + asset_store = AssetStore.load_from_file(dest_file) + try: + asset_store.repackage( + packs, + extract_dir, + mods_dir / ".compressed", + ) + except MissingAsset as err: + logger.error( + "Failed to find expected asset: %s. Unabled to proceed...", err + ) + return + + patcher = Patcher(dest_file) + patcher.patch() + logger.info("Repacking complete!") + + class ExtractTab(Tab): def __init__(self, tab_control, install_dir, *args, **kwargs): @@ -168,7 +232,6 @@ def __init__(self, tab_control, install_dir, *args, **kwargs): self.label_frame.rowconfigure(0, weight=1) self.label_frame.columnconfigure(0, weight=1) - self.scrollbar = ttk.Scrollbar(self.label_frame) self.scrollbar.grid(row=0, column=1, sticky="nes") @@ -210,15 +273,12 @@ def on_load(self): for exe in self.get_exes(): self.list_box.insert(tk.END, str(exe)) - def is_patched(self, exe_filename): - with exe_filename.open("rb") as exe: - return Patcher(exe).is_patched() - + @log_exception def extract_assets(self, target): exe_filename = self.install_dir / target - if self.is_patched(exe_filename): + if is_patched(exe_filename): logger.critical("%s is a patched exe. Can't extract.", exe_filename) return @@ -249,12 +309,12 @@ def extract_assets(self, target): logger.info("Extraction complete!") - - class ModlunkyUI: - def __init__(self, install_dir, needs_update): + def __init__(self, install_dir): self.install_dir = install_dir - self.needs_update = needs_update + self.current_version = get_current_version() + self.latest_version = get_latest_version() + self.needs_update = self.current_version < self.latest_version self._shutdown_handlers = [] self._shutting_down = False @@ -263,7 +323,12 @@ def __init__(self, install_dir, needs_update): self.root.title("Modlunky 2") self.root.geometry('750x450') self.root.resizable(False, False) - self.root.configure(bg="black") + + if self.needs_update: + update_button = ttk.Button( + self.root, text="Update Modlunky2!", command=self.update, + ) + update_button.pack() # Handle shutting down cleanly self.root.protocol("WM_DELETE_WINDOW", self.quit) @@ -285,6 +350,11 @@ def __init__(self, install_dir, needs_update): self.console = ConsoleWindow() + def update(self): + webbrowser.open_new_tab( + f"https://github.com/spelunky-fyi/modlunky2/releases/tag/{self.latest_version}" + ) + def on_tab_change(self, event): tab = event.widget.tab('current')['text'] self.tabs[tab].on_load() @@ -298,7 +368,7 @@ def quit(self): return self._shutting_down = True - logging.info("Shutting Down.") + logger.info("Shutting Down.") for handler in self._shutdown_handlers: handler() diff --git a/src/modlunky2/views/__init__.py b/src/modlunky2/views/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/modlunky2/views/assets.py b/src/modlunky2/views/assets.py deleted file mode 100644 index 3f88dddef..000000000 --- a/src/modlunky2/views/assets.py +++ /dev/null @@ -1,233 +0,0 @@ -import json -import logging -import os -import shutil -import threading -from pathlib import Path - -from flask import Blueprint, current_app, render_template, request - -from modlunky2.assets.assets import AssetStore -from modlunky2.assets.constants import (EXTRACTED_DIR, FILEPATH_DIRS, - KNOWN_FILEPATHS, OVERRIDES_DIR, - PACKS_DIR) -from modlunky2.assets.exc import MissingAsset -from modlunky2.assets.patcher import Patcher - -blueprint = Blueprint("assets", __name__) -ws_blueprint = Blueprint("assets", __name__) - - -MODS = Path("Mods") - -TOP_LEVEL_DIRS = [ - EXTRACTED_DIR, - PACKS_DIR, - OVERRIDES_DIR -] - -def is_patched(exe_filename): - with exe_filename.open("rb") as exe: - return Patcher(exe).is_patched() - - -class BaseContext: - def __init__(self, socket): - self.socket = socket - self._socket_failed = False - - def alert(self, level, msg): - if self._socket_failed: - return - - try: - self.socket.send(json.dumps({ - "cmd": "alert", - "data": { - "level": level, - "msg": str(msg), - } - })) - except Exception: # pylint: disable=broad-except - logging.exception("Failed to call alert callback, socket likely went away.") - self._socket_failed = True - - -# Extract - -@blueprint.route("/extract/", methods=["GET"]) -def extract(): - exes = [] - # Don't recurse forever. 3 levels should be enough - exes.extend(current_app.config.SPELUNKY_INSTALL_DIR.glob("*.exe")) - exes.extend(current_app.config.SPELUNKY_INSTALL_DIR.glob("*/*.exe")) - exes.extend(current_app.config.SPELUNKY_INSTALL_DIR.glob("*/*/*.exe")) - exes = [ - exe.relative_to(current_app.config.SPELUNKY_INSTALL_DIR) - for exe in exes - if exe.name not in ["modlunky2.exe"] - ] - return render_template("extract.html", exes=exes) - - -class ExtractContext(BaseContext): - def __init__(self, socket): - super().__init__(socket) - self.known_filepaths = set(KNOWN_FILEPATHS) - self.extracted = set() - - def extract_complete(self, filepath): - if self._socket_failed: - return - - self.extracted.add(filepath) - percent_complete = int((len(self.extracted) / len(self.known_filepaths)) * 100) - - try: - self.socket.send(json.dumps({ - "cmd": "extract-percent-complete", - "data": percent_complete, - })) - except Exception: # pylint: disable=broad-except - logging.exception("Failed to call alert callback, socket likely went away.") - self._socket_failed = True - - -def extract_assets(target, extract_ctx): - - exe_filename = current_app.config.SPELUNKY_INSTALL_DIR / target - install_dir = current_app.config.SPELUNKY_INSTALL_DIR - - if is_patched(exe_filename): - extract_ctx.alert( - "danger", - f"{target} is a patched exe. You can only extract from an un-patched exe." - ) - return - - mods_dir = install_dir / MODS - - for dir_ in TOP_LEVEL_DIRS: - (mods_dir / dir_).mkdir(parents=True, exist_ok=True) - - for dir_ in FILEPATH_DIRS: - (mods_dir / EXTRACTED_DIR / dir_).mkdir(parents=True, exist_ok=True) - (mods_dir / ".compressed" / EXTRACTED_DIR / dir_).mkdir(parents=True, exist_ok=True) - - with exe_filename.open("rb") as exe: - asset_store = AssetStore.load_from_file(exe) - unextracted = asset_store.extract( - mods_dir / EXTRACTED_DIR, - mods_dir / ".compressed" / EXTRACTED_DIR, - extract_ctx=extract_ctx, - ) - - for asset in unextracted: - extract_ctx.alert("warning", f"Un-extracted Asset {asset.asset_block}") - logging.warning("Un-extracted Asset %s", asset.asset_block) - - dest = mods_dir / EXTRACTED_DIR / "Spel2.exe" - if exe_filename != dest: - logging.info("Backing up exe to %s", dest) - shutil.copy2(exe_filename, dest) - - logging.info("Extraction complete!") - - -@ws_blueprint.route('/extract/') -def ws_extract(socket): - extract_ctx = ExtractContext(socket) - while not socket.closed: - message = socket.receive() - if message is None: - return - message = json.loads(message) - logging.info("Message received: %s", message) - assert message["cmd"] == "extract" - try: - extract_assets(**message["data"], extract_ctx=extract_ctx) - except Exception as err: # pylint: disable=broad-except - extract_ctx.alert("danger", err) - - socket.send(json.dumps({ - "cmd": "extract-complete", - "data": message - })) - - -@blueprint.route("/extract/", methods=["POST"]) -def assets_extract(): - - exe = current_app.config.SPELUNKY_INSTALL_DIR / request.form["extract-target"] - thread = threading.Thread( - target=extract_assets, args=(current_app.config.SPELUNKY_INSTALL_DIR, exe) - ) - thread.start() - - -# Pack - - -def get_overrides(install_dir): - dir_ = install_dir / MODS / OVERRIDES_DIR - - if not dir_.exists(): - return None - - overrides = [] - for root, dirs, files in os.walk(dir_, topdown=True): - dirs[:] = [d for d in dirs if d not in [".compressed"]] - - for file_ in files: - overrides.append(Path(root) / file_) - - return overrides - - -@blueprint.route("/pack/") -def pack(): - overrides = get_overrides(current_app.config.SPELUNKY_INSTALL_DIR) - - return render_template("pack.html", overrides=overrides) - - -def repack_assets(mods_dir, search_dirs, extract_dir, source_exe, dest_exe): - mods_dir = current_app.config.SPELUNKY_INSTALL_DIR / MODS - search_dirs = [mods_dir / "Overrides"] - extract_dir = mods_dir / "Extracted" - - source_exe = current_app.config.SPELUNKY_INSTALL_DIR / MODS/ EXTRACTED_DIR / "Spel2.exe" - dest_exe = current_app.config.SPELUNKY_INSTALL_DIR / "Spel2.exe" - - if is_patched(source_exe): - # FIXME: return error - return - - shutil.copy2(source_exe, dest_exe) - - with dest_exe.open("rb+") as dest_file: - asset_store = AssetStore.load_from_file(dest_file) - try: - asset_store.repackage( - search_dirs, - extract_dir, - mods_dir / ".compressed", - ) - except MissingAsset as err: - logging.error( - "Failed to find expected asset: %s. Unabled to proceed...", err - ) - return - - patcher = Patcher(dest_file) - patcher.patch() - logging.info("Repacking complete!") - - -@ws_blueprint.route('/pack/') -def ws_pack(socket): - while not socket.closed: - message = socket.receive() - if message is None: - return - socket.send(message) diff --git a/src/modlunky2/views/index.py b/src/modlunky2/views/index.py deleted file mode 100644 index ab7a05f7b..000000000 --- a/src/modlunky2/views/index.py +++ /dev/null @@ -1,30 +0,0 @@ -from dataclasses import dataclass -from typing import List - -from flask import Blueprint, render_template - -blueprint = Blueprint("index", __name__) - - -@dataclass -class Link: - site: str - link: str - - -@dataclass -class Person: - name: str - links: List[Link] = None - - -@blueprint.route("/") -def index(): - people = [ - Person("iojonmbnmb", [Link("github", "https://github.com/iojon")]), - Person("Cloppershy", [Link("github", "https://github.com/Cloppershy")]), - Person("Dregu", [Link("github", "https://github.com/Dregu")]), - Person("SciresM", [Link("github", "https://github.com/SciresM")]), - Person("garebear"), - ] - return render_template("index.html", people=people) diff --git a/src/modlunky2/web.py b/src/modlunky2/web.py deleted file mode 100644 index e69de29bb..000000000