fix docs for (sources/filters).files
All checks were successful
Docker Image CI / test (push) Successful in 30s
Docker Image CI / push (push) Successful in 39s

This commit is contained in:
Dmitry Belyaev 2024-03-02 18:33:09 +03:00
parent 30d0270901
commit 5861836852
Signed by: b4tman
GPG Key ID: 41A00BF15EA7E5F3
2 changed files with 27 additions and 29 deletions

View File

@ -7,6 +7,17 @@ from pddnsc.base import BaseFilterProvider
class GenericTextFileFilter(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): def post_init(self):
super().post_init() super().post_init()
self.filepath = self.config["filepath"] self.filepath = self.config["filepath"]
@ -31,7 +42,7 @@ class GenericTextFileFilter(BaseFilterProvider):
if self.check_ipv4: if self.check_ipv4:
lst.append(addr_v6) lst.append(addr_v6)
new_content = "\n".join(lst) 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: async def check(self, source_provider: str, addr_v4: str, addr_v6: str) -> bool:
if not isfile(self.filepath): if not isfile(self.filepath):
@ -41,12 +52,7 @@ class GenericTextFileFilter(BaseFilterProvider):
class StateHashFilter(GenericTextFileFilter): class StateHashFilter(GenericTextFileFilter):
"""Проверка на то что хотябы один IP адрес изменился по хешу сохраненному в файле """Проверка на то что хотябы один IP адрес изменился по хешу сохраненному в файле"""
Конфигурация:
- filepath: имя файла
"""
async def check_imp(self, source_provider: str, addr_v4: str, addr_v6: str) -> bool: 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 "") + ( new_state_str = (self.check_ipv4 and addr_v4 or "") + (
@ -57,16 +63,7 @@ class StateHashFilter(GenericTextFileFilter):
class StateFileFilter(GenericTextFileFilter): class StateFileFilter(GenericTextFileFilter):
"""Проверка на то что хотябы один IP адрес изменился по сравнению с данными в json файле """Проверка на то что хотябы один IP адрес изменился по сравнению с данными в json файле"""
Конфигурация:
- filepath: имя файла
- check_ipv4: проверка ipv4 адреса
- check_ipv6: проверка ipv6 адреса
если нет ни одного параметра то проверка выполняется для всех адресов
"""
async def check_imp(self, source_provider: str, addr_v4: str, addr_v6: str) -> bool: async def check_imp(self, source_provider: str, addr_v4: str, addr_v6: str) -> bool:
new_state = {} new_state = {}

View File

@ -6,6 +6,17 @@ from pddnsc.base import BaseOutputProvider
class GenericTextFile(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): def post_init(self):
super().post_init() super().post_init()
self.filepath = self.config["filepath"] self.filepath = self.config["filepath"]
@ -41,12 +52,7 @@ class GenericTextFile(BaseOutputProvider):
class StateFile(GenericTextFile): class StateFile(GenericTextFile):
"""Схранение всех IP адресов в json файл """Сохранение всех IP адресов в json файл"""
Конфигурация:
- filepath: имя файла
"""
async def set_content(self, addr_v4: str, addr_v6: str): async def set_content(self, addr_v4: str, addr_v6: str):
state = {} state = {}
@ -58,12 +64,7 @@ class StateFile(GenericTextFile):
class StateHashFile(GenericTextFile): class StateHashFile(GenericTextFile):
"""Сохранение хеша от всех IP адресов в файл """Сохранение хеша от всех IP адресов в файл"""
Конфигурация:
- filepath: имя файла
"""
async def set_content(self, addr_v4: str, addr_v6: str): async def set_content(self, addr_v4: str, addr_v6: str):
state_str = (self.save_ipv4 and addr_v4 or "") + ( state_str = (self.save_ipv4 and addr_v4 or "") + (