diff --git a/changedetectionio/processors/restock_diff/forms.py b/changedetectionio/processors/restock_diff/forms.py
index 1ab01e6e..3b89d523 100644
--- a/changedetectionio/processors/restock_diff/forms.py
+++ b/changedetectionio/processors/restock_diff/forms.py
@@ -13,7 +13,8 @@ class processor_settings_form(processor_text_json_diff_form):
render_kw={"placeholder": "No limit", "size": "10"})
price_change_max = FloatField('Maximum amount to trigger notification', [validators.Optional()],
render_kw={"placeholder": "No limit", "size": "10"})
- price_change_threshold_percent = FloatField('Threshold in % for price changes', validators=[
+ price_change_threshold_percent = FloatField('Threshold in % for price changes since the original price', validators=[
+
validators.Optional(),
validators.NumberRange(min=0, max=100, message="Should be between 0 and 100"),
], render_kw={"placeholder": "0%", "size": "5"})
@@ -37,12 +38,13 @@ class processor_settings_form(processor_text_json_diff_form):
"""
\ No newline at end of file
diff --git a/changedetectionio/processors/text_json_diff/processor.py b/changedetectionio/processors/text_json_diff/processor.py
index 1dc501a2..1de5bafb 100644
--- a/changedetectionio/processors/text_json_diff/processor.py
+++ b/changedetectionio/processors/text_json_diff/processor.py
@@ -338,12 +338,6 @@ class perform_site_check(difference_detection_processor):
if blocked:
changed_detected = False
- # Extract title as title
- if is_html:
- if self.datastore.data['settings']['application'].get('extract_title_as_title') or watch['extract_title_as_title']:
- if not watch['title'] or not len(watch['title']):
- update_obj['title'] = html_tools.extract_element(find='title', html_content=self.fetcher.content)
-
logger.debug(f"Watch UUID {watch.get('uuid')} content check - Previous MD5: {watch.get('previous_md5')}, Fetched MD5 {fetched_md5}")
if changed_detected:
diff --git a/changedetectionio/static/styles/scss/styles.scss b/changedetectionio/static/styles/scss/styles.scss
index aa805285..b720b6d4 100644
--- a/changedetectionio/static/styles/scss/styles.scss
+++ b/changedetectionio/static/styles/scss/styles.scss
@@ -1118,6 +1118,11 @@ ul {
color: #fff;
opacity: 0.7;
}
+
+ svg {
+ vertical-align: middle;
+ }
+
@extend .inline-tag;
}
diff --git a/changedetectionio/static/styles/styles.css b/changedetectionio/static/styles/styles.css
index b9469fd0..4f3fec10 100644
--- a/changedetectionio/static/styles/styles.css
+++ b/changedetectionio/static/styles/styles.css
@@ -1194,6 +1194,11 @@ ul {
color: #fff;
opacity: 0.7; }
+
+.restock-label svg {
+ vertical-align: middle; }
+
+
#chrome-extension-link {
padding: 9px;
border: 1px solid var(--color-grey-800);
diff --git a/changedetectionio/update_worker.py b/changedetectionio/update_worker.py
index a5af5c2b..fee09c5d 100644
--- a/changedetectionio/update_worker.py
+++ b/changedetectionio/update_worker.py
@@ -505,6 +505,16 @@ class update_worker(threading.Thread):
if update_handler.xpath_data:
watch.save_xpath_data(data=update_handler.xpath_data)
+ # Extract as title if possible/requested.
+ if self.datastore.data['settings']['application'].get('extract_title_as_title') or watch['extract_title_as_title']:
+ if not watch['title'] or not len(watch['title']):
+ try:
+ update_obj['title'] = html_tools.extract_element(find='title', html_content=update_handler.fetcher.content)
+ logger.info(f"UUID: {uuid} Extract updated title to '{update_obj['title']}")
+ except Exception as e:
+ logger.warning(f"UUID: {uuid} Extract as watch title was enabled, but couldn't find a .")
+
+ # Now update after running everything
try:
self.datastore.update_watch(uuid=uuid, update_obj=update_obj)