diff --git a/pddnsc/filters/files.py b/pddnsc/filters/files.py index 290c6d2..edea89e 100644 --- a/pddnsc/filters/files.py +++ b/pddnsc/filters/files.py @@ -7,6 +7,17 @@ from pddnsc.base import BaseFilterProvider class GenericTextFileFilter(BaseFilterProvider): + """Проверка на то что хотябы один IP адрес изменился по сравнению с текстом в файле + + Конфигурация: + + - filepath: имя файла + - encoding: кодировка, по умолчанию "utf-8" + - mode: режим открытия, по умолчанию "r" + - check_ipv4: проверять ли IPv4, по умолчанию нет если check_ipv6 есть в конфиге иначе да + - check_ipv6: проверять ли IPv6, по умолчанию нет если check_ipv4 есть в конфиге иначе да + """ + def post_init(self): super().post_init() self.filepath = self.config["filepath"] @@ -31,7 +42,7 @@ class GenericTextFileFilter(BaseFilterProvider): if self.check_ipv4: lst.append(addr_v6) new_content = "\n".join(lst) - return new_content == self.content + return new_content != self.content async def check(self, source_provider: str, addr_v4: str, addr_v6: str) -> bool: if not isfile(self.filepath): @@ -41,12 +52,7 @@ class GenericTextFileFilter(BaseFilterProvider): class StateHashFilter(GenericTextFileFilter): - """Проверка на то что хотябы один IP адрес изменился по хешу сохраненному в файле - - Конфигурация: - - - filepath: имя файла - """ + """Проверка на то что хотябы один IP адрес изменился по хешу сохраненному в файле""" async def check_imp(self, source_provider: str, addr_v4: str, addr_v6: str) -> bool: new_state_str = (self.check_ipv4 and addr_v4 or "") + ( @@ -57,16 +63,7 @@ class StateHashFilter(GenericTextFileFilter): class StateFileFilter(GenericTextFileFilter): - """Проверка на то что хотябы один IP адрес изменился по сравнению с данными в json файле - - Конфигурация: - - - filepath: имя файла - - check_ipv4: проверка ipv4 адреса - - check_ipv6: проверка ipv6 адреса - - если нет ни одного параметра то проверка выполняется для всех адресов - """ + """Проверка на то что хотябы один IP адрес изменился по сравнению с данными в json файле""" async def check_imp(self, source_provider: str, addr_v4: str, addr_v6: str) -> bool: new_state = {} diff --git a/pddnsc/outputs/files.py b/pddnsc/outputs/files.py index 07a2e6f..1176d2e 100644 --- a/pddnsc/outputs/files.py +++ b/pddnsc/outputs/files.py @@ -6,6 +6,17 @@ from pddnsc.base import BaseOutputProvider class GenericTextFile(BaseOutputProvider): + """Сохранение IP адресов в текстовый файл + + Конфигурация: + + - filepath: имя файла + - encoding: кодировка, по умолчанию "utf-8" + - mode: режим открытия, по умолчанию "w" + - save_ipv4: сохранять ли IPv4, по умолчанию нет если save_ipv6 есть в конфиге иначе да + - save_ipv6: сохранять ли IPv6, по умолчанию нет если save_ipv4 есть в конфиге иначе да + """ + def post_init(self): super().post_init() self.filepath = self.config["filepath"] @@ -41,12 +52,7 @@ class GenericTextFile(BaseOutputProvider): class StateFile(GenericTextFile): - """Схранение всех IP адресов в json файл - - Конфигурация: - - - filepath: имя файла - """ + """Сохранение всех IP адресов в json файл""" async def set_content(self, addr_v4: str, addr_v6: str): state = {} @@ -58,12 +64,7 @@ class StateFile(GenericTextFile): class StateHashFile(GenericTextFile): - """Сохранение хеша от всех IP адресов в файл - - Конфигурация: - - - filepath: имя файла - """ + """Сохранение хеша от всех IP адресов в файл""" async def set_content(self, addr_v4: str, addr_v6: str): state_str = (self.save_ipv4 and addr_v4 or "") + (