# PC-Visit Filetracker Verarbeitet PC-Visit-Session-XML-Dateien und erzeugt CSV-Auswertungen. ## Installation ### uv installieren Windows PowerShell: ```powershell powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" ``` Alternativ über WinGet: ```powershell winget install --id=astral-sh.uv -e ``` ### Projekt einrichten Im Projektverzeichnis genügt: ```powershell uv sync ``` Damit werden die Python-Umgebung und alle Abhängigkeiten aus `pyproject.toml` eingerichtet. ## Verwendung Die allgemeine Hilfe zeigt alle verfügbaren Commands: ```powershell uv run main.py ``` Das XML-Verzeichnis ist bei den XML-bezogenen Commands optional. Standardmäßig wird verwendet: ```text %USERPROFILE%\AppData\Roaming\pcvisit Data\Session History ``` Die CSV-Dateien werden standardmäßig im Ordner `data` abgelegt. ## Commands ### `clients` Liest Participant- und Client-Daten aus allen XML-Dateien inklusive Unterordnern und schreibt `data/clients.csv`. Supporter, unbekannte Rollen und leere Client-Namen werden ignoriert. Pro Participant wird der neueste Eintrag verwendet. ```powershell uv run main.py clients uv run main.py clients "C:\Pfad\zur\Session History" -o data\clients.csv ``` ### `files` Sucht `ReceivedFile`-Einträge auf dem lokalen Desktop inklusive Unterordnern. Nur gefundene Dateien werden in `data/files.csv` gespeichert. Der Datumsabgleich mit dem Session-Tag kann deaktiviert werden: ```powershell uv run main.py files uv run main.py files --ignore-timestamp ``` Der Ordner `Desktop\PC-Visit` wird bei der Suche ignoriert. ### `move-files` Aktualisiert zuerst `data/files.csv` und verschiebt anschließend die gefundenen Dateien nach: ```text %USERPROFILE%\Desktop\PC-Visit\ ``` Bei gleichnamigen Zieldateien wird die vorhandene Datei mit ihrem Erstellungszeitpunkt umbenannt. ```powershell uv run main.py move-files uv run main.py move-files --ignore-timestamp ``` ### `archive-logs` Archiviert XML-Dateien mit `Duration` im `Session`-Tag nach `Archiv\`. XML-Dateien ohne `Duration` werden ab einem Alter von 30 Tagen ebenfalls archiviert. `sessions*.xml` und bereits archivierte Dateien werden ignoriert. Leere Unterordner werden anschließend entfernt. ```powershell uv run main.py archive-logs ``` ### `session-details` Sammelt `UserActivity`-Einträge inklusive `DateTime`, `Kunde`, `UserActivityType` und `Duration` aus allen XML-Dateien inklusive Archiv und schreibt `data/session_details.csv`. ```powershell uv run main.py session-details ``` ### `summary` Erstellt aus `data/session_details.csv` die Datei `data/summary.csv` mit Datum, Startzeit, Kunde und Dauer. Zusätzlich wird standardmäßig eine Übersicht der letzten 14 Tage auf der Konsole ausgegeben. Der Zeitraum ist anpassbar: ```powershell uv run main.py summary uv run main.py summary --days 30 ``` ### `info` Führt `clients`, `archive-logs`, `session-details` und `summary` nacheinander aus. ```powershell uv run main.py info uv run main.py info --days 30 ``` ### `watch` Überwacht das XML-Verzeichnis rekursiv mit `watchdog`. Bei Änderungen an XML-Dateien wird der `move-files`-Ablauf ausgeführt. ```powershell uv run main.py watch ``` Die Überwachung läuft dauerhaft. Beenden mit `Strg+C`.