Add Warning for Sending Messages Quickly (#212)

* Warn About 2-Second Message Delay

* add comment

* update lines and cols
This commit is contained in:
pdxlocations
2025-07-28 23:04:57 -07:00
committed by GitHub
parent b314a24a0c
commit 8d111c5df7
3 changed files with 11 additions and 1 deletions
+8 -1
View File
@@ -1,5 +1,6 @@
import curses
import logging
import time
import traceback
from typing import Union
@@ -320,10 +321,15 @@ def handle_enter(input_text: str) -> str:
return input_text
elif len(input_text) > 0:
# TODO: This is a hack to prevent sending messages too quickly. Let's get errors from the node.
now = time.monotonic()
if now - ui_state.last_sent_time < 2.5:
contact.ui.dialog.dialog("Slow down", "Please wait 2 seconds between messages.")
return input_text
# Enter key pressed, send user input as message
send_message(input_text, channel=ui_state.selected_channel)
draw_messages_window(True)
ui_state.last_sent_time = now
# Clear entry window and reset input text
entry_win.erase()
return ""
@@ -335,6 +341,7 @@ def handle_ctrl_t(stdscr: curses.window) -> None:
send_traceroute()
curses.curs_set(0) # Hide cursor
contact.ui.dialog.dialog(
stdscr,
f"Traceroute Sent To: {get_name_from_database(ui_state.node_list[ui_state.selected_node])}",
"Results will appear in messages window.\nNote: Traceroute is limited to once every 30 seconds.",
)
+2
View File
@@ -3,7 +3,9 @@ from contact.ui.colors import get_color
def dialog(title: str, message: str) -> None:
"""Display a dialog with a title and message."""
curses.update_lines_cols()
height, width = curses.LINES, curses.COLS
# Calculate dialog dimensions
+1
View File
@@ -24,6 +24,7 @@ class ChatUIState:
selected_message: int = 0
selected_node: int = 0
current_window: int = 0
last_sent_time: float = 0.0
selected_index: int = 0
start_index: List[int] = field(default_factory=lambda: [0, 0, 0])