Files
janssen/Soubory/scan_files_v1.0.md

2.4 KiB

scan_files_v1.0

Verze: 1.0 Datum: 2026-06-03 Skript: scan_files_v1.0.py

Účel

Rekurzivní sken dvou Dropbox složek studií (!!42847922MDD3003, !77242113UCO3001) a zápis metadat všech souborů do MongoDB.

Konfigurace

  • MongoDB: mongodb://192.168.1.76:27017 (bez autentizace)
  • DB: soubory
  • Kolekce: 42847922MDD3003, 77242113UCO3001 (jedna kolekce na studii)
  • Cesta k Dropboxu: zjištěna pomocí Knihovny/najdi_dropbox.py (přenositelné mezi PC)

Struktura dokumentu v MongoDB

pole popis
path absolutní cesta (unikátní klíč)
study kód studie (= název kolekce)
rel_path relativní cesta od kořene studie
dir, rel_dir nadřazený adresář (absolutní/relativní)
parent_folders pole názvů složek (pro filtrování)
name, stem, ext jméno, jméno bez přípony, přípona (lower-case)
size_bytes velikost
mtime, ctime, atime časové údaje (UTC)
sha256 hash obsahu
mime mimetype dle přípony
tokens jméno rozparsované na slova/čísla (lower-case)
dates_in_name datumy nalezené v názvu, formát YYYY-MM-DD
first_seen_at první sken, kdy byl soubor viděn
last_seen_at poslední sken, kdy byl viděn
deleted_at nastaveno, pokud soubor v posledním skenu už nebyl nalezen

Datumy v názvu

Skript hledá tři varianty:

  • 12JAN2026, 12Jan2026 (den + 3-písm. zkratka měsíce + rok)
  • 2026-01-12, 2026_01_12, 2026.01.12
  • 12-01-2026, 12_01_2026, 12.01.2026

Všechny se normalizují do ISO YYYY-MM-DD v poli dates_in_name.

Inkrementální chování

  • size_bytes + mtime souhlasí se záznamem v DB → SHA256 se nepřepočítává, jen se aktualizuje last_seen_at
  • nový soubor → vloží se s first_seen_at
  • chybějící v aktuálním běhu → deleted_at se nastaví na čas běhu

Co se ignoruje

  • .dropbox*, Thumbs.db, desktop.ini, ~$*.* (Office locky), .DS_Store
  • adresář .dropbox.cache

Spuštění

python U:\PythonProject\Janssen\Soubory\scan_files_v1.0.py

Index pole pro rychlé dotazy

path (unique), ext, dates_in_name, tokens, sha256

Plán pokračování

  1. Spustit první sken → zjistit profil dat (přípony, hloubku stromů)
  2. Doplnit dle potřeby (např. počet stran PDF, autor DOCX, listy XLSX)
  3. Postavit MCP_SOUBORY server nad touto kolekcí