intermediate
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
extension DateTimeFormat on DateTime {
|
||||
String _twoDigits(int n) => n.toString().padLeft(2, '0');
|
||||
|
||||
String formatWithMinutePrecision() {
|
||||
final year = this.year.toString();
|
||||
final month = _twoDigits(this.month);
|
||||
final day = _twoDigits(this.day);
|
||||
final hour = _twoDigits(this.hour);
|
||||
final minute = _twoDigits(this.minute);
|
||||
|
||||
return '$year-$month-$day $hour:$minute';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:crypto/crypto.dart';
|
||||
import 'package:lensai/domain/entities/equatable_image.dart';
|
||||
|
||||
extension ImageHash on Image {
|
||||
Future<String?> calculateHash() async {
|
||||
final bytes = await toByteData();
|
||||
if (bytes != null) {
|
||||
final digest = sha1.convert(bytes.buffer.asUint8List());
|
||||
return digest.toString();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
Future<EquatableImage> toEquatable() {
|
||||
return EquatableImage.calculate(this);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
extension UriFavicon on Uri {
|
||||
Uri genericFavicon() =>
|
||||
Uri.parse('https://icons.duckduckgo.com/ip3/$host.ico');
|
||||
}
|
||||
Reference in New Issue
Block a user