mirror of
https://github.com/vishalxl/nostr_console.git
synced 2025-03-27 02:01:51 +01:00
tweaked some constants to get fewer events
and added fn to print info about event types
This commit is contained in:
parent
9b52db93f1
commit
7448ef682a
@ -37,8 +37,11 @@ void printVersion() {
|
||||
|
||||
Future<void> main(List<String> arguments) async {
|
||||
Logger.root.level = Level.ALL; // defaults to Level.INFO
|
||||
DateTime appStartTime = DateTime.now();
|
||||
print("app start time: $appStartTime");
|
||||
Logger.root.onRecord.listen((record) {
|
||||
print('${record.level.name}: ${record.time}: ${record.message}');
|
||||
//print(record.time.runtimeType);
|
||||
print('${record.level.name}: ${record.time.difference(appStartTime)}: ${record.message}');
|
||||
});
|
||||
|
||||
final parser = ArgParser()..addOption(requestArg, abbr: 'q') ..addOption(pubkeyArg, abbr:"p")..addOption(prikeyArg, abbr:"k")
|
||||
@ -274,6 +277,7 @@ Future<void> main(List<String> arguments) async {
|
||||
// if more than 1000 posts have already been read from the file, then don't get too many day's events. Only for last 3 days.
|
||||
if(numFilePosts > 1000) {
|
||||
daysToGetEventsFor = 3;
|
||||
gDefaultNumWaitSeconds = gDefaultNumWaitSeconds ~/3;
|
||||
}
|
||||
|
||||
getUserEvents(gListRelayUrls1, userPublicKey, gLimitPerSubscription, getSecondsDaysAgo(daysToGetEventsFor * 100));
|
||||
@ -285,7 +289,7 @@ Future<void> main(List<String> arguments) async {
|
||||
// TODO get all 40 events, and then get all #e for them ( responses to them)
|
||||
|
||||
stdout.write('Waiting for user posts to come in.....');
|
||||
Future.delayed(const Duration(milliseconds: gDefaultNumWaitSeconds), () {
|
||||
Future.delayed( Duration(milliseconds: gDefaultNumWaitSeconds), () {
|
||||
|
||||
initialEvents.addAll(getRecievedEvents());
|
||||
clearEvents();
|
||||
@ -311,11 +315,14 @@ Future<void> main(List<String> arguments) async {
|
||||
getContactFeed(gListRelayUrls1, contacts, gLimitPerSubscription, getSecondsDaysAgo(2 * daysToGetEventsFor));
|
||||
|
||||
// calculate top mentioned ptags, and then get the events for those users
|
||||
//log.info('calling getpTags');
|
||||
List<String> pTags = getpTags(initialEvents, gMaxPtagsToGet);
|
||||
//log.info('after getpTags\n');
|
||||
getMultiUserEvents(gListRelayUrls1, pTags, gLimitPerSubscription, getSecondsDaysAgo(daysToGetEventsFor));
|
||||
|
||||
|
||||
stdout.write('Waiting for feed to come in..............');
|
||||
Future.delayed(const Duration(milliseconds: gDefaultNumWaitSeconds * 1), () {
|
||||
Future.delayed(Duration(milliseconds: gDefaultNumWaitSeconds * 1), () {
|
||||
|
||||
initialEvents.addAll(getRecievedEvents());
|
||||
clearEvents();
|
||||
@ -324,7 +331,10 @@ Future<void> main(List<String> arguments) async {
|
||||
if( gDebug > 0) log.info("Received ptag events events.");
|
||||
|
||||
// Creat tree from all events read form file
|
||||
//log.info("going to call getTree.");
|
||||
Store node = getTree(initialEvents);
|
||||
//node.printEventInfo();
|
||||
//log.info("after getTree returned.");
|
||||
gStore = node;
|
||||
|
||||
clearEvents();
|
||||
|
@ -622,9 +622,12 @@ Future<void> otherOptionsMenuUi(Store node) async {
|
||||
print("\n");
|
||||
relays.printInfo();
|
||||
print("\n");
|
||||
printUnderlined("Posts and User");
|
||||
print("Total number of kind-1 posts: ${node.count()}");
|
||||
print("Total number of all events: ${node.allChildEventsMap.length}");
|
||||
printUnderlined("Event and User Info");
|
||||
//print("Total number of kind-1 posts: ${node.count()}");
|
||||
|
||||
print("\nEvent distribution by event kind:\n");
|
||||
node.printEventInfo();
|
||||
print("\nTotal number of all events: ${node.allChildEventsMap.length}");
|
||||
print("Total number of user profiles: ${gKindONames.length}\n");
|
||||
printUnderlined("Logged in user Info");
|
||||
if( userPrivateKey.length == 64) {
|
||||
@ -1183,7 +1186,7 @@ void showInitialNotifications(Store node) {
|
||||
Future<void> mainMenuUi(Store node) async {
|
||||
|
||||
clearScreen();
|
||||
|
||||
//log.info("in main menu");
|
||||
//Show only notifications
|
||||
showInitialNotifications(node);
|
||||
|
||||
|
@ -9,19 +9,19 @@ final log = Logger('ExampleLogger');
|
||||
// for debugging
|
||||
String gCheckEventId = "fg ee810ea73072af056cceaa6d051b4fcce60739247f7bcc752e72fa5defb64f09";
|
||||
|
||||
const int gDefaultNumWaitSeconds = 2000; // is used in main()
|
||||
int gDefaultNumWaitSeconds = 3000; // is used in main()
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// file related settings
|
||||
const String gDefaultEventsFilename = "all_nostr_events.txt";
|
||||
String gEventsFilename = ""; // is set in arguments, and if set, then file is read from and written to
|
||||
bool gDontWriteOldEvents = true;
|
||||
const int gDontSaveBeforeDays = 100; // dont save events older than this many days if gDontWriteOldEvents flag is true
|
||||
const int gDontSaveBeforeDays = 20; // dont save events older than this many days if gDontWriteOldEvents flag is true
|
||||
const int gDeletePostsOlderThanDays = 20;
|
||||
bool gOverWriteFile = false; // overwrite the file, and don't just append. Will write all events in memory.
|
||||
|
||||
const int gDontAddToStoreBeforeDays = 60; // events older than this are not added to the Store of all events
|
||||
|
||||
const int gDaysToGetEventsFor = 20; // when getting events, this is the since field (unless a fully formed request is given in command line)
|
||||
const int gDaysToGetEventsFor = 10; // when getting events, this is the since field (unless a fully formed request is given in command line)
|
||||
const int gLimitPerSubscription = 6000;
|
||||
|
||||
// don't show notifications for events that are older than 5 days and come when program is running
|
||||
|
@ -905,6 +905,8 @@ class Store {
|
||||
}
|
||||
}); // going over tempChildEventsMap and adding children to their parent's .children list
|
||||
|
||||
//log.info("in middle of fromJson");
|
||||
|
||||
tempChildEventsMap.forEach((newEventId, tree) {
|
||||
int eKind = tree.event.eventData.kind;
|
||||
if( eKind == 142 || eKind == 140 || eKind == 141) {
|
||||
@ -988,7 +990,7 @@ class Store {
|
||||
return;
|
||||
}
|
||||
|
||||
// expand mentions ( and translate if flag is set) and then add event to main event map
|
||||
// expand mentions ( and translate if flag is set) and then add event to main event map; 142 events are expanded later
|
||||
if( newEvent.eventData.kind != 142)
|
||||
newEvent.eventData.translateAndExpandMentions(directRooms, allChildEventsMap); // this also handles dm decryption for kind 4 messages, for kind 1 will do translation/expansion;
|
||||
|
||||
@ -1623,10 +1625,14 @@ class Store {
|
||||
}
|
||||
}
|
||||
|
||||
// only write if its not too old
|
||||
// only write if its not too old ( except in case of user logged in)
|
||||
if( gDontWriteOldEvents) {
|
||||
if( tree.event.eventData.createdAt < getSecondsDaysAgo(gDontSaveBeforeDays)) {
|
||||
continue;
|
||||
if( tree.event.eventData.createdAt < getSecondsDaysAgo(gDontSaveBeforeDays) ) {
|
||||
if( tree.event.eventData.pubkey != userPublicKey ) {
|
||||
if( !(tree.event.eventData.kind == 4 && isValidDirectMessage(tree.event.eventData)))
|
||||
continue;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2030,6 +2036,34 @@ class Store {
|
||||
return;
|
||||
}
|
||||
|
||||
void printEventInfo() {
|
||||
Map<int, int> eventCounterMap = {} ;
|
||||
|
||||
List<int> kindCounted = [0, 1, 3, 4, 5, 6, 7, 40, 41, 42, 140, 141, 142];
|
||||
for( var k in kindCounted ) {
|
||||
eventCounterMap[k] = 0;
|
||||
}
|
||||
|
||||
for(var t in allChildEventsMap.values) {
|
||||
EventData e = t.event.eventData;
|
||||
eventCounterMap[e.kind] = eventCounterMap[e.kind]??0 + 1;
|
||||
if( eventCounterMap.containsKey(e.kind)) {
|
||||
//print("added one more for ${e.kind}");
|
||||
eventCounterMap[e.kind] = eventCounterMap[e.kind]! + 1;
|
||||
//print("eventCounterMap[e.kind] = ${eventCounterMap[e.kind]}");
|
||||
} else {
|
||||
//print("added first for ${e.kind}");
|
||||
eventCounterMap[e.kind] = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
printUnderlined("kind count");
|
||||
for( var k in kindCounted) {
|
||||
print("${k.toString().padRight(5)} ${eventCounterMap[k]}");
|
||||
}
|
||||
}
|
||||
|
||||
} //================================================================================================================================ end Store
|
||||
|
||||
int ascendingTimeTree(Tree a, Tree b) {
|
||||
@ -2105,7 +2139,7 @@ Store getTree(Set<Event> events) {
|
||||
Store node = Store.fromEvents(events);
|
||||
//log.info("After calling fromEvents with ${node.allChildEventsMap.length} events in its internal store");
|
||||
|
||||
// translate and expand mentions for all
|
||||
// translate and expand mentions for all ( both take 0.5 sec for 20k events)
|
||||
events.where((element) => element.eventData.kind != 142).forEach( (event) => event.eventData.translateAndExpandMentions(node.directRooms, node.allChildEventsMap));;
|
||||
events.where((element) => element.eventData.kind == 142).forEach( (event) => event.eventData.translateAndExpand14x(node.directRooms, node.encryptedChannels, node.allChildEventsMap));;
|
||||
if( gDebug > 0) log.info("expand mentions finished.");
|
||||
|
Loading…
x
Reference in New Issue
Block a user