wip: ingest
This commit is contained in:
+20
-10
@@ -1981,21 +1981,31 @@ fn collect_metadata(header: &[u8], req: &ThumbnailRequest, out: &mut Vec<Metadat
|
||||
image_id: req.image_id,
|
||||
captured_at: md.captured_at,
|
||||
captured_offset: md.captured_offset,
|
||||
camera: match (&md.make, &md.model) {
|
||||
// Bodies repeat the make inside the model ("Canon EOS 6D"), so
|
||||
// joining unconditionally yields "Canon Canon EOS 6D".
|
||||
(Some(make), Some(model)) if model.starts_with(make.as_str()) => {
|
||||
Some(model.trim().to_string())
|
||||
}
|
||||
(Some(make), Some(model)) => Some(format!("{} {}", make.trim(), model.trim())),
|
||||
(None, Some(model)) => Some(model.trim().to_string()),
|
||||
_ => None,
|
||||
},
|
||||
camera: camera_label(md.make.as_deref(), md.model.as_deref()),
|
||||
lens: md.lens.map(|l| l.trim().to_string()),
|
||||
iso: md.iso,
|
||||
});
|
||||
}
|
||||
|
||||
/// TRACES: FR-CAT-11
|
||||
/// The camera string the catalog stores, from an EXIF make and model.
|
||||
///
|
||||
/// One definition rather than one per caller, because an import's duplicate
|
||||
/// check compares against what a scan wrote (`dr_catalog::dedup`). Two
|
||||
/// spellings of the same body would not fail loudly — they would silently
|
||||
/// disable the cheap tier, and every re-inserted card would transfer in full
|
||||
/// before the digest caught it.
|
||||
pub fn camera_label(make: Option<&str>, model: Option<&str>) -> Option<String> {
|
||||
match (make, model) {
|
||||
// Bodies repeat the make inside the model ("Canon EOS 6D"), so
|
||||
// joining unconditionally yields "Canon Canon EOS 6D".
|
||||
(Some(make), Some(model)) if model.starts_with(make) => Some(model.trim().to_string()),
|
||||
(Some(make), Some(model)) => Some(format!("{} {}", make.trim(), model.trim())),
|
||||
(None, Some(model)) => Some(model.trim().to_string()),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Write a batch of dates and tell the UI, draining `found`.
|
||||
///
|
||||
/// Separate from the loop so the same path serves both the periodic flush and
|
||||
|
||||
Reference in New Issue
Block a user