mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
fix(core,fuse,gui): date photos by their EXIF when nothing else does
A Takeout photo with no sidecar and no date in its name was filed under the day of the import, and the app dated uploads by modification time. A new `exiftime` module reads DateTimeOriginal (then DateTimeDigitized) with its offset. Takeout uses it for undated photos it copies out for a thumbnail, and the daemon uses it for app uploads before falling back to the modification time (B244).
This commit is contained in:
1 parent
48c8910e7b
commit
47934b7ddb
9 files changed
+189
-6
No files matched your search
@@ -100,6 +100,7 @@ a live account since.
|
||||
|
||||
| Entry | Title |
|
||||
|---|---|
|
||||
| [B244](#b244--photos-without-a-sidecar-or-a-dated-name-are-filed-under-the-upload-day) | Photos without a sidecar or a dated name are filed under the upload day |
|
||||
| [B243](#b243--a-hung-mount-freezes-the-app-when-a-file-is-opened) | A hung mount freezes the app when a file is opened |
|
||||
| [B242](#b242--opening-a-large-photo-freezes-the-app) | Opening a large photo freezes the app |
|
||||
| [B241](#b241--every-closed-photo-viewer-stays-in-memory-with-its-photo) | Every closed photo viewer stays in memory with its photo |
|
||||
@@ -346,6 +347,35 @@ a live account since.
|
||||
|
||||
Newest first.
|
||||
|
||||
### B244 — Photos without a sidecar or a dated name are filed under the upload day
|
||||
|
||||
**Status:** Fixed, not verified live
|
||||
**Found:** 2026-10-16, architecture audit (`FINDINGS.md` 2.4.3).
|
||||
**Where:** `crates/pdfs-core/src/exiftime.rs`; the `UploadPhoto` request in
|
||||
`crates/pdfs-fuse/src/control.rs`; `Core::import_takeout` in `crates/pdfs-fuse/src/takeout.rs`;
|
||||
the upload in `crates/pdfs-gui/src/app/pages/photos.rs`
|
||||
|
||||
**Repro:**
|
||||
- Import a Takeout export in which a photo has no sidecar and no date in its name, such as
|
||||
`DSC01234.JPG`. It lands in the timeline under the day of the import.
|
||||
- Copy a photo from a camera card with a tool that does not keep modification times, and upload
|
||||
it from the app's gallery. It lands under the day of the copy.
|
||||
|
||||
**Cause.** Nothing read a photo's own EXIF for its capture time. A Takeout photo fell back to its
|
||||
sidecar, then to a date in its name, then to nothing, which Drive files as "now". The app sent
|
||||
the file's modification time.
|
||||
|
||||
**Fix.** `exiftime::capture_time` reads `DateTimeOriginal`, then `DateTimeDigitized`, each moved
|
||||
by its `OffsetTime…` tag when present and read as UTC otherwise, like a date in a file name. A
|
||||
Takeout photo with no other date uses it when the photo was copied out of the archive for its
|
||||
thumbnail (B236). The app no longer sends a time; the daemon dates the upload by EXIF, then by
|
||||
the modification time.
|
||||
|
||||
**Test:** `exiftime::tests` (four cases, among them
|
||||
`a_photo_is_dated_by_its_original_time_and_offset`).
|
||||
|
||||
---
|
||||
|
||||
### B243 — A hung mount freezes the app when a file is opened
|
||||
|
||||
**Status:** Fixed, not verified live
|
||||
|
||||
Reference in new issue
Block a user