Skip to content

Commit 76ed6b1

Browse files
committed
add item value variable
1 parent 88d66e4 commit 76ed6b1

File tree

6 files changed

+24
-7
lines changed

6 files changed

+24
-7
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ scanner.log
1818
pytest_tmp
1919
out.toml
2020
out.yaml
21+
dev.py

tests/test_item.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ def test_item(tgtg_item: dict, monkeypatch: pytest.MonkeyPatch):
1818
assert item.description == tgtg_item.get("item", {}).get("description", "-")
1919
assert item.link == "https://share.toogoodtogo.com/item/774625"
2020
assert item.price == "3.00"
21+
assert item.value == "9.00"
2122
assert item.currency == "EUR"
2223
assert item.store_name == tgtg_item.get("store", {}).get("store_name", "-")
2324
assert item.item_logo == tgtg_item.get("item", {}).get("logo_picture", {}).get("current_url", "-")

tgtg_scanner/models/item.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"display_name",
1717
"description",
1818
"price",
19+
"value",
1920
"currency",
2021
"pickupdate",
2122
"favorite",
@@ -69,8 +70,11 @@ def __init__(self, data: dict, location: Union[Location, None] = None):
6970
self.item_category = item.get("item_category", "-")
7071
self.description = item.get("description", "-")
7172
item_price = item.get("item_price", {})
73+
item_value = item.get("item_value", {})
7274
price = item_price.get("minor_units", 0) / 10 ** item_price.get("decimals", 0)
75+
value = item_value.get("minor_units", 0) / 10 ** item_value.get("decimals", 0)
7376
self.price = f"{price:.2f}"
77+
self.value = f"{value:.2f}"
7478
self.currency = item_price.get("code", "-")
7579
self.item_logo = item.get("logo_picture", {}).get(
7680
"current_url",

tgtg_scanner/models/metrics.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
from prometheus_client import Counter, Gauge, start_http_server
44

5+
from tgtg_scanner.models.item import Item
6+
57
log = logging.getLogger("tgtg")
68

79

@@ -14,6 +16,7 @@ def __init__(self, port: int = 8000):
1416
self.port = port
1517
self.item_count = Gauge("tgtg_item_count", "Currently available Magic Bags", ["item_id", "display_name"])
1618
self.item_price = Gauge("tgtg_item_price", "Price for a Magic Bag", ["item_id", "display_name"])
19+
self.item_value = Gauge("tgtg_item_value", "Value for a Magic Bag", ["item_id", "display_name"])
1720
self.get_favorites_errors = Counter(
1821
"tgtg_get_favorites_errors",
1922
"Count of request errors fetching tgtg favorites",
@@ -30,3 +33,14 @@ def enable_metrics(self) -> None:
3033
"""
3134
start_http_server(self.port)
3235
log.info("Metrics server startet on port %s", self.port)
36+
37+
def update(self, item: Item) -> None:
38+
"""
39+
Update the metrics.
40+
"""
41+
try:
42+
self.item_count.labels(item.item_id, item.display_name).set(item.items_available)
43+
self.item_price.labels(item.item_id, item.display_name).set(float(item.price))
44+
self.item_value.labels(item.item_id, item.display_name).set(float(item.value))
45+
except ValueError as err:
46+
log.warning("Error updating metrics: %s", err)

tgtg_scanner/scanner.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,7 @@ def _check_item(self, item: Item) -> None:
148148
if state_item.items_available == 0 and item.items_available > 0:
149149
self._send_messages(item)
150150
self.metrics.send_notifications.labels(item.item_id, item.display_name).inc()
151-
self.metrics.item_count.labels(item.item_id, item.display_name).set(item.items_available)
152-
try:
153-
self.metrics.item_price.labels(item.item_id, item.display_name).set(float(item.price))
154-
except ValueError:
155-
pass
151+
self.metrics.update(item)
156152
self.state[item.item_id] = item
157153

158154
def _send_messages(self, item: Item) -> None:

wiki/Configuration.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ Variables with the `locale` property are affected by the `locale` option and ret
2727
| items_available | number of available items | `2` |
2828
| display_name | name of the item as in the APP | `Chutney Indian Food - Hamburg – Europapassage 2.OG` |
2929
| description | item description | `Rette eine Magic Bag mit leckerem indischen Essen.` |
30-
| price | item price including taxes | `3.20` |
31-
| currency | | `EUR` |
30+
| price | item price | `3.20` |
31+
| value | item value | `9.60` |
32+
| currency | price/value currency | `EUR` |
3233
| pickupdate | formatted string | `tomorrow, 18:00 - 21:50` | YES |
3334
| favorite | is favorite | `YES` or `NO` |
3435
| rating | overall rating | `3.3` |

0 commit comments

Comments
 (0)