From 2c47456bd469a594ddd646ad2f08bb338b1bed77 Mon Sep 17 00:00:00 2001 From: Andreas Date: Sat, 28 Oct 2023 20:02:56 +0200 Subject: [PATCH] Add psutil check to see if d2r is running --- d2warehouse/app/main.py | 15 +++++++++++++++ pyproject.toml | 1 + 2 files changed, 16 insertions(+) diff --git a/d2warehouse/app/main.py b/d2warehouse/app/main.py index 80069f7..8d3319b 100644 --- a/d2warehouse/app/main.py +++ b/d2warehouse/app/main.py @@ -1,6 +1,8 @@ import hashlib from flask import Flask, redirect, abort, render_template, request from pathlib import Path + +import psutil from d2warehouse.item import Item from d2warehouse.parser import parse_stash import d2warehouse.db as base_db @@ -20,6 +22,13 @@ DB_FILES = { } +def d2_running() -> bool: + for proc in psutil.process_iter(["name"]): + if proc.info["name"] == "D2R.exe": + return True + return False + + def save_path() -> Path: if "D2SAVE_PATH" in os.environ: path = Path(os.environ["D2SAVE_PATH"]) @@ -77,6 +86,9 @@ def stash_store_items(stash_name: str): return "temp file exists (BAD)" return 500 + if d2_running(): + return "d2 is running", 500 + stash_data = stash_path.read_bytes() stash_hash = hashlib.sha256(stash_data).hexdigest() if request.form.get("stash_hash") != stash_hash: @@ -137,6 +149,9 @@ def storage_take_items(stash_name: str): return "temp file exists (BAD)" return 500 + if d2_running(): + return "d2 is running", 500 + stash_data = stash_path.read_bytes() stash = parse_stash(stash_data) diff --git a/pyproject.toml b/pyproject.toml index cda8364..94fc12b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,7 @@ license = {text = "GPLv3 License"} dependencies = [ "bitarray", "flask", + "psutil", ] dynamic = ["version"]