Restock - Tweaking storage of "original price"

pull/2511/head
dgtlmoon 4 months ago
parent e756e0af5e
commit fe704e05a3

@ -45,13 +45,10 @@ class Restock(dict):
def __setitem__(self, key, value): def __setitem__(self, key, value):
# Custom logic to handle setting price and original_price # Custom logic to handle setting price and original_price
if key == 'price': if key == 'price' or key == 'original_price':
if isinstance(value, str): if isinstance(value, str):
value = self.parse_currency(raw_value=value) value = self.parse_currency(raw_value=value)
if value and not self.get('original_price'):
self['original_price'] = value
super().__setitem__(key, value) super().__setitem__(key, value)
class Watch(BaseWatch): class Watch(BaseWatch):

@ -177,6 +177,11 @@ class perform_site_check(difference_detection_processor):
# Main detection method # Main detection method
fetched_md5 = None fetched_md5 = None
# store original price if not set
if itemprop_availability and itemprop_availability.get('price') and not itemprop_availability.get('original_price'):
itemprop_availability['original_price'] = itemprop_availability.get('price')
update_obj['restock']["original_price"] = itemprop_availability.get('price')
if not self.fetcher.instock_data and not itemprop_availability.get('availability'): if not self.fetcher.instock_data and not itemprop_availability.get('availability'):
raise ProcessorException( raise ProcessorException(
message=f"Unable to extract restock data for this page unfortunately. (Got code {self.fetcher.get_last_status_code()} from server), no embedded stock information was found and nothing interesting in the text, try using this watch with Chrome.", message=f"Unable to extract restock data for this page unfortunately. (Got code {self.fetcher.get_last_status_code()} from server), no embedded stock information was found and nothing interesting in the text, try using this watch with Chrome.",

Loading…
Cancel
Save