mirror of
https://github.com/zapstore/zapstore.git
synced 2026-10-05 12:38:24 +00:00
Support new format (preparing for future NIP)
This commit is contained in:
+1
-1
@@ -300,7 +300,7 @@ mixin AppAdapter on Adapter<App> {
|
||||
releases = [];
|
||||
}
|
||||
} else {
|
||||
// NEW FORMAT
|
||||
// NEW FORMAT BRANCH
|
||||
final futures = appsNewFormat
|
||||
.map((app) => ref.releases.findAll(
|
||||
params: {
|
||||
|
||||
@@ -9,7 +9,6 @@ part 'file_metadata.g.dart';
|
||||
|
||||
@DataAdapter([NostrAdapter, FileMetadataAdapter])
|
||||
class FileMetadata extends base.FileMetadata with DataModelMixin<FileMetadata> {
|
||||
final BelongsTo<User> author;
|
||||
final BelongsTo<Release> release;
|
||||
final BelongsTo<User> signer;
|
||||
|
||||
@@ -17,8 +16,7 @@ class FileMetadata extends base.FileMetadata with DataModelMixin<FileMetadata> {
|
||||
Object? get id => event.id;
|
||||
|
||||
FileMetadata.fromJson(super.map)
|
||||
: author = belongsTo(map['author']),
|
||||
release = belongsTo(map['release']),
|
||||
: release = belongsTo(map['release']),
|
||||
signer = belongsTo(map['signer']),
|
||||
super.fromJson();
|
||||
|
||||
@@ -31,7 +29,19 @@ mixin FileMetadataAdapter on Adapter<FileMetadata> {
|
||||
final list = data is Iterable ? data : [data as Map];
|
||||
for (final e in list) {
|
||||
final map = e as Map<String, dynamic>;
|
||||
map['author'] = map['pubkey'];
|
||||
final isNewFormat = map['kind'] == 3063;
|
||||
if (isNewFormat) {
|
||||
// Map to old 1063
|
||||
map['kind'] = 1063;
|
||||
map['tags'].add([
|
||||
'min_sdk_version',
|
||||
base.BaseUtil.getTag(map['tags'], 'min_os_version')
|
||||
]);
|
||||
map['tags'].add([
|
||||
'target_sdk_version',
|
||||
base.BaseUtil.getTag(map['tags'], 'target_os_version')
|
||||
]);
|
||||
}
|
||||
}
|
||||
return super.deserialize(data);
|
||||
}
|
||||
|
||||
@@ -10,12 +10,6 @@ part of 'file_metadata.dart';
|
||||
|
||||
mixin _$FileMetadataAdapter on Adapter<FileMetadata> {
|
||||
static final Map<String, RelationshipMeta> _kFileMetadataRelationshipMetas = {
|
||||
'author': RelationshipMeta<User>(
|
||||
name: 'author',
|
||||
type: 'users',
|
||||
kind: 'BelongsTo',
|
||||
instance: (_) => (_ as FileMetadata).author,
|
||||
),
|
||||
'release': RelationshipMeta<Release>(
|
||||
name: 'release',
|
||||
inverseName: 'artifacts',
|
||||
@@ -64,13 +58,6 @@ extension FileMetadataAdapterX on Adapter<FileMetadata> {
|
||||
|
||||
extension FileMetadataRelationshipGraphNodeX
|
||||
on RelationshipGraphNode<FileMetadata> {
|
||||
RelationshipGraphNode<User> get author {
|
||||
final meta = _$FileMetadataAdapter._kFileMetadataRelationshipMetas['author']
|
||||
as RelationshipMeta<User>;
|
||||
return meta.clone(
|
||||
parent: this is RelationshipMeta ? this as RelationshipMeta : null);
|
||||
}
|
||||
|
||||
RelationshipGraphNode<Release> get release {
|
||||
final meta =
|
||||
_$FileMetadataAdapter._kFileMetadataRelationshipMetas['release']
|
||||
|
||||
@@ -178,6 +178,7 @@ mixin NostrAdapter<T extends DataModelMixin<T>> on Adapter<T> {
|
||||
if (metadataIds.isNotEmpty)
|
||||
ref.fileMetadata.findAll(
|
||||
params: {
|
||||
'kinds': {1063, 3063},
|
||||
'ids': metadataIds,
|
||||
'#m': [kAndroidMimeType],
|
||||
'ignoreReturn': true,
|
||||
|
||||
@@ -42,7 +42,8 @@ mixin ReleaseAdapter on Adapter<Release> {
|
||||
|
||||
for (final Map<String, dynamic> map in list) {
|
||||
final tags = map['tags'];
|
||||
map['app'] = base.BaseUtil.getTag(tags, 'a');
|
||||
map['app'] = base.BaseUtil.getTag(tags, 'a') ??
|
||||
'32267:${map['pubkey']}:${base.BaseUtil.getTag(tags, 'i')}';
|
||||
map['artifacts'] = base.BaseUtil.getTagSet(tags, 'e').toList();
|
||||
}
|
||||
return super.deserialize(data);
|
||||
|
||||
@@ -31,7 +31,6 @@ class AppDetailScreen extends HookConsumerWidget {
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final scrollController = ScrollController();
|
||||
|
||||
// TODO: Bug using remote=true in watchOne, use hook for now
|
||||
final snapshot = useFuture(useMemoized(() async {
|
||||
// Skip cache to actually hit the remote to refresh
|
||||
return await ref.apps
|
||||
|
||||
Reference in New Issue
Block a user