[Nym3-commit] r515 - trunk/nymbaron/Server
jr at conuropsis.org
jr at conuropsis.org
Sun Jun 11 17:34:16 CEST 2006
Author: jr
Date: 2006-06-11 17:34:16 +0200 (Sun, 11 Jun 2006)
New Revision: 515
Modified:
trunk/nymbaron/Server/User.py
Log:
- Adding a send queue (in order to store messages which could not be send due to
synopses shortage)
Modified: trunk/nymbaron/Server/User.py
===================================================================
--- trunk/nymbaron/Server/User.py 2006-05-24 10:16:09 UTC (rev 514)
+++ trunk/nymbaron/Server/User.py 2006-06-11 15:34:16 UTC (rev 515)
@@ -162,7 +162,9 @@
- int the number of surbs that can be used for the account in the
next 24 hours.
- list of (time, number), ordered by time, of the number of surbs
- used less than 24 hours ago"""
+ used less than 24 hours ago
+ - queue is a list of strings containing message to be sent"""
+
def __init__(self, username, config, create = 0):
"""0 : load user data throw an error if the user doesn't exist
1 : create user data throw an error if the user exists
@@ -175,6 +177,7 @@
self.mbox = None
self.syn = None
self.data = None
+ self.queue = None
self.lock = None
self._abort = False
try:
@@ -209,6 +212,7 @@
self._save_synbox()
self._save_mbox()
self._save_data()
+ self._save_queue()
self._release()
def __getitem__(self, key):
@@ -247,7 +251,7 @@
def nuke(self):
"""Delete a user account."""
for f in [self.mboxfile(), self.synboxfile(), self.indexfile(), \
- self.surbfile(), self.datafile]:
+ self.surbfile(), self.queuefile(), self.datafile]:
try:
os.unlink(f)
except OSError:
@@ -276,6 +280,9 @@
try:
sum = sum + os.stat(self.mboxfile())[6]
except: pass
+ try:
+ sum = sum + os.stat(self.queuefile())[6]
+ except: pass
self.data['usage'] = sum
return sum
@@ -576,7 +583,32 @@
f = open(mbox, 'w')
pickle.dump(self.mbox, f)
f.close()
+
+ def load_queue(self):
+ """Loads the queue from the disk"""
+ if not self.queue == None:
+ return
+ queue = self.queuefile()
+ try:
+ f = open(queue, 'r')
+ self.queue = pickle.load(f)
+ f.close()
+ except IOError:
+ self.queue = []
+ def queuefile(self):
+ """Gets the queue file name"""
+ return self.config.path + os.sep + self.data['username'] + '.que'
+
+ def _save_queue(self):
+ """Flushs the mailbox to the disk"""
+ if self.queue == None:
+ return
+ queue = self.queuefile()
+ f = open(queue, 'w')
+ pickle.dump(self.queue, f)
+ f.close()
+
def synboxfile(self):
"""Gets the synbox file name"""
return self.config.path + os.sep + self.data['username'] + '.syn'
More information about the Nym3-commit
mailing list