Исправлено: - engine: _calculate_score() при ошибке загрузки (score не 100 для мёртвых сайтов) - privacy_link: замена page.goto() на aiohttp (гонка данных) - form_checkbox: 3-уровневый поиск label + dark-pattern detection - server_location: синхронный urllib → aiohttp - api/server: перепутанные request/response модели в batch - main.py: csv --checks флаг - engine: фазовая модель (cookie_audit отдельно, остальные параллельно) - engine: retry-логика (3 попытки, exponential backoff) - PDF: emoji заменены на текст (WeasyPrint) Добавлено: - consent_doc: проверка отдельного согласия на обработку ПД - operator_info: проверка ИНН/ОГРН/DPO (читает главную + политику) - cookie_audit: 4-фазный аудит (load→detect→reject→compare) - llm_policy: опциональный LLM-анализ 16 разделов (--deep) - external_scripts: YAML-словари trackers.yaml (critical/warning/russian) - logging (output.py), .gitignore, pyproject.toml - smoke-тесты (16/16)
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
from scanner.checks.base import BaseCheck
|
|
from scanner.checks.cookie_banner import CookieBannerCheck
|
|
from scanner.checks.privacy_link import PrivacyLinkCheck
|
|
from scanner.checks.form_checkbox import FormCheckboxCheck
|
|
from scanner.checks.server_location import ServerLocationCheck
|
|
from scanner.checks.external_scripts import ExternalScriptsCheck
|
|
from scanner.checks.consent_doc import ConsentDocCheck
|
|
from scanner.checks.operator_info import OperatorInfoCheck
|
|
from scanner.checks.cookie_audit import CookieAuditCheck
|
|
from scanner.checks.llm_policy import LLMPolicyCheck
|
|
|
|
# Реестр всех проверок
|
|
ALL_CHECKS: dict[str, type[BaseCheck]] = {
|
|
"cookie_banner": CookieBannerCheck,
|
|
"cookie_audit": CookieAuditCheck,
|
|
"privacy_link": PrivacyLinkCheck,
|
|
"form_checkbox": FormCheckboxCheck,
|
|
"server_location": ServerLocationCheck,
|
|
"external_scripts": ExternalScriptsCheck,
|
|
"consent_doc": ConsentDocCheck,
|
|
"operator_info": OperatorInfoCheck,
|
|
"llm_policy": LLMPolicyCheck, # Опциональный, запускается отдельно
|
|
}
|
|
|
|
QUICK_CHECKS = [
|
|
"cookie_audit", "privacy_link", "form_checkbox",
|
|
"server_location", "external_scripts",
|
|
"consent_doc", "operator_info",
|
|
]
|
|
"""Быстрые проверки без LLM — запускаются по умолчанию."""
|
|
|
|
__all__ = [
|
|
"BaseCheck",
|
|
"CookieBannerCheck", "PrivacyLinkCheck", "FormCheckboxCheck",
|
|
"ServerLocationCheck", "ExternalScriptsCheck",
|
|
"ConsentDocCheck", "OperatorInfoCheck", "LLMPolicyCheck",
|
|
"ALL_CHECKS", "QUICK_CHECKS",
|
|
]
|