[Nym3-commit] r85 - trunk
nym3-devel@lists.noreply.org
nym3-devel@lists.noreply.org
Thu, 05 Aug 2004 12:49:19 +0200
Author: laurent
Date: 2004-08-05 12:49:18 +0200 (Thu, 05 Aug 2004)
New Revision: 85
Modified:
trunk/User.py
Log:
User can delete a msg now.
Modified: trunk/User.py
===================================================================
--- trunk/User.py 2004-08-05 08:57:44 UTC (rev 84)
+++ trunk/User.py 2004-08-05 10:49:18 UTC (rev 85)
@@ -36,21 +36,15 @@
self._lock()
try:
f = open(self.datafile, 'r')
- if(create == 1):
+ if (create == 1):
f.close()
raise AlreadySuchUser
self.data = pickle.load(f)
f.close()
except IOError:
- #TODO check this
- #we do not need to save the data here, we can do it
- #when the object is destroyed
if create == 0: raise NoSuchUser()
- #f = open(self.datafile, 'w')
self.data = Config.default_settings
self.data['username'] = username
- #pickle.dump(self.data, f)
- #f.close()
def __del__(self):
if (not self._abort):
@@ -272,8 +266,9 @@
syn = Mail.synopsize(msg)
# Store the mail.
self.load_mbox()
+ self.load_index()
mid = Mail.genMid()
- while self.mbox.has_key(mid): mid = Mail.genMid()
+ while self.index.has_key(mid): mid = Mail.genMid()
self.mbox[mid] = msg # TODO : this is where we're supposed to crypt.
# store the synopsis
@@ -281,9 +276,30 @@
self.syn.append(([mid], 'clear', syn))
# create an index entry for the synopsis
+ self.index[mid] = {'time' : int(time.time()),
+ 'status' : 'nothing-sent' }
+
+ def delete_msg(self, mid):
+ """Delete a stored message. Delete the synopsis if possible"""
self.load_index()
- self.index[mid] = {'time' : int(time.time()), 'sent' : 'nothing' }
+ if not self.index.has_key(mid): return
+ self.load_mbox()
+ del self.mbox[mid]
+ self.index[mid]['status'] = 'deleted'
+ self.load_synbox()
+
+ for sl, enc, blurb in self.syn:
+ if mid in sl:
+ candelete = True
+ for omid in sl:
+ if not self.index[omid]['status'] == 'deleted':
+ candelete = False
+ if candelete:
+ self.syn.remove((sl, enc, blurb))
+ for omid in sl: del self.index[omid]
+ else: return
+
def setKeys(self,kid,kenc):
self.data['idKey'] = kid
self.data['encKey'] = kenc