diff --git a/changedetectionio/model/App.py b/changedetectionio/model/App.py index 8db9e1ef..21ed1431 100644 --- a/changedetectionio/model/App.py +++ b/changedetectionio/model/App.py @@ -1,8 +1,4 @@ -import collections -import os - -import uuid as uuid_builder - +from os import getenv from changedetectionio.notification import ( default_notification_body, default_notification_format, @@ -15,16 +11,16 @@ class model(dict): 'watching': {}, 'settings': { 'headers': { - 'User-Agent': os.getenv("DEFAULT_SETTINGS_HEADERS_USERAGENT", 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'), + 'User-Agent': getenv("DEFAULT_SETTINGS_HEADERS_USERAGENT", 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'), 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'Accept-Encoding': 'gzip, deflate', # No support for brolti in python requests yet. 'Accept-Language': 'en-GB,en-US;q=0.9,en;' }, 'requests': { - 'timeout': int(os.getenv("DEFAULT_SETTINGS_REQUESTS_TIMEOUT", "45")), # Default 45 seconds + 'timeout': int(getenv("DEFAULT_SETTINGS_REQUESTS_TIMEOUT", "45")), # Default 45 seconds 'time_between_check': {'weeks': None, 'days': None, 'hours': 3, 'minutes': None, 'seconds': None}, 'jitter_seconds': 0, - 'workers': int(os.getenv("DEFAULT_SETTINGS_REQUESTS_WORKERS", "10")), # Number of threads, lower is better for slow connections + 'workers': int(getenv("DEFAULT_SETTINGS_REQUESTS_WORKERS", "10")), # Number of threads, lower is better for slow connections 'proxy': None # Preferred proxy connection }, 'application': { @@ -33,7 +29,7 @@ class model(dict): 'base_url' : None, 'extract_title_as_title': False, 'empty_pages_are_a_change': False, - 'fetch_backend': os.getenv("DEFAULT_FETCH_BACKEND", "html_requests"), + 'fetch_backend': getenv("DEFAULT_FETCH_BACKEND", "html_requests"), 'global_ignore_text': [], # List of text to ignore when calculating the comparison checksum 'global_subtractive_selectors': [], 'ignore_whitespace': True, diff --git a/changedetectionio/model/Watch.py b/changedetectionio/model/Watch.py index acfd9117..6c22b390 100644 --- a/changedetectionio/model/Watch.py +++ b/changedetectionio/model/Watch.py @@ -2,6 +2,7 @@ import os import uuid as uuid_builder minimum_seconds_recheck_time = int(os.getenv('MINIMUM_SECONDS_RECHECK_TIME', 60)) +mtable = {'seconds': 1, 'minutes': 60, 'hours': 3600, 'days': 86400, 'weeks': 86400 * 7} from changedetectionio.notification import ( default_notification_body, @@ -51,7 +52,7 @@ class model(dict): 'webdriver_js_execute_code': None, # Run before change-detection } jitter_seconds = 0 - mtable = {'seconds': 1, 'minutes': 60, 'hours': 3600, 'days': 86400, 'weeks': 86400 * 7} + def __init__(self, *arg, **kw): import uuid self.update(self.__base_config) @@ -160,7 +161,7 @@ class model(dict): def threshold_seconds(self): seconds = 0 - for m, n in self.mtable.items(): + for m, n in mtable.items(): x = self.get('time_between_check', {}).get(m, None) if x: seconds += x * n diff --git a/changedetectionio/store.py b/changedetectionio/store.py index fbafbe04..3210e789 100644 --- a/changedetectionio/store.py +++ b/changedetectionio/store.py @@ -9,6 +9,7 @@ import time import uuid as uuid_builder from copy import deepcopy from os import mkdir, path, unlink +from model.Watch import mtable from threading import Lock import re import requests @@ -158,7 +159,6 @@ class ChangeDetectionStore: @property def threshold_seconds(self): seconds = 0 - mtable = {'seconds': 1, 'minutes': 60, 'hours': 3600, 'days': 86400, 'weeks': 86400 * 7} for m, n in mtable.items(): x = self.__data['settings']['requests']['time_between_check'].get(m) if x: