Hantera varor med fler än ett pris.

När fler än ett pris finns kommer dessa som en lista, annars som ett fristående värde. Detta ledde till en bugg som nu är fixad.

Om olika lager har olika priser syns detta inte här, bara standardlagret. Jag vet inte ens hur man skulle vilja hantera det.

Egentligen bör denna kod köras med Python 3.7, eftersom det är först då som en dictionary garanterar ordningen på sina element, vilket vi förlitar oss på nu. Att köra Python 3.7 ledde dock till problem med import av en Slack-modul, vilket måste redas ut först.
master
Jonas Olson 5 years ago
parent 2b9dfd958e
commit 1b49ab8986

@ -39,12 +39,13 @@ def unfurl(url):
# inte borde göra så. Vi avkodar.
title = html.unescape(ld['name'])
image = ld['image']
currency = ld['offers']['priceCurrency']
offers = ld['offers']
if not isinstance(offers, list):
offers = [offers]
currency = offers[0]['priceCurrency']
if currency == 'SEK':
currency = 'kr'
# Formateringsinstruktionen "n" ger oss decimaltecken enligt aktuell
# locale.
price = f'{float(ld["offers"]["price"]):n}' + '' + currency
prices = [float(offer['price']) for offer in offers]
return {'fallback': title + ' <' + url + '>',
'color': '#cf8e00', # ELAB-orange
@ -58,7 +59,9 @@ def unfurl(url):
# innehåller något vettigt.
# 'text': ld['description'],
'fields': [{'title': 'Pris',
'value': price,
'value': ' '.join(
[f'{price:n}{currency}' for price in
list(dict.fromkeys([min(prices), max(prices)]))]),
'short': True}],
# Visas som stor bild, vilket tar för mycket plats.
# 'image_url': image,

Loading…
Cancel
Save