mirror of
https://github.com/vishalxl/nostr_console.git
synced 2025-06-26 16:50:50 +02:00
formatting changes, and improved mentions logic when displaying
This commit is contained in:
parent
87b4ce846c
commit
8bf61d346d
@ -4,12 +4,9 @@ import 'package:bip340/bip340.dart';
|
|||||||
import 'package:nostr_console/event_ds.dart';
|
import 'package:nostr_console/event_ds.dart';
|
||||||
import 'package:nostr_console/tree_ds.dart';
|
import 'package:nostr_console/tree_ds.dart';
|
||||||
import 'package:nostr_console/relays.dart';
|
import 'package:nostr_console/relays.dart';
|
||||||
|
|
||||||
import 'package:nostr_console/console_ui.dart';
|
import 'package:nostr_console/console_ui.dart';
|
||||||
|
|
||||||
import 'package:args/args.dart';
|
import 'package:args/args.dart';
|
||||||
|
|
||||||
|
|
||||||
// program arguments
|
// program arguments
|
||||||
const String pubkeyArg = "pubkey";
|
const String pubkeyArg = "pubkey";
|
||||||
const String prikeyArg = "prikey";
|
const String prikeyArg = "prikey";
|
||||||
@ -158,7 +155,6 @@ Future<void> main(List<String> arguments) async {
|
|||||||
stdout.write("...received ${getRecievedEvents().length} events made by the user\n");
|
stdout.write("...received ${getRecievedEvents().length} events made by the user\n");
|
||||||
|
|
||||||
// get the latest kind 3 event for the user, which lists his 'follows' list
|
// get the latest kind 3 event for the user, which lists his 'follows' list
|
||||||
List<String> contactList = [];
|
|
||||||
int latestContactsTime = 0, latestContactIndex = -1;
|
int latestContactsTime = 0, latestContactIndex = -1;
|
||||||
for( int i = 0; i < getRecievedEvents().length; i++) {
|
for( int i = 0; i < getRecievedEvents().length; i++) {
|
||||||
var e = getRecievedEvents()[i];
|
var e = getRecievedEvents()[i];
|
||||||
@ -168,7 +164,8 @@ Future<void> main(List<String> arguments) async {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if contact list was found, get user's feed
|
// if contact list was found, get user's feed, and keep the contact list for later use
|
||||||
|
List<String> contactList = [];
|
||||||
if (latestContactIndex != -1) {
|
if (latestContactIndex != -1) {
|
||||||
contactList = getContactFeed(getRecievedEvents()[latestContactIndex].eventData.contactList, 300);
|
contactList = getContactFeed(getRecievedEvents()[latestContactIndex].eventData.contactList, 300);
|
||||||
}
|
}
|
||||||
@ -183,7 +180,6 @@ Future<void> main(List<String> arguments) async {
|
|||||||
|
|
||||||
// get mentioned ptags, and then get the events for those users
|
// get mentioned ptags, and then get the events for those users
|
||||||
List<String> pTags = getpTags(getRecievedEvents());
|
List<String> pTags = getpTags(getRecievedEvents());
|
||||||
|
|
||||||
getMultiUserEvents(defaultServerUrl, pTags, 300);
|
getMultiUserEvents(defaultServerUrl, pTags, 300);
|
||||||
|
|
||||||
stdout.write('Waiting for rest of events to come in.....');
|
stdout.write('Waiting for rest of events to come in.....');
|
||||||
@ -193,8 +189,10 @@ Future<void> main(List<String> arguments) async {
|
|||||||
numOtherEvents = numOtherEvents - numFeedEvents - numUserEvents;
|
numOtherEvents = numOtherEvents - numFeedEvents - numUserEvents;
|
||||||
stdout.write("received $numOtherEvents other events\n");
|
stdout.write("received $numOtherEvents other events\n");
|
||||||
|
|
||||||
|
// get all events in Tree form
|
||||||
Tree node = getTree(getRecievedEvents());
|
Tree node = getTree(getRecievedEvents());
|
||||||
clearEvents();
|
clearEvents();
|
||||||
|
|
||||||
// call the mein UI function
|
// call the mein UI function
|
||||||
mainMenuUi(node, contactList);
|
mainMenuUi(node, contactList);
|
||||||
});
|
});
|
||||||
|
@ -2,6 +2,16 @@ import 'dart:io';
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
|
||||||
|
// name of executable
|
||||||
|
String exename = "nostr_console";
|
||||||
|
String version = "0.0.3";
|
||||||
|
|
||||||
|
// well known disposable test private key
|
||||||
|
const String gDefaultPrivateKey = "9d00d99c8dfad84534d3b395280ca3b3e81be5361d69dc0abf8e0fdf5a9d52f9";
|
||||||
|
const String gDefaultPublicKey = "e8caa2028a7090ffa85f1afee67451b309ba2f9dee655ec8f7e0a02c29388180";
|
||||||
|
String userPrivateKey = gDefaultPrivateKey;
|
||||||
|
String userPublicKey = gDefaultPublicKey;
|
||||||
|
|
||||||
const int gMinValidTextWidth = 60; // minimum text width acceptable
|
const int gMinValidTextWidth = 60; // minimum text width acceptable
|
||||||
const int gDefaultTextWidth = 120; // default text width
|
const int gDefaultTextWidth = 120; // default text width
|
||||||
int gTextWidth = gDefaultTextWidth; // is changed by --width option
|
int gTextWidth = gDefaultTextWidth; // is changed by --width option
|
||||||
@ -35,23 +45,15 @@ int gNumLastDays = 1;
|
|||||||
// global user names from kind 0 events, mapped from public key to user name
|
// global user names from kind 0 events, mapped from public key to user name
|
||||||
Map<String, String> gKindONames = {};
|
Map<String, String> gKindONames = {};
|
||||||
|
|
||||||
// global reactions entry. Mapts from <event reacted to id, List of Reactors>
|
// global reactions entry. Map of form <if of event reacted to, List of Reactors>
|
||||||
// reach Reactor is a list of 2-elements ( first is public id of reactor, second is comment)
|
// reach Reactor is a list of 2-elements ( first is public id of reactor, second is comment)
|
||||||
Map< String, List<List<String>> > gReactions = {};
|
Map< String, List<List<String>> > gReactions = {};
|
||||||
|
|
||||||
|
// bots ignored to reduce spam
|
||||||
List<String> gBots = [ "3b57518d02e6acfd5eb7198530b2e351e5a52278fb2499d14b66db2b5791c512", // robosats orderbook
|
List<String> gBots = [ "3b57518d02e6acfd5eb7198530b2e351e5a52278fb2499d14b66db2b5791c512", // robosats orderbook
|
||||||
"887645fef0ce0c3c1218d2f5d8e6132a19304cdc57cd20281d082f38cfea0072", // bestofhn
|
"887645fef0ce0c3c1218d2f5d8e6132a19304cdc57cd20281d082f38cfea0072", // bestofhn
|
||||||
"f4161c88558700d23af18d8a6386eb7d7fed769048e1297811dcc34e86858fb2" // bitcoin_bot
|
"f4161c88558700d23af18d8a6386eb7d7fed769048e1297811dcc34e86858fb2" // bitcoin_bot
|
||||||
];
|
];
|
||||||
// well known disposable test private key
|
|
||||||
const String gDefaultPrivateKey = "9d00d99c8dfad84534d3b395280ca3b3e81be5361d69dc0abf8e0fdf5a9d52f9";
|
|
||||||
const String gDefaultPublicKey = "e8caa2028a7090ffa85f1afee67451b309ba2f9dee655ec8f7e0a02c29388180";
|
|
||||||
String userPrivateKey = gDefaultPrivateKey;
|
|
||||||
String userPublicKey = gDefaultPublicKey;
|
|
||||||
|
|
||||||
// name of executable
|
|
||||||
String exename = "nostr_console";
|
|
||||||
String version = "0.0.2";
|
|
||||||
|
|
||||||
int gDebug = 0;
|
int gDebug = 0;
|
||||||
|
|
||||||
@ -77,7 +79,6 @@ String getNumDashes(int num) {
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
String rightShiftContent(String s, int numSpaces) {
|
String rightShiftContent(String s, int numSpaces) {
|
||||||
String newString = "";
|
String newString = "";
|
||||||
int newlineCounter = 0;
|
int newlineCounter = 0;
|
||||||
@ -203,7 +204,14 @@ class EventData {
|
|||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> placeHolders = ["#[0]", "#[1]", "#[2]", "#[3]", "#[4]", "#[5]" ];
|
// just check if there is any square bracket in comment, if not we return
|
||||||
|
String squareBracketStart = "[", squareBracketEnd = "]";
|
||||||
|
if( !content.contains(squareBracketStart) || !content.contains(squareBracketEnd) ) {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
// replace the patterns
|
||||||
|
List<String> placeHolders = ["#[0]", "#[1]", "#[2]", "#[3]", "#[4]", "#[5]", "#[6]", "#[7]" ];
|
||||||
for(int i = 0; i < placeHolders.length; i++) {
|
for(int i = 0; i < placeHolders.length; i++) {
|
||||||
int index = -1;
|
int index = -1;
|
||||||
Pattern p = placeHolders[i];
|
Pattern p = placeHolders[i];
|
||||||
@ -215,12 +223,8 @@ class EventData {
|
|||||||
if( tags[i].isEmpty || tags[i].length < 2) {
|
if( tags[i].isEmpty || tags[i].length < 2) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
String author = getAuthorName(tags[i][1]);
|
String author = getAuthorName(tags[i][1]);
|
||||||
|
|
||||||
//print("\n\nauthor mention: i = $i index = $index tags[i][1] = ${tags[i][1]} author = $author");
|
|
||||||
//print("tags = $tags");
|
|
||||||
|
|
||||||
//print("in expandMentions: changing content at index i = $i");
|
|
||||||
content = "${content.substring(0, index)} @$author${content.substring(index + 4)}";
|
content = "${content.substring(0, index)} @$author${content.substring(index + 4)}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user