mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-02 14:56:20 +01:00
Handle erroneous datetimeoriginal tag
This commit is contained in:
parent
942c16b850
commit
7c2fed344c
2 changed files with 17 additions and 5 deletions
|
@ -94,7 +94,8 @@ class Exif with EquatableMixin {
|
|||
String? get model => data["Model"];
|
||||
|
||||
/// 0x9003 DateTimeOriginal
|
||||
DateTime? get dateTimeOriginal => data.containsKey("DateTimeOriginal")
|
||||
DateTime? get dateTimeOriginal => data.containsKey("DateTimeOriginal") &&
|
||||
(data["DateTimeOriginal"] as String).isNotEmpty
|
||||
? dateTimeFormat.parse(data["DateTimeOriginal"]).toUtc()
|
||||
: null;
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'dart:typed_data';
|
|||
import 'package:equatable/equatable.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:nc_photos/account.dart';
|
||||
import 'package:nc_photos/debug_util.dart';
|
||||
import 'package:nc_photos/entity/exif.dart';
|
||||
import 'package:nc_photos/or_null.dart';
|
||||
import 'package:nc_photos/string_extension.dart';
|
||||
|
@ -446,13 +447,23 @@ class File with EquatableMixin {
|
|||
|
||||
extension FileExtension on File {
|
||||
DateTime get bestDateTime {
|
||||
try {
|
||||
return overrideDateTime ??
|
||||
metadata?.exif?.dateTimeOriginal ??
|
||||
lastModified ??
|
||||
DateTime.now().toUtc();
|
||||
} catch (e) {
|
||||
_log.severe(
|
||||
"[bestDateTime] Non standard EXIF DateTimeOriginal '${metadata?.exif?.data["DateTimeOriginal"]}'" +
|
||||
(shouldLogFileName ? " for file: '$path'" : ""),
|
||||
e);
|
||||
return lastModified ?? DateTime.now().toUtc();
|
||||
}
|
||||
}
|
||||
|
||||
bool isOwned(String username) => ownerId == null || ownerId == username;
|
||||
|
||||
static final _log = Logger("entity.file.FileExtension");
|
||||
}
|
||||
|
||||
class FileRepo {
|
||||
|
|
Loading…
Reference in a new issue