From 01faafd290492fc25c8edf67a982eb9ffdd74de1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Atti=C3=A9?= Date: Thu, 17 Jun 2021 20:31:34 +0200 Subject: [PATCH] fix build onefile and get dofus data --- .github/workflows/build.yml | 9 +++------ util/datafus_search.py | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8212709..ad7c2eb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,18 +39,15 @@ jobs: - os: macos-latest TARGET: macos CMD_BUILD: > - pyinstaller --onedir -w -n dofus-craft-planner --add-data="util:util" --add-data="data:data" --add-data="static:static" --add-data="README.txt:." --add-data="LICENSE:." main.py && + pyinstaller --onefile -w -n dofus-craft-planner --add-data="util:util" --add-data="data:data" --add-data="static:static" --add-data="README.txt:." --add-data="LICENSE:." main.py && cd dist/ && zip -r9 dofus-craft-planner dofus-craft-planner.app/ OUT_FILE_NAME: dofus-craft-planner.zip ASSET_MIME: application/zip - os: windows-latest TARGET: windows - CMD_BUILD: > - pyinstaller --onedir -w -c -n dofus-craft-planner --add-data="util;util" --add-data="data;data" --add-data="static;static" --add-data="README.txt;." --add-data="LICENSE;." main.py - cd dist/ && - zip -r dofus-craft-planner dofus-craft-planner.zip/ - OUT_FILE_NAME: dofus-craft-planner.zip + CMD_BUILD: pyinstaller --onefile -w -c -n dofus-craft-planner --add-data="util;util" --add-data="data;data" --add-data="static;static" --add-data="README.txt;." --add-data="LICENSE;." main.py + OUT_FILE_NAME: dofus-craft-planner.exe ASSET_MIME: application/vnd.microsoft.portable-executable steps: - uses: actions/checkout@v1 diff --git a/util/datafus_search.py b/util/datafus_search.py index 5741788..660f64c 100644 --- a/util/datafus_search.py +++ b/util/datafus_search.py @@ -1,8 +1,17 @@ import logging import json -import pkgutil - - +import os +import sys + +def resource_path(relative_path): + """ Get absolute path to resource, works for dev and for PyInstaller """ + try: + # PyInstaller creates a temp folder and stores path in _MEIPASS + base_path = sys._MEIPASS + except Exception: + base_path = os.path.abspath(".") + + return os.path.join(base_path, relative_path) class CATEGORIES: weapons="weapons" equipments="equipments" @@ -14,7 +23,7 @@ class CATEGORIES: def openJSONdb(): global loaded if not loaded: - with open("data/dofus.fr.json") as db: + with open(resource_path("data/dofus.fr.json")) as db: loaded = json.load(db) return loaded