Add psutil check to see if d2r is running

This commit is contained in:
2023-10-28 20:02:56 +02:00
parent b8de278055
commit 2c47456bd4
2 changed files with 16 additions and 0 deletions

View File

@@ -1,6 +1,8 @@
import hashlib import hashlib
from flask import Flask, redirect, abort, render_template, request from flask import Flask, redirect, abort, render_template, request
from pathlib import Path from pathlib import Path
import psutil
from d2warehouse.item import Item from d2warehouse.item import Item
from d2warehouse.parser import parse_stash from d2warehouse.parser import parse_stash
import d2warehouse.db as base_db 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: def save_path() -> Path:
if "D2SAVE_PATH" in os.environ: if "D2SAVE_PATH" in os.environ:
path = Path(os.environ["D2SAVE_PATH"]) path = Path(os.environ["D2SAVE_PATH"])
@@ -77,6 +86,9 @@ def stash_store_items(stash_name: str):
return "temp file exists (BAD)" return "temp file exists (BAD)"
return 500 return 500
if d2_running():
return "d2 is running", 500
stash_data = stash_path.read_bytes() stash_data = stash_path.read_bytes()
stash_hash = hashlib.sha256(stash_data).hexdigest() stash_hash = hashlib.sha256(stash_data).hexdigest()
if request.form.get("stash_hash") != stash_hash: 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 "temp file exists (BAD)"
return 500 return 500
if d2_running():
return "d2 is running", 500
stash_data = stash_path.read_bytes() stash_data = stash_path.read_bytes()
stash = parse_stash(stash_data) stash = parse_stash(stash_data)

View File

@@ -19,6 +19,7 @@ license = {text = "GPLv3 License"}
dependencies = [ dependencies = [
"bitarray", "bitarray",
"flask", "flask",
"psutil",
] ]
dynamic = ["version"] dynamic = ["version"]