[Nym3-commit] r252 - trunk/nym3/Client
laurent at conuropsis.org
laurent at conuropsis.org
Sat May 7 17:22:53 CEST 2005
Author: laurent
Date: 2005-05-07 17:22:51 +0200 (Sat, 07 May 2005)
New Revision: 252
Modified:
trunk/nym3/Client/Main.py
Log:
Add client `dump-syn' command.
Modified: trunk/nym3/Client/Main.py
===================================================================
--- trunk/nym3/Client/Main.py 2005-05-07 15:22:11 UTC (rev 251)
+++ trunk/nym3/Client/Main.py 2005-05-07 15:22:51 UTC (rev 252)
@@ -51,6 +51,7 @@
\tget\t\tRetrieve email
\tprocess\t\tProcess returning server messages
\tlist-syn\tList already fetched summaries
+ \tdump-syn\tDump already fetched summaries
\tlist-mbox\tList already fetched emails
\tsend-surb\tSend SURBs
\texport\t\tExport already fetched emails to a file"""
@@ -397,6 +398,36 @@
ui.display(Mail.syn_summary(syn))
index += 1
+def dump_syn(ui, config, nickname = None):
+ account = get_account_from_nickname(ui, config, nickname,
+ "No nickname given, abort\nUse -n <nickname>")
+ synbox = account.get_synbox()
+ mbox = account.get_mbox()
+ secring = decode_secring(config, ui)
+ index = 1
+ for (midlist, bf, enc_synset) in synbox:
+ bflist = Mail.bf2list(bf)
+ synset = decipher_string(enc_synset, secring, account['encKeys'])
+ if synset == None:
+ ui.display("unable to decipher a synopses blob, lost keys?")
+ #TODO remove the blob?
+ #TODO if yes remove the following line
+ index += len(midlist)
+ else:
+ for i, mid in enumerate(midlist):
+ synlen = Message.strToIntBE(synset[20: 22])
+ syn = synset[22: 22 + synlen]
+ synset = synset[22 + synlen:]
+ if mbox.has_key(mid):
+ avail = "email available"
+ elif i in bflist:
+ avail = "email available on server"
+ else:
+ avail = "email not available"
+ ui.display("%d %s %s" % (index, binascii.hexlify(mid), avail))
+ ui.display(syn)
+ index += 1
+
def list_mbox(ui, config, nickname = None):
account = get_account_from_nickname(ui, config, nickname,
"No nickname given, abort\nUse -n <nickname>")
@@ -569,13 +600,24 @@
parser = OptionParser()
parser.add_option("-n", "--nickname", action = "store",
dest = "nickname", help = "The nickname "
- "of the account whose emails to request")
+ "of the account whose synopsis to list")
(options, args) = parser.parse_args(args[2:])
ui = CLI()
config = Config.Config()
list_syn(ui, config, options.nickname)
sys.exit(0)
+ if args[1] == "dump-syn":
+ parser = OptionParser()
+ parser.add_option("-n", "--nickname", action = "store",
+ dest = "nickname", help = "The nickname "
+ "of the account whose synopsis to dump")
+ (options, args) = parser.parse_args(args[2:])
+ ui = CLI()
+ config = Config.Config()
+ dump_syn(ui, config, options.nickname)
+ sys.exit(0)
+
if args[1] == "list-mbox":
parser = OptionParser()
parser.add_option("-n", "--nickname", action = "store",
More information about the Nym3-commit
mailing list