From 2373702a1f3ee85b0d6572b669414687d8f6f031 Mon Sep 17 00:00:00 2001 From: omicron Date: Mon, 30 Oct 2023 11:05:45 +0100 Subject: [PATCH] fix storage_count to not count items that are removed from storage --- d2warehouse/app/main.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/d2warehouse/app/main.py b/d2warehouse/app/main.py index de8c876..03dfb9b 100644 --- a/d2warehouse/app/main.py +++ b/d2warehouse/app/main.py @@ -39,21 +39,22 @@ def storage_count(item: Item, stash: str) -> int | str: db = get_stash_db(stash) if item.is_simple: return db.execute( - "SELECT COUNT(id) FROM item WHERE code = ?", (item.code,) + "SELECT COUNT(id) FROM item WHERE code = ? AND deleted IS NULL", + (item.code,), ).fetchone()[0] elif item.quality == Quality.UNIQUE: return db.execute( - "SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND unique_id = ?", + "SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND unique_id = ? AND deleted IS NULL", (item.code, item.unique_id), ).fetchone()[0] elif item.quality == Quality.SET: return db.execute( - "SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND set_id = ?", + "SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND set_id = ? AND deleted IS NULL", (item.code, item.set_id), ).fetchone()[0] elif item.is_runeword: return db.execute( - "SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND runeword_id = ?", + "SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND runeword_id = ? AND deleted IS NULL", (item.code, item.runeword_id), ).fetchone()[0] else: