# SharePoint Browser En moderne Python-baseret fil-browser til Microsoft SharePoint, specielt designet til at omgå Windows' `MAX_PATH` (260 karakterer) begrænsning. Det opnås ved at integrere direkte med Microsoft Graph API ved hjælp af unikke ID'er og downloade/udtjekke filer til redigering via korte, midlertidige stier lokalt. ## 🚀 Funktioner - **Ingen Sti-begrænsning (MAX_PATH):** Problemfri og pålidelig redigering uanset mappedybde i SharePoint. - **Sikker Redigering & Kollision-beskyttelse:** Automatisk Check-out/Check-in og intelligent overvågning af fil-låse lokalt. - **Professionel Brugerflade:** Bygget med `wxPython` (Native Windows UI) inklusiv indfødte OS-ikoner, brødkrummesti (breadcrumbs) og lazy-loading af hierarkisk træstruktur for markant hurtigere navigation. - **First-Run Setup Wizard:** Automatisk konfigurationsguide ved første opstart, der opsamler Client ID og Tenant ID (kræver ingen forudgående manuel `settings.json`). - **Avanceret Søgning:** Hurtig global søgefunktion der bygger på et lokalt, trinvist opdateret indeks, samt understøttelse af "OG"-logik (AND logic). - **Fuld Fil- og Mappestyring:** Understøtter upload, sletning og omdøbning, samt visning af udvidet fil-metadata (filstørrelse, redigeringsdato). - **Multisprog:** Indbygget og brugerstyret understøttelse af både Dansk og Engelsk-grænseflade. - **Multi-File Editing:** Robust understøttelse for lokalt at redigere flere forskellige filer uafhængigt af hinanden i baggrunden uden at interface fryser. ## 🛠️ Teknologier - **Sprog:** Python 3.x - **GUI Framework:** wxPython - **Godkendelse:** MSAL (Microsoft Authentication Library) - **API Integration:** Microsoft Graph API via `requests` - **Fil-overvågning:** Polling via låse på lokalt filsystem ## 📦 Installation & Opstart ### Forudsætninger Sørg for, at du har Python installeret sammen med afhængighederne. Det anbefales at have en Microsoft 365-licens klar. ```bash pip install wxPython msal requests ``` ### Kør applikationen Star op med: ```bash python sharepoint_browser.py ``` Ved første kørsel uden en konfiguration vil applikationen præsentere en Setup Wizard, hvor man nemt kan indtaste Microsoft-loginoplysningerne. Indtastningerne gemmes i en lokal `settings.json` fil. ## 🏗️ Byg til EXE (Valgfrit) For at pakke programmet til en uafhængig, "kør-bar" `.exe` fil til Windows, kan dette gøres med PyInstaller: ```bash pip install pyinstaller python -m PyInstaller --windowed --onefile --icon=icon.ico --name "SharePoint Browser" sharepoint_browser.py ``` *(Husk at afhæningheder og ikoner skal inddrages formelt i dit build afhængigt af din PyInstaller spec-fil).* ## 🧩 Arkitektur & Workflow 1. **Godkendelse:** Det autentificerer brugeren via MSAL & MS Graph API. 2. **Navigation:** Data hentes asynkront (lazy-loading). Alt håndteres med ID'er istedet for filstier, hvilket sikrer MAX_PATH-modstandsdygtighed. 3. **Baggrundshåndtering af redigering:** - Filer tjekkes ud (`Checkout`) direkte i SharePoint. - Hentes ned til det lokale drev under korte stier under C-drevet eks. `C:\Temp_SP\[MD5-Hash].[ext]`. - Et baggrunds-thread overvåger derefter det lokale program (fx Word) kontinuerligt via `os.rename()` tricket. - Når filen lukkes fra dit office-program, uploades ændringerne op til SharePoint og modtager et `Checkin`. ## 💡 Backlog / Kommende muligheder 1. Integration for håndtering af flere tenants (lejemål) 2. Et yderligere detaljeret log-system specielt til debugging af baggrundstråden. 3. Udvidet aktivitetslog til sporing af handlinger for de seneste 14 dage. 4. Styring af licenser til specifikke kunders varigheder (fx 1 år, 3 år, Lifetime).