fix docs for (sources/filters).files
This commit is contained in:
parent
30d0270901
commit
5861836852
@ -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 = {}
|
||||||
|
@ -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 "") + (
|
||||||
|
Loading…
Reference in New Issue
Block a user