Commit Graph

33 Commits

Author SHA1 Message Date
Martin Tranberg
634b5ff151 Tilføj 429-håndtering, eksponentiel backoff og dybdebegrænsning
- get_fresh_download_url: tilføjer 429-tjek med Retry-After og erstatter
  fast sleep(1) med eksponentiel backoff (2^attempt sekunder)
- process_item_list: tilføjer MAX_FOLDER_DEPTH=50 guard mod RecursionError
  ved unormalt dybe SharePoint-mappestrukturer
- README og CLAUDE.md opdateret med beskrivelse af nye adfærd

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 15:16:12 +01:00
Martin Tranberg
3bb2b44477 Opdater README: QuickXorHash er nu fuldt implementeret
Beskrivelsen af Smart Skip & Integritet er opdateret fra "forbereder til
hash-validering" til at afspejle at QuickXorHash nu er aktivt — korrupte
filer med korrekt størrelse detekteres og re-downloades automatisk.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 14:40:18 +01:00
Martin Tranberg
a8048ae74d Ret fire fejl i download_sharepoint.py
- Implementér QuickXorHash korrekt med 3 × uint64 cells matching Microsofts
  C#-reference — tidligere 8-bit implementation gav forkert hash
- verify_integrity tjekker nu hash på eksisterende filer ved skip-check og
  re-downloader ved mismatch i stedet for blindt at acceptere filen
- retry_request raiser RetryError ved opbrugte forsøg i stedet for at
  returnere None, som ville crashe kaldere med AttributeError
- format_size håndterer nu filer >= 1 PB (PB og EB tilføjet)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 14:39:27 +01:00
Martin Tranberg
7fab89cbbb Ret tre fejl i download_sharepoint.py og tilføj CLAUDE.md
- force_refresh sendes nu korrekt til MSAL så token-cache omgås ved 401
- safe_get bruges ved download-retry efter URL-refresh for at få exponential backoff
- CSV DictWriter genbruges i stedet for at oprette to separate instanser

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 14:27:12 +01:00
Martin Tranberg
59eb9a4ab0 Tilføj retries til URL-refresh ved manglende @microsoft.graph.downloadUrl i API svar 2026-03-27 14:11:28 +01:00
Martin Tranberg
1c3180e037 Opdater GEMINI.md med teknisk dokumentation af 'Self-Healing Sessions' 2026-03-27 11:58:09 +01:00
Martin Tranberg
6bc4dd8f20 Opdater README med info om automatisk fornyelse af Access Tokens 2026-03-27 11:09:15 +01:00
Martin Tranberg
18158d52b2 Håndter Access Token udløb ved automatisk at forny token på 401-fejl fra Graph API 2026-03-27 11:03:14 +01:00
Martin Tranberg
931fd0dd05 Dokumentér Auto-Refresh af udløbne download-links i README 2026-03-27 09:21:36 +01:00
Martin Tranberg
483dc70ef8 Håndter 401-fejl ved automatisk at forny download-links 2026-03-27 09:15:57 +01:00
Martin Tranberg
5d5c8b2d5b Opdater README med GUI instruktioner og stop-knap funktionalitet 2026-03-26 16:06:27 +01:00
Martin Tranberg
b33009c54c Tilføj stop-knap til GUI uden at ændre i hovedscriptet 2026-03-26 16:03:34 +01:00
Martin Tranberg
368f4c515c Tilføj moderne GUI UX (sharepoint_gui.py) ved hjælp af CustomTkinter 2026-03-26 15:59:24 +01:00
Martin Tranberg
4c52b0c8db Opdater dokumentation (README og GEMINI.md) med Production Ready specifikationer 2026-03-26 15:44:30 +01:00
Martin Tranberg
1ed21e4184 Production Readiness: Exponential Backoff, Resume Download, Logging og Integrity Verification 2026-03-26 15:43:02 +01:00
Martin Tranberg
a74abf4186 Tilføj paginering og forbedret status-logging for store filer 2026-03-26 15:38:54 +01:00
Martin Tranberg
908152153b Update README with real-time progress indicator and network drive stability features. 2026-03-26 15:30:53 +01:00
Martin Tranberg
6333f27037 Implementer parallel download med ThreadPoolExecutor (max 5 tråde) 2026-03-26 15:15:05 +01:00
Martin Tranberg
6849662483 Add pre-check for local path accessibility and specific error handling for disconnected network drives. 2026-03-26 15:02:39 +01:00
Martin Tranberg
6f65bf3f34 Enhance progress reporting with specific actions (Scanning/Checking/Downloading) and immediate counter updates. 2026-03-26 14:51:12 +01:00
Martin Tranberg
0314a19c3d Improve real-time status updates and recursive scanning visibility. 2026-03-26 14:47:00 +01:00
Martin Tranberg
95622ee1a8 Add progress indicator and detailed status updates to the download process. 2026-03-26 14:44:12 +01:00
Martin Tranberg
e3a3824a1c Fix SyntaxError in download_sharepoint.py caused by incorrect escaping during previous update. 2026-03-26 14:41:28 +01:00
Martin Tranberg
81d5a2f822 Update README with information about filename sanitization, long path support, and improved error handling. 2026-03-26 14:38:59 +01:00
Martin Tranberg
ef3d8fa56d Fix [Errno 22] Invalid argument by adding filename sanitization and long path support. Improved error reporting and folder path cleaning for Windows compatibility. 2026-03-26 14:36:48 +01:00
Martin Tranberg
aec8858362 Tilføj vejledning til Entra ID opsætning i README 2026-03-26 10:53:16 +01:00
Martin Tranberg
aea5ff68c0 Understøt download af hele biblioteket hvis FOLDERS_TO_DOWNLOAD er tom 2026-03-26 10:51:46 +01:00
Martin Tranberg
f67cfc22ee Tilføj connection_info skabelon og opdater README 2026-03-26 10:50:20 +01:00
Martin Tranberg
407e58baec Fix NameError: folders_str is not defined 2026-03-26 10:45:10 +01:00
Martin Tranberg
0f7c5fff1f Opdater README med token refresh og smart skip logik 2026-03-26 10:41:38 +01:00
Martin Tranberg
eca83031b1 Implementer token refresh og skip-logik for eksisterende filer 2026-03-26 10:41:01 +01:00
Martin Tranberg
1eb5218624 Add README.md with project documentation 2026-03-26 10:35:58 +01:00
Martin Tranberg
fb20712c2e Initial commit: Sharepoint folder download tool using Graph API 2026-03-26 10:34:31 +01:00