Add in storage counter to stash view
This commit is contained in:
@@ -34,6 +34,32 @@ def d2_running() -> bool:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def storage_count(item: Item, stash: str) -> int | str:
|
||||||
|
"""How many of this item type exist in storage"""
|
||||||
|
db = get_stash_db(stash)
|
||||||
|
if item.is_simple:
|
||||||
|
return db.execute(
|
||||||
|
"SELECT COUNT(id) FROM item WHERE code = ?", (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 = ?",
|
||||||
|
(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 = ?",
|
||||||
|
(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 = ?",
|
||||||
|
(item.code, item.runeword_id),
|
||||||
|
).fetchone()[0]
|
||||||
|
else:
|
||||||
|
return "N/A"
|
||||||
|
|
||||||
|
|
||||||
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"])
|
||||||
@@ -76,7 +102,11 @@ def list_stash(stash_name: str):
|
|||||||
stash = parse_stash(stash_data)
|
stash = parse_stash(stash_data)
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"list_stash.html", stash_name=stash_name, stash=stash, stash_hash=stash_hash
|
"list_stash.html",
|
||||||
|
stash_name=stash_name,
|
||||||
|
stash=stash,
|
||||||
|
stash_hash=stash_hash,
|
||||||
|
storage_count=lambda x: storage_count(x, stash_name),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
{% if item.quality and item.quality >= 5 %}
|
{% if item.quality and item.quality >= 5 %}
|
||||||
<li class="name color-{{item.color}}">{{item.basename}}</li>
|
<li class="name color-{{item.color}}">{{item.basename}}</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<li>(in storage: {{storage_count(item)}})</li>
|
||||||
{% if item.stats %}
|
{% if item.stats %}
|
||||||
{% for stat in item.stats %}
|
{% for stat in item.stats %}
|
||||||
<li>{{stat}}</li>
|
<li>{{stat}}</li>
|
||||||
|
|||||||
Reference in New Issue
Block a user