What's Changed
🐛 Bug Fixes
- Fixed critical
NoneTypecrash in the Google Drive downloader: in windowed PyInstaller builds,sys.stdoutandsys.stderrareNone.gdownandtqdmattempted to write to standard streams, raising'NoneType' object has no attribute 'write'. Resolved using a_suppress_gdown_outputcontext manager that safely redirects output to a dummy stream when standard streams are unset. - Removed deprecated
gdown6.x parameters: removedfuzzyandremaining_okarguments which were deprecated/removed in moderngdown6.x releases and caused immediate runtime crashes.
⚡ Google Drive Improvements
- Real filename resolution: filenames are now resolved directly from Google Drive metadata prior to downloading (
skip_download=True), preserving the original file names instead of falling back to generic IDs likegdrive_.... - Integrated UI progress: suppressed
gdown's internal console progress bar (quiet=True) and routed stream chunk updates into Pawchive's native download progress bar. - Resume support: enabled download resumption (
resume=True) to gracefully recover interrupted transfers.
🛡️ Enhanced Error Handling & Detection
- Quota & HTML error detection: added automatic detection for Google Drive bandwidth quota limits and HTML error response pages saved as files (
_is_quota_error_file). - Clear status reporting: provided clear, descriptive UI error messages for quota exhaustion, access restrictions, network timeouts, empty folder results, and user cancellation.