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"];
|
String? get model => data["Model"];
|
||||||
|
|
||||||
/// 0x9003 DateTimeOriginal
|
/// 0x9003 DateTimeOriginal
|
||||||
DateTime? get dateTimeOriginal => data.containsKey("DateTimeOriginal")
|
DateTime? get dateTimeOriginal => data.containsKey("DateTimeOriginal") &&
|
||||||
|
(data["DateTimeOriginal"] as String).isNotEmpty
|
||||||
? dateTimeFormat.parse(data["DateTimeOriginal"]).toUtc()
|
? dateTimeFormat.parse(data["DateTimeOriginal"]).toUtc()
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ import 'dart:typed_data';
|
||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:nc_photos/account.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/entity/exif.dart';
|
||||||
import 'package:nc_photos/or_null.dart';
|
import 'package:nc_photos/or_null.dart';
|
||||||
import 'package:nc_photos/string_extension.dart';
|
import 'package:nc_photos/string_extension.dart';
|
||||||
|
@ -446,13 +447,23 @@ class File with EquatableMixin {
|
||||||
|
|
||||||
extension FileExtension on File {
|
extension FileExtension on File {
|
||||||
DateTime get bestDateTime {
|
DateTime get bestDateTime {
|
||||||
return overrideDateTime ??
|
try {
|
||||||
metadata?.exif?.dateTimeOriginal ??
|
return overrideDateTime ??
|
||||||
lastModified ??
|
metadata?.exif?.dateTimeOriginal ??
|
||||||
DateTime.now().toUtc();
|
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;
|
bool isOwned(String username) => ownerId == null || ownerId == username;
|
||||||
|
|
||||||
|
static final _log = Logger("entity.file.FileExtension");
|
||||||
}
|
}
|
||||||
|
|
||||||
class FileRepo {
|
class FileRepo {
|
||||||
|
|
Loading…
Reference in a new issue