feat: Inhaltsinventar in SQLite — KI-Inhaltsangabe je Objekt (URL + Hash)
Vereinheitlicht den bisherigen JSON-Ledger zu EINEM abfragbaren SQLite-Store pro Site (data/content_inventory.db): jedes geprüfte Objekt mit Inhalts-Hash, URL(s), Sicherheits-Verdikt UND neutraler KI-Inhaltsangabe. - baseline.py: load/save_ai_ledger jetzt SQLite-gestützt (Dict-Schnittstelle bleibt → Analyzer unverändert). Tabellen objects + object_urls. Einmalige Migration eines vorhandenen ai_ledger.json → SQLite (.migrated). UPSERT mit first_seen-Erhalt; object_urls transaktional ersetzt. Neu: query_inventory, export_inventory_csv (beide migrieren failsafe). - ai_analyzer.py: Antwort-Schema + Prompt um neutrales Feld 'description' erweitert (im selben Call, keine Extrakosten); _make_entry speichert es. - __main__.py: neues Kommando 'inventory' (Übersicht, --search, --kind, --csv). - Doku: README + Bedienungsanleitung. Audio/Video sind im Schema (kind) vorbereitet (Phase 2: Extractor + Modalitäten). bredelar.info real migriert: 245 Objekte (200 Bilder, 45 Texte). Tests: 266 grün (+6: Round-Trip mit description, Migration, first_seen-Erhalt, invalidate, Suche/CSV-Export, description landet im Ledger). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
78dc79ceab
commit
989f5a933f
7 changed files with 262 additions and 22 deletions
|
|
@ -215,6 +215,9 @@ Globale Optionen: `--config path/to/config.yaml`, `--verbose` (`-v`).
|
|||
| `report` | Letzten Report im Terminal anzeigen |
|
||||
| `report --diff-only` | Nur Textdiffs geänderter Seiten — farbig, kompakt |
|
||||
| `report --format json` | Letzten Report als JSON anzeigen |
|
||||
| `inventory` | KI-Inhaltsinventar (jedes Objekt: URL, Hash, Inhaltsangabe) anzeigen |
|
||||
| `inventory --search <text>` | Inventar nach Inhaltsangabe/URL/Kategorie durchsuchen |
|
||||
| `inventory --csv <pfad>` | Inventar als CSV exportieren |
|
||||
| `status` | Baseline-Datum, letzter Scan, aktueller Risk-Level |
|
||||
| `cloak-check` | Doppel-Crawl: Browser-UA vs. Googlebot (Cloaking-Erkennung) |
|
||||
| `check-ext-links` | Externe Links auf Erreichbarkeit prüfen (4xx/5xx) |
|
||||
|
|
@ -1050,3 +1053,24 @@ python -m scanner https://ihre-website.de status
|
|||
```
|
||||
|
||||
zeigt bei aktivierter KI, wie viele Inhalte im Cache liegen und wie viele offene Funde es gibt.
|
||||
|
||||
### Inhaltsinventar (SQLite)
|
||||
|
||||
Jedes geprüfte Objekt (Seitentext, Bild; später Audio/Video) wird mit **Inhalts-Hash, URL(s),
|
||||
Sicherheits-Verdikt und einer neutralen KI-Inhaltsangabe** in `data/content_inventory.db`
|
||||
(SQLite) gespeichert — eine durchsuchbare Quelle der Wahrheit pro Site.
|
||||
|
||||
```bash
|
||||
python -m scanner https://ihre-website.de inventory # Übersicht
|
||||
python -m scanner https://ihre-website.de inventory --search kloster # Volltextsuche
|
||||
python -m scanner https://ihre-website.de inventory --kind image # nur Bilder
|
||||
python -m scanner https://ihre-website.de inventory --csv inventar.csv
|
||||
```
|
||||
|
||||
Die Datenbank lässt sich auch direkt mit jedem SQLite-Werkzeug abfragen (Tabellen `objects`
|
||||
und `object_urls`). Ein bereits vorhandenes `ai_ledger.json` (Vorgängerformat) wird beim ersten
|
||||
Zugriff automatisch nach SQLite migriert und als `ai_ledger.json.migrated` abgelegt.
|
||||
|
||||
Hinweis: Das `description`-Feld füllt sich erst, wenn ein Objekt (neu/geändert) analysiert wird.
|
||||
Objekte, die vor Einführung der Inhaltsangabe geprüft wurden, haben zunächst eine leere
|
||||
Beschreibung; sie wird beim nächsten Re-Check des jeweiligen Inhalts ergänzt.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue