[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