mirror of
https://github.com/vishalxl/nostr_console.git
synced 2025-09-18 01:20:38 +02:00
minor changes
This commit is contained in:
@@ -37,7 +37,7 @@ Future<void> main() async {
|
|||||||
|
|
||||||
Tree node = Tree.fromEvents(events);
|
Tree node = Tree.fromEvents(events);
|
||||||
node.printEventNode(0);
|
node.printEventNode(0);
|
||||||
print('number of all events: ${events.length}');
|
print('\nnumber of all events: ${events.length}');
|
||||||
|
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@@ -28,27 +28,33 @@ class Contact {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class EventData {
|
class EventData {
|
||||||
String id;
|
String id;
|
||||||
String pubkey;
|
String pubkey;
|
||||||
String content;
|
|
||||||
int createdAt;
|
int createdAt;
|
||||||
int kind;
|
int kind;
|
||||||
|
String content;
|
||||||
|
Map<String, String> tags;
|
||||||
|
|
||||||
List<Contact> contactList = [];
|
List<Contact> contactList = [];
|
||||||
|
|
||||||
EventData(this.id, this.pubkey, this.content, this.createdAt, this.kind, this.contactList);
|
EventData(this.id, this.pubkey, this.createdAt, this.kind, this.content, this.tags, this.contactList);
|
||||||
|
|
||||||
factory EventData.fromJson(dynamic json) {
|
factory EventData.fromJson(dynamic json) {
|
||||||
List<Contact> contactList = [];
|
List<Contact> contactList = [];
|
||||||
|
|
||||||
|
Map<String, String> t = {};
|
||||||
|
|
||||||
|
var jsonTags = json['tags'];
|
||||||
|
//print(jsonTags);
|
||||||
|
|
||||||
|
var numTags = jsonTags.length;
|
||||||
|
|
||||||
// NIP 02: if the event is a contact list type, then populate contactList
|
// NIP 02: if the event is a contact list type, then populate contactList
|
||||||
if(json['kind'] == 3) {
|
if(json['kind'] == 3) {
|
||||||
var tags = json['tags'];
|
|
||||||
//print(tags);
|
|
||||||
var numTags = tags.length;
|
|
||||||
for( int i = 0; i < numTags; i++) {
|
for( int i = 0; i < numTags; i++) {
|
||||||
|
var tag = jsonTags[i];
|
||||||
var tag = tags[i];
|
|
||||||
var n = tag.length;
|
var n = tag.length;
|
||||||
String server = defaultServerUrl;
|
String server = defaultServerUrl;
|
||||||
if( n >=3 ) {
|
if( n >=3 ) {
|
||||||
@@ -60,15 +66,29 @@ class EventData {
|
|||||||
Contact c = Contact(tag[1] as String, server, 3.toString());
|
Contact c = Contact(tag[1] as String, server, 3.toString());
|
||||||
contactList.add(c);
|
contactList.add(c);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if ( json['kind'] == 1) {
|
||||||
|
for( int i = 0; i < numTags; i++) {
|
||||||
|
var tag = jsonTags[i];
|
||||||
|
var n = tag.length;
|
||||||
|
//print(tag);
|
||||||
|
//print(tag.runtimeType);
|
||||||
|
if( tag[0] == "e") {
|
||||||
|
t["e"] = tag[1];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO add other tags
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// return
|
|
||||||
return EventData(json['id'] as String,
|
return EventData(json['id'] as String,
|
||||||
json['pubkey'] as String,
|
json['pubkey'] as String,
|
||||||
json['content'] as String,
|
|
||||||
json['created_at'] as int,
|
json['created_at'] as int,
|
||||||
json['kind'] as int,
|
json['kind'] as int,
|
||||||
|
json['content'] as String,
|
||||||
|
t,
|
||||||
contactList);
|
contactList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,7 +139,7 @@ class Event {
|
|||||||
if( json.length < 3) {
|
if( json.length < 3) {
|
||||||
String e = "";
|
String e = "";
|
||||||
e = json.length > 1? json[0]: "";
|
e = json.length > 1? json[0]: "";
|
||||||
return Event(e,"",EventData("non","","", 0, 0, []), [relay]);
|
return Event(e,"",EventData("non","", 0, 0, "", {}, []), [relay]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Event(json[0] as String, json[1] as String, EventData.fromJson(json[2]), [relay] );
|
return Event(json[0] as String, json[1] as String, EventData.fromJson(json[2]), [relay] );
|
||||||
@@ -153,13 +173,25 @@ class Tree {
|
|||||||
factory Tree.fromEvents(List<Event> events) {
|
factory Tree.fromEvents(List<Event> events) {
|
||||||
Event e = events[0];
|
Event e = events[0];
|
||||||
|
|
||||||
List<Tree> childTrees = [];
|
List<Tree> childTrees = [];
|
||||||
|
List<Event> nonTopEvents = [];
|
||||||
|
|
||||||
for( int i = 0; i < events.length; i++) {
|
for( int i = 0; i < events.length; i++) {
|
||||||
Event e = events[i];
|
Event e = events[i];
|
||||||
Tree node = Tree(e, []);
|
if( e.eventData.tags.isNotEmpty) {
|
||||||
|
stdout.write("${e.eventData.tags}\n");
|
||||||
|
nonTopEvents.add(e);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stdout.write("Adding top child: $e\n");
|
||||||
|
Tree node;
|
||||||
|
node = Tree(e, []);
|
||||||
|
childTrees.add(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
childTrees.add(node);
|
for(int i = 0; i < nonTopEvents.length; i++) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return Tree( e, childTrees);
|
return Tree( e, childTrees);
|
||||||
|
@@ -2,8 +2,8 @@ import 'package:nostr_console/nostr_console.dart';
|
|||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
|
||||||
EventData exampleEdata = EventData("id", "pubkey", "content", 1111111, 1, []);
|
EventData exampleEdata = EventData("id", "pubkey", 1111111, 1, "content", {}, []);
|
||||||
EventData exampleEdataChild = EventData("id", "pubkey", "content child", 1111111, 1, []);
|
EventData exampleEdataChild = EventData("id", "pubkey", 1111111, 1, "content child", {}, []);
|
||||||
|
|
||||||
Event exampleEvent = Event('event', 'id', exampleEdata, ['relay name']);
|
Event exampleEvent = Event('event', 'id', exampleEdata, ['relay name']);
|
||||||
Event exampleEventChild = Event('event', 'id', exampleEdataChild, ['relay name']);
|
Event exampleEventChild = Event('event', 'id', exampleEdataChild, ['relay name']);
|
||||||
@@ -15,7 +15,7 @@ Tree exampleNodeChild = Tree(exampleEventChild, []);
|
|||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
test('PrintEmptyEvent', () {
|
test('PrintEmptyEvent', () {
|
||||||
expect(EventData("non","","",1,1,[]).toString(), "");
|
expect(EventData("non","",1,1,"", {}, []).toString(), "");
|
||||||
});
|
});
|
||||||
|
|
||||||
test('printEventNode', () {
|
test('printEventNode', () {
|
||||||
|
Reference in New Issue
Block a user