[27280] in Source-Commits
discuss-ng commit: Implement the refresh command
daemon@ATHENA.MIT.EDU (Victor Vasiliev)
Mon Sep 16 02:30:52 2013
Date: Mon, 16 Sep 2013 02:30:45 -0400
From: Victor Vasiliev <vasilvv@MIT.EDU>
Message-Id: <201309160630.r8G6UjEe014803@drugstore.mit.edu>
To: source-commits@MIT.EDU
https://github.com/mit-athena/discuss-ng/commit/991d79bdc1601431bf81cbfa22565728b110677d
commit 991d79bdc1601431bf81cbfa22565728b110677d
Author: Victor Vasiliev <vasilvv@mit.edu>
Date: Mon Sep 16 02:05:32 2013 -0400
Implement the refresh command
This command fetches the new transactions from the discuss server.
ndsc | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/ndsc b/ndsc
index 319c6b8..fbfb1e7 100755
--- a/ndsc
+++ b/ndsc
@@ -231,6 +231,27 @@ def handle_transaction_undelete():
transactions.insert(new_pos, trn)
transaction_numbers.insert(new_pos, trn.number)
+def handle_refresh():
+ global transactions, transaction_numbers
+ global max_number, max_sender_len
+
+ meeting.load_info(force = True)
+ old_end = transactions[-1].number
+ new_end = meeting.last
+
+ if old_end >= new_end:
+ return
+
+ new_transactions = meeting.transactions(old_end + 1, new_end)
+ if not new_transactions:
+ return
+
+ transactions += new_transactions
+
+ transaction_numbers += [trn.number for trn in transactions]
+ max_number = new_transactions[-1].number
+ max_sender_len = max(max_sender_len, max(len(trn.signature) for trn in new_transactions))
+
def reset_multiplier():
global status_bar, multiplier_acc
@@ -288,6 +309,8 @@ def main_loop():
handle_transaction_undelete()
if ch == ord('g'):
pos_cur = bisect.bisect_left(transaction_numbers, multiplier)
+ if ch == ord('r'):
+ handle_refresh()
if ch >= ord('0') and ch <= ord('9'):
multiplier_acc = multiplier_acc + chr(ch)