mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-19 16:23:37 +00:00
31 lines
1.1 KiB
Dart
31 lines
1.1 KiB
Dart
import '../../models/attachment_media_type_enum.dart';
|
|
import '../../models/image_entry.dart';
|
|
import '../../models/media_attachment.dart';
|
|
|
|
extension ImageEntryFriendicaExtension on ImageEntry {
|
|
static ImageEntry fromJson(Map<String, dynamic> json) => ImageEntry(
|
|
id: json['id'],
|
|
album: json['album'],
|
|
filename: json['filename'],
|
|
description: json['desc'],
|
|
thumbnailUrl: json['thumb'],
|
|
created: DateTime.tryParse(json['created']) ?? DateTime(0),
|
|
height: json['height'],
|
|
width: json['width'],
|
|
);
|
|
|
|
MediaAttachment toMediaAttachment() {
|
|
final thumbUri = Uri.parse(thumbnailUrl);
|
|
final extension = thumbUri.pathSegments.last.split('.').last;
|
|
final newFileName = '$id-0.$extension';
|
|
final fullFileUri = Uri.https(thumbUri.authority, '/photo/$newFileName');
|
|
return MediaAttachment(
|
|
uri: fullFileUri,
|
|
creationTimestamp: created.millisecondsSinceEpoch,
|
|
metadata: {},
|
|
thumbnailUri: thumbUri,
|
|
title: filename,
|
|
explicitType: AttachmentMediaType.image,
|
|
description: description);
|
|
}
|
|
}
|