kopia lustrzana https://github.com/dgtlmoon/changedetection.io
Restock - Tweaking storage of "original price"
rodzic
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.",
|
||||||
|
|
Ładowanie…
Reference in New Issue