[Nym3-commit] r47 - trunk

nym3-devel@lists.noreply.org nym3-devel@lists.noreply.org
Sun, 01 Aug 2004 17:54:38 +0200


Author: laurent
Date: 2004-08-01 17:54:36 +0200 (Sun, 01 Aug 2004)
New Revision: 47

Modified:
   trunk/Config.py
   trunk/Mail.py
   trunk/User.py
Log:
First mail manually relayed. Ha!


Modified: trunk/Config.py
===================================================================
--- trunk/Config.py	2004-08-01 13:46:47 UTC (rev 46)
+++ trunk/Config.py	2004-08-01 15:54:36 UTC (rev 47)
@@ -1,2 +1,5 @@
 
-path = '/var/lib/nym3'
+#path = '/var/lib/nym3'
+path = '.'
+
+default_settings = { 'quota' : 10 * 2**20, 'usage' : 0 }

Modified: trunk/Mail.py
===================================================================
--- trunk/Mail.py	2004-08-01 13:46:47 UTC (rev 46)
+++ trunk/Mail.py	2004-08-01 15:54:36 UTC (rev 47)
@@ -2,6 +2,7 @@
 import re
 import random
 import base64
+import string
 
 slen = 180
 random.seed(None)
@@ -33,13 +34,13 @@
 
 def mid2filename(mid):
     res = base64.encodestring(mid)
-    res.replace('/', '_')
-    res.replace("\n", '')
+    res = res.replace('/', '_')
+    res = string.strip(res)
     return res
 
 def filename2mid(mid):
     res = mid
-    res.replace('_', '/')
+    res = res.replace('_', '/')
     res = base64.decodestring(mid)
     return res
 

Modified: trunk/User.py
===================================================================
--- trunk/User.py	2004-08-01 13:46:47 UTC (rev 46)
+++ trunk/User.py	2004-08-01 15:54:36 UTC (rev 47)
@@ -3,6 +3,7 @@
 import Config
 import Mail
 import pickle
+import string
 
 class NoSuchUser(Exception): pass
 
@@ -10,24 +11,40 @@
     """Hold user data"""
     def __init__(self, username):
 	self.datafile = Config.path + os.sep + username + '.dat'
-	f = open(self.datafile, 'r') # TODO : Locks?
-	self.data = pickle.load(f)
-	f.close()
+	try:
+	    f = open(self.datafile, 'r') # TODO : Locks?
+	    self.data = pickle.load(f)
+	    f.close()
+	except IOError:
+	    f = open(self.datafile, 'w')
+	    self.data = Config.default_settings
+	    self.data['username'] = username
+	    pickle.dump(self.data, f)
 
     def quota(self):
-	return self.data.quota
+	return self.data['quota']
 
     def usage(self):
-	return self.data.usage
+	return self.data['usage']
 
     def save(self):
-	f = open(self.filename, 'w') # TODO : Locks?
+	f = open(self.datafile, 'w') # TODO : Locks?
 	pickle.dump(self.data, f)
 	f.close()
 
     def surbfile(self):
-	return Config.path + os.sep + username + '.surbs'
+	return Config.path + os.sep + self.data['username'] + '.surbs'
 
+    def relay(self, msg):
+	fname = '/tmp/' + Mail.mid2filename(Mail.genMid())
+	fname = string.strip(fname)
+	f = open(fname, 'w')
+	f.write(msg)
+	f.close()
+	ec = os.system("mixminion send -R " + self.surbfile() + " -i " + fname)
+	os.unlink(fname)
+	return ec
+
     def store(msg):
 	"Store an incoming message"
 	syn = Mail.synopsize(msg)
@@ -52,4 +69,8 @@
 	pickle.dump(self.syn, f)
 	f.close()
 	
-
+if __name__ == '__main__':
+    a = User('laurent')
+    import time
+    ec = a.relay("NYM3 TEST : " + repr(time.time()))
+    print "Errorcode is " + repr(ec)