mirror of
https://github.com/vishalxl/nostr_console.git
synced 2025-05-30 09:39:25 +02:00
Added EventNode and added support and test for printing with depth n
This commit is contained in:
parent
9c8d0c0af2
commit
19f8696f9b
@ -1,4 +1,8 @@
|
||||
|
||||
import 'dart:io';
|
||||
|
||||
|
||||
const int spacesPerDepth = 4;
|
||||
int keyLenPrinted = 6;
|
||||
String defaultServerUrl = 'wss://nostr.onsats.org';
|
||||
|
||||
@ -56,6 +60,37 @@ class EventData {
|
||||
json['kind'] as int,
|
||||
contactList);
|
||||
}
|
||||
|
||||
void printDepth(int d) {
|
||||
int numSpaces = d * spacesPerDepth;
|
||||
do {
|
||||
stdout.write(" ");
|
||||
numSpaces = numSpaces - 1;
|
||||
}
|
||||
|
||||
while(numSpaces > 0);
|
||||
}
|
||||
|
||||
void printEventData(int depth) {
|
||||
String max3(String v) => v.length > 3? v.substring(0,3) : v.substring(0, v.length);
|
||||
DateTime dTime = DateTime.fromMillisecondsSinceEpoch(createdAt *1000);
|
||||
if( createdAt == 0) {
|
||||
print("debug: createdAt == 0 for event $content");
|
||||
}
|
||||
|
||||
|
||||
print("");
|
||||
printDepth(depth);
|
||||
stdout.write("-------+\n");
|
||||
printDepth(depth);
|
||||
stdout.write("Author : ${max3(pubkey)}\n");
|
||||
printDepth(depth);
|
||||
stdout.write("Message: $content\n\n");
|
||||
printDepth(depth);
|
||||
stdout.write("id : ${max3(id)} Time: $dTime Kind: $kind");
|
||||
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
if( id == "non") {
|
||||
@ -90,6 +125,10 @@ class Event {
|
||||
return Event(json[0] as String, json[1] as String, EventData.fromJson(json[2]), [relay] );
|
||||
}
|
||||
|
||||
void printEvent(int depth) {
|
||||
eventData.printEventData(depth);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return '$eventData Seen on: ${seenOnRelays[0]}\n';
|
||||
@ -105,6 +144,31 @@ int ascendingTime(Event a, Event b) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
class EventNode {
|
||||
Event e;
|
||||
List<EventNode> children;
|
||||
|
||||
EventNode(this.e, this.children);
|
||||
|
||||
addChild(Event child) {
|
||||
EventNode node;
|
||||
node = EventNode(child, []);
|
||||
children.add(node);
|
||||
}
|
||||
|
||||
void printEventNode(int depth) {
|
||||
e.printEvent(depth);
|
||||
|
||||
for( int i = 0; i < children.length; i++) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void printEvents(List<Event> events) {
|
||||
events.sort(ascendingTime);
|
||||
for( int i = 0; i < events.length; i++) {
|
||||
|
@ -1,8 +1,33 @@
|
||||
import 'package:nostr_console/nostr_console.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
|
||||
EventData exampleEdata = EventData("id", "pubkey", "content", 1111111, 1, []);
|
||||
EventData exampleEdataChild = EventData("id", "pubkey", "content child", 1111111, 1, []);
|
||||
|
||||
Event exampleEvent = Event('event', 'id', exampleEdata, ['relay name']);
|
||||
Event exampleEventChild = Event('event', 'id', exampleEdataChild, ['relay name']);
|
||||
|
||||
EventNode exampleNode = EventNode(exampleEvent, []);
|
||||
EventNode exampleNodeChild = EventNode(exampleEventChild, []);
|
||||
|
||||
|
||||
|
||||
void main() {
|
||||
test('PrintEmptyEvent', () {
|
||||
expect(EventData("non","","",1,1,[]).toString(), "");
|
||||
});
|
||||
|
||||
test('printEventNode', () {
|
||||
|
||||
|
||||
EventNode node = exampleNode;
|
||||
Event child = exampleEventChild;
|
||||
|
||||
node.addChild(child);
|
||||
|
||||
print("node");
|
||||
node.printEventNode(4);
|
||||
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user