From bcd304079b21428681b624db7cb94c16b7369f90 Mon Sep 17 00:00:00 2001 From: "vladimir.buzalka" Date: Mon, 18 May 2026 08:02:36 +0200 Subject: [PATCH] z230 --- CLAUDE.md | 13 ++++++ Dropbox/MoveToTrash/move_to_trash.py | 66 ++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 Dropbox/MoveToTrash/move_to_trash.py diff --git a/CLAUDE.md b/CLAUDE.md index 3ec8dd8..7af7779 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -11,6 +11,19 @@ Worktree (`.claude/worktrees/*`) slouží jen pro interní práci Claude, ne jak Každý adresář se skriptem má vlastní `NOTES.md` s technickými detaily. Přečti relevantní NOTES.md podle toho, čeho se konverzace týká. +## Sdílené knihovny (`Knihovny/`) + +Před psaním nového kódu vždy zkontroluj, zda existuje vhodná sdílená funkce. +Import vždy přes `sys.path` na kořen projektu nebo přímou cestou. + +| Modul | Klíčová funkce / třída | Popis | +|-------|------------------------|-------| +| `najdi_dropbox.py` | `get_dropbox_root() → str` | Zjistí cestu k Dropboxu z registru nebo info.json — **používej místo pevných cest** | +| `EmailMessagingGraph.py` | — | Odesílání e-mailů přes Microsoft Graph API | +| `mysql_db.py` | — | Připojení a operace s MySQL databází | +| `medicus_db.py` | — | Připojení k databázi Medicus (Firebird) | +| `vzpb2b_client.py` | — | Klient pro VZP B2B API (stav pojištění) | + ## Přehled skriptů | Skript | Adresář | Popis | diff --git a/Dropbox/MoveToTrash/move_to_trash.py b/Dropbox/MoveToTrash/move_to_trash.py new file mode 100644 index 0000000..c8a20e7 --- /dev/null +++ b/Dropbox/MoveToTrash/move_to_trash.py @@ -0,0 +1,66 @@ +""" +Přesune soubory z Downloads Z230 do #Trash/YYYY-MM-DD, +kromě FIO transactions a DropboxBackupReport. +""" + +import sys +import shutil +from datetime import date +from pathlib import Path + +# Přidá kořen projektu do sys.path, aby šlo importovat Knihovny +_PROJEKT = Path(__file__).resolve().parents[2] # ordinaceprojekt/ +sys.path.insert(0, str(_PROJEKT)) + +from Knihovny.najdi_dropbox import get_dropbox_root + +_DROPBOX = Path(get_dropbox_root()) +SOURCE_DIR = _DROPBOX / "!!!Days" / "Downloads Z230" +TRASH_DIR = SOURCE_DIR / "#Trash" + +IGNORE_PATTERNS = [ + "FIO transactions.xlsx", + "DropboxBackupReport.xlsx", +] + + +def should_ignore(filename: str) -> bool: + for pattern in IGNORE_PATTERNS: + if filename.endswith(pattern): + return True + return False + + +def main(): + today = date.today().strftime("%Y-%m-%d") + dest_dir = TRASH_DIR / today + + files_to_move = [ + f for f in SOURCE_DIR.iterdir() + if f.is_file() and not should_ignore(f.name) + ] + + if not files_to_move: + print("Žádné soubory k přesunu.") + return + + dest_dir.mkdir(parents=True, exist_ok=True) + print(f"Cíl: {dest_dir}") + + for f in files_to_move: + target = dest_dir / f.name + if target.exists(): + base = f.stem + suffix = f.suffix + i = 1 + while target.exists(): + target = dest_dir / f"{base} ({i}){suffix}" + i += 1 + shutil.move(str(f), str(target)) + print(f" {f.name} → {target.name}") + + print(f"\nPřesunuto {len(files_to_move)} souborů.") + + +if __name__ == "__main__": + main()