[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)