2021-09-16 13:14:51 +00:00
|
|
|
import 'dart:convert';
|
|
|
|
|
2022-10-14 07:40:22 +00:00
|
|
|
// Visibility Constants
|
2022-09-19 11:52:20 +00:00
|
|
|
const visibilityVisible = 0;
|
|
|
|
const visibilityArchive = 1;
|
2022-10-14 07:40:22 +00:00
|
|
|
const visibilityHidden = 2;
|
|
|
|
|
|
|
|
// Collection SubType Constants
|
|
|
|
const subTypeDefaultHidden = 1;
|
2021-09-17 10:04:24 +00:00
|
|
|
|
2022-09-19 11:52:20 +00:00
|
|
|
const magicKeyVisibility = 'visibility';
|
2022-10-14 07:23:40 +00:00
|
|
|
// key for collection subType
|
|
|
|
const subTypeKey = 'subType';
|
2021-09-18 03:54:32 +00:00
|
|
|
|
2022-09-19 11:52:20 +00:00
|
|
|
const pubMagicKeyEditedTime = 'editedTime';
|
|
|
|
const pubMagicKeyEditedName = 'editedName';
|
2022-11-04 10:10:11 +00:00
|
|
|
const pubMagicKeyCaption = "caption";
|
2022-12-16 06:40:55 +00:00
|
|
|
const pubMagicKeyUploaderName = "uploaderName";
|
2021-10-26 05:25:42 +00:00
|
|
|
|
2021-09-20 06:41:38 +00:00
|
|
|
class MagicMetadata {
|
2021-09-16 13:14:51 +00:00
|
|
|
// 0 -> visible
|
|
|
|
// 1 -> archived
|
|
|
|
// 2 -> hidden etc?
|
|
|
|
int visibility;
|
|
|
|
|
2022-09-19 12:04:52 +00:00
|
|
|
MagicMetadata({required this.visibility});
|
2021-09-16 13:14:51 +00:00
|
|
|
|
2021-09-20 06:41:38 +00:00
|
|
|
factory MagicMetadata.fromEncodedJson(String encodedJson) =>
|
|
|
|
MagicMetadata.fromJson(jsonDecode(encodedJson));
|
2021-09-16 13:14:51 +00:00
|
|
|
|
2021-10-26 14:46:58 +00:00
|
|
|
factory MagicMetadata.fromJson(dynamic json) => MagicMetadata.fromMap(json);
|
2021-09-16 13:14:51 +00:00
|
|
|
|
2022-09-21 08:55:00 +00:00
|
|
|
static fromMap(Map<String, dynamic>? map) {
|
|
|
|
if (map == null) return null;
|
2021-09-20 06:41:38 +00:00
|
|
|
return MagicMetadata(
|
2022-09-19 11:52:20 +00:00
|
|
|
visibility: map[magicKeyVisibility] ?? visibilityVisible,
|
2021-09-16 17:21:27 +00:00
|
|
|
);
|
|
|
|
}
|
2021-09-16 13:14:51 +00:00
|
|
|
}
|
2021-10-26 05:25:42 +00:00
|
|
|
|
|
|
|
class PubMagicMetadata {
|
2022-09-23 00:44:06 +00:00
|
|
|
int? editedTime;
|
2022-09-22 15:06:26 +00:00
|
|
|
String? editedName;
|
2022-11-05 04:27:38 +00:00
|
|
|
String? caption;
|
2022-12-16 06:40:55 +00:00
|
|
|
String? uploaderName;
|
2021-10-26 05:25:42 +00:00
|
|
|
|
2022-12-16 06:40:55 +00:00
|
|
|
PubMagicMetadata({
|
|
|
|
this.editedTime,
|
|
|
|
this.editedName,
|
|
|
|
this.caption,
|
|
|
|
this.uploaderName,
|
|
|
|
});
|
2021-10-26 05:25:42 +00:00
|
|
|
|
|
|
|
factory PubMagicMetadata.fromEncodedJson(String encodedJson) =>
|
|
|
|
PubMagicMetadata.fromJson(jsonDecode(encodedJson));
|
|
|
|
|
|
|
|
factory PubMagicMetadata.fromJson(dynamic json) =>
|
|
|
|
PubMagicMetadata.fromMap(json);
|
|
|
|
|
2022-09-21 08:55:00 +00:00
|
|
|
static fromMap(Map<String, dynamic>? map) {
|
|
|
|
if (map == null) return null;
|
2021-10-26 05:25:42 +00:00
|
|
|
return PubMagicMetadata(
|
2022-09-19 11:52:20 +00:00
|
|
|
editedTime: map[pubMagicKeyEditedTime],
|
|
|
|
editedName: map[pubMagicKeyEditedName],
|
2022-11-05 04:27:38 +00:00
|
|
|
caption: map[pubMagicKeyCaption],
|
2022-12-16 06:40:55 +00:00
|
|
|
uploaderName: map[pubMagicKeyUploaderName],
|
2021-10-26 05:25:42 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
2022-03-21 09:32:24 +00:00
|
|
|
|
|
|
|
class CollectionMagicMetadata {
|
|
|
|
// 0 -> visible
|
|
|
|
// 1 -> archived
|
|
|
|
// 2 -> hidden etc?
|
|
|
|
int visibility;
|
|
|
|
|
2022-10-14 07:23:40 +00:00
|
|
|
// null/0 value -> no subType
|
|
|
|
// 1 -> DEFAULT_HIDDEN COLLECTION for files hidden individually
|
|
|
|
int? subType;
|
|
|
|
|
2022-10-31 10:12:04 +00:00
|
|
|
CollectionMagicMetadata({required this.visibility, this.subType});
|
2022-10-14 07:23:40 +00:00
|
|
|
|
|
|
|
Map<String, dynamic> toJson() {
|
|
|
|
final result = {magicKeyVisibility: visibility};
|
|
|
|
if (subType != null) {
|
|
|
|
result[subTypeKey] = subType!;
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
2022-03-21 09:32:24 +00:00
|
|
|
|
|
|
|
factory CollectionMagicMetadata.fromEncodedJson(String encodedJson) =>
|
|
|
|
CollectionMagicMetadata.fromJson(jsonDecode(encodedJson));
|
|
|
|
|
2022-06-11 08:23:52 +00:00
|
|
|
factory CollectionMagicMetadata.fromJson(dynamic json) =>
|
|
|
|
CollectionMagicMetadata.fromMap(json);
|
2022-03-21 09:32:24 +00:00
|
|
|
|
2022-09-21 08:55:00 +00:00
|
|
|
static fromMap(Map<String, dynamic>? map) {
|
|
|
|
if (map == null) return null;
|
2022-03-21 09:32:24 +00:00
|
|
|
return CollectionMagicMetadata(
|
2022-09-19 11:52:20 +00:00
|
|
|
visibility: map[magicKeyVisibility] ?? visibilityVisible,
|
2022-10-14 07:23:40 +00:00
|
|
|
subType: map[subTypeKey],
|
2022-03-21 09:32:24 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|