Files
152-fz-scanner/scanner/checks/__init__.py
T
neo b9db935389 v2.0: исправлены критические баги, добавлены 4 новые проверки, 4-фазный cookie-аудит, retry-логика, YAML-словари, LLM-анализ, тесты
Исправлено:
- 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)
2026-06-10 00:49:07 +05:00

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",
]