🏗 Фаза 1-4: Архитектура, ядро, проверки, API, генератор отчетов
- scanner/engine.py — Playwright-движок сканирования - scanner/models.py — Pydantic модели - scanner/checks/ — 5 проверок (cookie, privacy, forms, server, external) - api/server.py — FastAPI REST API - reports/generator.py — PDF через WeasyPrint + Jinja2 - main.py — CLI + сервер Проверки: ✅ cookie_banner — поиск cookie-баннера ✅ privacy_link — проверка ссылки на политику ✅ form_checkbox — проверка чекбоксов согласия ✅ server_location — геолокация сервера (RФ или нет) ✅ external_scripts — внешние скрипты аналитики
This commit is contained in:
commit
de18090304
20 files changed
+1665
No files matched your search
@@ -0,0 +1,37 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional
|
||||
|
||||
|
||||
class HealthResponse(BaseModel):
|
||||
status: str
|
||||
version: str = "1.0.0"
|
||||
checks_count: int = 5
|
||||
|
||||
|
||||
class ScanRequest(BaseModel):
|
||||
url: str
|
||||
checks: Optional[list[str]] = None
|
||||
|
||||
|
||||
class CSVScanRequest(BaseModel):
|
||||
urls: list[str]
|
||||
checks: Optional[list[str]] = None
|
||||
|
||||
|
||||
class ScanResultResponse(BaseModel):
|
||||
scan_id: str
|
||||
url: str
|
||||
score: int
|
||||
is_compliant: bool
|
||||
summary: str
|
||||
checks_passed: int
|
||||
checks_failed: int
|
||||
checks_errors: int
|
||||
|
||||
|
||||
class BatchScanResultResponse(BaseModel):
|
||||
scan_id: str
|
||||
total: int
|
||||
results: list[ScanResultResponse]
|
||||
compliant_count: int
|
||||
non_compliant_count: int
|
||||
Reference in new issue
Block a user