Files
sharepoint-browser/dev/project_description.md

2.0 KiB
Raw Permalink Blame History

Projektbeskrivelse: Python SharePoint File Browser (Modern GUI) Kontekst og Formål: Udvikl en fil-browser med en moderne grafisk brugerflade i Python. Formålet er at løse problemet med Windows', SharePoints og OneDrives begrænsning på stinavne (over 260 karakterer / MAX_PATH). Programmet skal omgå denne grænse ved at arbejde med filernes unikke ID'er og URL'er via Microsoft Graph API frem for at bruge traditionelle filstier.

Teknologier:

Sprog: Python

GUI-framework: CustomTkinter (eller PyQt6) for et moderne, responsivt design.

Integration: Microsoft Graph API (Autentificering via MSAL).

Filhåndtering: Windows OS procesovervågning og native fil-operationer.

Kernefunktioner og User Flow:

Autentificering: Sikker login via MSAL (Microsoft Authentication Library) til brugerens Microsoft 365 / SharePoint konto.

Navigation (UI): En moderne grænseflade, hvor brugeren kan browse SharePoint-sites, mapper og filer dynamisk uanset hvor dyb mappestrukturen er.

Sikker stihåndtering & Check-out: Når en fil vælges til redigering:

Udfør et "Check-out" via Graph API, så filen låses for andre brugere på SharePoint.

Download filen til en midlertidig, meget kort lokal sti (f.eks. C:\Temp[KortHash].[ext]) for at undgå MAX_PATH-begrænsningen i Windows.

Lokal Redigering & Overvågning:

Åbn den downloadede fil med standardprogrammet i Windows (f.eks. Word til .docx).

Programmet skal overvåge den specifikke proces eller fillås og registrere, præcis hvornår brugeren lukker programmet/filen igen.

Gen-upload & Check-in:

Når filen er lukket lokalt, uploades den ændrede fil automatisk tilbage til den oprindelige placering via Graph API.

Udfør et "Check-in" på SharePoint for at frigive filen til andre.

Slet den midlertidige lokale fil for at rydde op.

Krav til output: Jeg ønsker det komplette, kørbare Python-script og ikke kun delektioner eller ændringer. Undlad for meget forklarende tekst, og fokuser på at levere en robust og fuldstændig kode.