[Nym3-commit] r270 - trunk/nym3/Client
jr at conuropsis.org
jr at conuropsis.org
Sat May 28 15:46:54 CEST 2005
Author: jr
Date: 2005-05-28 15:46:53 +0200 (Sat, 28 May 2005)
New Revision: 270
Modified:
trunk/nym3/Client/Main.py
Log:
- replace some print by ui.display
- add mid format checking
- add dereference in summarize
Modified: trunk/nym3/Client/Main.py
===================================================================
--- trunk/nym3/Client/Main.py 2005-05-22 00:15:55 UTC (rev 269)
+++ trunk/nym3/Client/Main.py 2005-05-28 13:46:53 UTC (rev 270)
@@ -167,7 +167,7 @@
return False
return len(ds) <= Mail.midLen
-def decode_message_references(refs, keys, h):
+def decode_message_references(ui, refs, keys, h):
"""Generate a list of mids from a list of message references, refs,
a list of keys and a hashtable.
a reference is either a mid or a string of the format <key>:<val>,
@@ -180,16 +180,20 @@
if is_hex_mid(e):
l.append(e)
else:
- print "%s: not a valid mid" % e
+ ui.display("%s: not a valid mid" % e)
else:
s = e.split(':', 1)
if s[0] not in keys:
- print "%s: not a valid index key" % s[0]
+ ui.display("%s: not a valid index key" % s[0])
continue
try:
- l.append(h[s[0]][s[1]])
+ e2 = h[s[0]][s[1]]
+ if is_hex_mid(e2):
+ l.append(2)
+ else:
+ ui.display("%s: dereferenced value not a valid mid" % e)
except KeyError:
- print "%s: not a valid index for key %s" % (s[1], s[0])
+ ui.display("%s: not a valid index for key %s" % (s[1], s[0]))
return l
def processMessage(msg, config, ui, nickname):
@@ -200,7 +204,7 @@
try:
account = Account.Account(config, nickname)
except NoSuchAccount:
- print "%s: no account corresponding to this nickname" % nickname
+ ui.display("%s: no account corresponding to this nickname" % nickname)
sys.exit(1)
for com in comList:
if (com.ct() == SToCCODE['Created']):
@@ -362,10 +366,24 @@
def Summarize(ui, config, nickname = None, max = None, older = None):
if not max: max = config.max_syn
- if older: older = binascii.unhexlify(older)
- else: older = chr(0) * 20
account = get_account_from_nickname(ui, config, nickname,
"No nickname given, abort\nUse -n <nickname>")
+ if older:
+ if is_hex_mid(older):
+ older = binascii.unhexlify(older)
+ else:
+ idx = account.build_index(ui, config, account)
+ l = decode_message_references([older], ['syn'], {'syn': idx})
+ if len(l) == 1:
+ older = binascii.unhexlify(l[0])
+ else:
+ #The passed reference didn't correspond to a valid mid, abort
+ ui.display('the reference passed did not correspond to a ' +
+ 'valid mid, abort')
+ sys.exit(1)
+ else:
+ #no older given, defaults to the oldest mid
+ older = chr(0) * 20
summ = Message.Summarize()
summ.fromData(max, older)
try:
More information about the Nym3-commit
mailing list