mirror of
https://github.com/vishalxl/nostr_console.git
synced 2025-06-17 04:10:52 +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;
|
int keyLenPrinted = 6;
|
||||||
String defaultServerUrl = 'wss://nostr.onsats.org';
|
String defaultServerUrl = 'wss://nostr.onsats.org';
|
||||||
|
|
||||||
@ -56,6 +60,37 @@ class EventData {
|
|||||||
json['kind'] as int,
|
json['kind'] as int,
|
||||||
contactList);
|
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
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
if( id == "non") {
|
if( id == "non") {
|
||||||
@ -90,6 +125,10 @@ class Event {
|
|||||||
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] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void printEvent(int depth) {
|
||||||
|
eventData.printEventData(depth);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return '$eventData Seen on: ${seenOnRelays[0]}\n';
|
return '$eventData Seen on: ${seenOnRelays[0]}\n';
|
||||||
@ -105,6 +144,31 @@ int ascendingTime(Event a, Event b) {
|
|||||||
return 1;
|
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) {
|
void printEvents(List<Event> events) {
|
||||||
events.sort(ascendingTime);
|
events.sort(ascendingTime);
|
||||||
for( int i = 0; i < events.length; i++) {
|
for( int i = 0; i < events.length; i++) {
|
||||||
|
@ -1,8 +1,33 @@
|
|||||||
import 'package:nostr_console/nostr_console.dart';
|
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 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() {
|
void main() {
|
||||||
test('PrintEmptyEvent', () {
|
test('PrintEmptyEvent', () {
|
||||||
expect(EventData("non","","",1,1,[]).toString(), "");
|
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