From e62cf2f79e4c34cc07d2db6e2349a258cb4708dd Mon Sep 17 00:00:00 2001 From: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com> Date: Mon, 8 Mar 2021 09:45:10 +0200 Subject: [PATCH] Minor fixes for chat2 and store (#407) --- examples/v2/chat2.nim | 16 +++++++++++++--- .../v2/node/message_store/waku_message_store.nim | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/examples/v2/chat2.nim b/examples/v2/chat2.nim index 1b2929728..008ad0ddf 100644 --- a/examples/v2/chat2.nim +++ b/examples/v2/chat2.nim @@ -48,6 +48,7 @@ type Chat = ref object connected: bool # if the node is connected to another peer started: bool # if the node has started nick: string # nickname for this chat session + prompt: bool # chat prompt is showing type PrivateKey* = crypto.PrivateKey @@ -70,6 +71,12 @@ proc connectToNodes(c: Chat, nodes: seq[string]) {.async.} = await c.node.connectToNodes(nodes) c.connected = true +proc showChatPrompt(c: Chat) = + if not c.prompt: + stdout.write(">> ") + stdout.flushFile() + c.prompt = true + proc selectRandomNode(): string = randomize() let @@ -125,8 +132,7 @@ proc writeAndPrint(c: Chat) {.async.} = # echo "type /[help|?] for help" # Chat prompt - stdout.write(">> ") - stdout.flushFile() + showChatPrompt(c) let line = await c.transp.readLine() if line.startsWith("/help") or line.startsWith("/?") or not c.started: @@ -212,7 +218,7 @@ proc processInput(rfd: AsyncFD, rng: ref BrHmacDrbgContext) {.async.} = let nick = await readNick(transp) echo "Welcome, " & nick & "!" - var chat = Chat(node: node, transp: transp, subscribed: true, connected: false, started: true, nick: nick) + var chat = Chat(node: node, transp: transp, subscribed: true, connected: false, started: true, nick: nick, prompt: false) if conf.staticnodes.len > 0: await connectToNodes(chat, conf.staticnodes) @@ -288,6 +294,8 @@ proc processInput(rfd: AsyncFD, rng: ref BrHmacDrbgContext) {.async.} = if decodedPayload.isOK(): let payload = string.fromBytes(decodedPayload.get().payload) echo &"{payload}" + chat.prompt = false + showChatPrompt(chat) info "Hit subscribe handler", topic, payload, contentTopic = msg.contentTopic else: @@ -297,6 +305,8 @@ proc processInput(rfd: AsyncFD, rng: ref BrHmacDrbgContext) {.async.} = # No payload encoding/encryption from Waku let payload = string.fromBytes(msg.payload) echo &"{payload}" + chat.prompt = false + showChatPrompt(chat) info "Hit subscribe handler", topic, payload, contentTopic = msg.contentTopic else: diff --git a/waku/v2/node/message_store/waku_message_store.nim b/waku/v2/node/message_store/waku_message_store.nim index 5cebc3dbc..26ac42157 100644 --- a/waku/v2/node/message_store/waku_message_store.nim +++ b/waku/v2/node/message_store/waku_message_store.nim @@ -93,7 +93,7 @@ method getAll*(db: WakuMessageStore, onData: message_store.DataProc): MessageSto onData(uint64(timestamp), WakuMessage(contentTopic: ContentTopic(int(topic)), payload: @(toOpenArray(p, 0, l-1)))) - let res = db.database.query("SELECT timestamp, contentTopic, payload FROM messages", msg) + let res = db.database.query("SELECT timestamp, contentTopic, payload FROM messages ORDER BY timestamp ASC", msg) if res.isErr: return err("failed")