iro/iro.py
changeset 7 07dd2663ac90
parent 6 c5672760138b
child 8 cec27aeb7e69
--- a/iro/iro.py	Fri Oct 23 01:37:44 2009 +0200
+++ b/iro/iro.py	Wed Oct 28 02:35:01 2009 +0100
@@ -14,9 +14,8 @@
 # Server code
 
 from xmlrpc import SecureUserDBXMLRPCServer,UserDB
-import time, os, md5
+
 from user import User, Admin, NotSupportedFeature
-import content
 import anbieter
 import ConfigParser
 
@@ -27,68 +26,7 @@
     def createUser(self, user):
         self.userlist[self.createHash(user)]=user["class"](self.jobqueue)
 
-class Job(object):
-    '''
-    Basic class for all jobs
-    '''   
-    def __init__(self,provider,name):
-        self.provider=provider
-        self.name=name
-        self.status = "init"
-        self.dStatus={"good":[], "failed":[]}
 
-    def start(self):
-        self.status = "started"
-        
-    def stop(self):
-        self.status = "stopped"
-        
-    def getStatus(self,detailed):
-        if detailed and self.status == "started" or self.status == "sended":
-            return self.status, self.dStatus
-        return self.status, {}
-    
-    def getName(self):
-        return self.name
-        
-    def getProvider(self):
-        return self.provider
-        
-    def addGood(self, good):
-        if type(good) == list:
-            self.dStatus['good']=self.dStatus['good']+good
-        else:
-            self.dStatus['good'].append(good)
-    
-    def addFailed(self, failed):
-        if type(failed) == list:
-            self.dStatus['failed']=self.dStatus['failed']+failed
-        else:
-            self.dStatus['failed'].append(failed)
-
-class MessageJob(Job):
-    '''
-    A specialized class for smsjobs
-    '''
-    def __init__(self,provider,name, message,recipients):
-        self.message=message
-        self.recipients=recipients
-        Job.__init__(self,provider, name)
-        
-    def stop(self):
-        pass
-        
-    def start(self):
-        Job.start(self)
-        self.provider.setJob(self)
-        self.message.sendto(self.provider, self.recipients)
-        self.status="sended"
-
-    def getMessage(self):
-        return self.message
-        
-    def getRecipients(self):
-        return self.recipients
  
 
 class MySipgate(anbieter.sipgate):
@@ -135,60 +73,8 @@
         
         if failed:
             self.job.addFailed(failed)
-						
-class Jobs:
-    '''
-    Providing an list of jobs; each new job gets a hash id
-    '''
-    def __init__(self,manager, queue,provider):
-        self.jobs={}
-        self.manager=manager
-        self.queue=queue
-        self.provider=provider
-        
-
-    def __getitem__(self,key):
-        return self.jobs[key]
-
-    def __registerJob__(self, job):
-        id = self._createID()
-        self.jobs[id]=job
-        self.queue.put(job)
-        return id
 
-    def newSMS(self,message,recipients):
-        '''
-        creates a new SMS
-        '''
-        job=self.manager.MessageJob(self.provider["sms"],message, content.SMS(message),recipients)
-        return self.__registerJob__(job)
 
-    def newFAX(self,subject, fax,recipients):
-        '''
-        creates a new Fax
-        '''
-        job=self.manager.MessageJob(self.provider["fax"],subject, content.FAX(subject, fax),recipients)
-        return self.__registerJob__(job)
-
-    def newMail(self,subject, body,recipients):
-        '''
-        creates a new Mail
-        '''
-        job=self.manager.MessageJob(self.provider["mail"],subject, content.Mail(subject, body),recipients)
-        return self.__registerJob__(job) 
-
-    def _createID(self):
-        '''
-        creats a random hash id
-        '''
-        while True:
-            m = md5.new()
-            m.update(str(time.time()))
-            m.update(os.urandom(10))
-            if not self.jobs.has_key(m.hexdigest):
-                self.jobs[m.hexdigest()]=None
-                break
-        return m.hexdigest()
 
 def start(userlist):
     from multiprocessing import Queue
@@ -215,7 +101,10 @@
     
     #Benutzerdatenbank erstellen
     queue = Queue()
-    provider={"sms":sip, "fax":sip, "mail":localhost}
+    provider={"sms":{"sipgate":sip, "smstrade":smstrade, "default":sip, }, 
+                    "fax":{"sipgate":sip, "default":sip, }, 
+                    "mail":{"localhost":localhost, "default":localhost, }, }
+    
     jobqueue=Jobs(manager,  queue, provider)
     userdb=MyUserDB(userlist,jobqueue)