merging von smstrade
authorSandro Knauß <knauss@netzguerilla.net>
Sat, 31 Oct 2009 03:22:33 +0100
changeset 12 08256d9ed9af
parent 11 f25033cf93e0 (diff)
parent 9 4c5f1cf088f6 (current diff)
child 13 2da41f4598e1
merging von smstrade
--- a/iro/.eric4project/iro.e4q	Sat Oct 31 03:10:44 2009 +0100
+++ b/iro/.eric4project/iro.e4q	Sat Oct 31 03:22:33 2009 +0100
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE UserProject SYSTEM "UserProject-4.0.dtd">
 <!-- eric4 user project file for project iro -->
-<!-- Saved: 2009-10-23, 01:39:27 -->
+<!-- Saved: 2009-10-31, 03:09:53 -->
 <!-- Copyright (C) 2009 Sandro Knauß, bugs@sandroknauss.de -->
 <UserProject version="4.0">
 </UserProject>
\ No newline at end of file
--- a/iro/.eric4project/iro.e4t	Sat Oct 31 03:10:44 2009 +0100
+++ b/iro/.eric4project/iro.e4t	Sat Oct 31 03:22:33 2009 +0100
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE Tasks SYSTEM "Tasks-4.2.dtd">
 <!-- eric4 tasks file for project iro -->
-<!-- Saved: 2009-10-23, 01:39:27 -->
+<!-- Saved: 2009-10-31, 03:09:54 -->
 <Tasks version="4.2">
 </Tasks>
\ No newline at end of file
--- a/iro/iro.e4p	Sat Oct 31 03:10:44 2009 +0100
+++ b/iro/iro.e4p	Sat Oct 31 03:22:33 2009 +0100
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE Project SYSTEM "Project-4.6.dtd">
 <!-- eric4 project file for project iro -->
-<!-- Saved: 2009-10-23, 01:39:27 -->
+<!-- Saved: 2009-10-31, 03:09:53 -->
 <!-- Copyright (C) 2009 Sandro Knauß, bugs@sandroknauss.de -->
 <Project version="4.6">
   <Language></Language>
@@ -31,6 +31,10 @@
     <Source>anbieter/telnumber.py</Source>
     <Source>anbieter/test.py</Source>
     <Source>test.py</Source>
+    <Source>providerlist.py</Source>
+    <Source>joblist.py</Source>
+    <Source>job.py</Source>
+    <Source>anbieter/smstrade.py</Source>
   </Sources>
   <Forms>
   </Forms>
@@ -42,6 +46,7 @@
   </Interfaces>
   <Others>
     <Other>iro.conf.inst</Other>
+    <Other>iro.conf</Other>
   </Others>
   <MainScript>iro.py</MainScript>
   <Vcs>
--- a/iro/iro.py	Sat Oct 31 03:10:44 2009 +0100
+++ b/iro/iro.py	Sat Oct 31 03:22:33 2009 +0100
@@ -15,12 +15,11 @@
 
 from xmlrpc import SecureUserDBXMLRPCServer,UserDB
 
-from user import User, Admin, NotSupportedFeature
+from user import User, Admin
 import anbieter
 import ConfigParser
 
-
-from job import MessageJob
+from job import SMSJob, FAXJob, MailJob
 from joblist import Joblist
 from providerlist import Providerlist
 
@@ -88,7 +87,10 @@
     class MyManager(BaseManager):
         pass
     
-    MyManager.register('MessageJob', MessageJob) 
+    MyManager.register('SMSJob', SMSJob) 
+    MyManager.register('FAXob', FAXJob) 
+    MyManager.register('MailJob',FAXJob) 
+    MyManager.register('Providerlist',Providerlist) 
     manager = MyManager()
     manager.start()
     
@@ -106,7 +108,7 @@
     
     #Benutzerdatenbank erstellen
     queue = Queue()
-    provider=Providerlist()
+    provider=manager.Providerlist()
     provider.add("sipgate", sip, ["sms", "fax", ])
     provider.add("smstrade", smstrade, ["sms", ])
     provider.add("geonet", None, ["sms", "fax", ])
--- a/iro/job.py	Sat Oct 31 03:10:44 2009 +0100
+++ b/iro/job.py	Sat Oct 31 03:22:33 2009 +0100
@@ -16,7 +16,8 @@
     '''
     Basic class for all jobs
     '''   
-    def __init__(self,provider,name):
+    def __init__(self,providerlist,provider, name):
+        self.providerlist=providerlist
         self.provider=provider
         self.name=name
         self.status = "init"
@@ -37,7 +38,7 @@
         return self.name
         
     def getProvider(self):
-        return self.provider
+        return None
         
     def addGood(self, good):
         if type(good) == list:
@@ -55,18 +56,20 @@
     '''
     A specialized class for smsjobs
     '''
-    def __init__(self,provider,name, message,recipients):
+    def __init__(self,providerlist,provider, name, message,recipients):
         self.message=message
         self.recipients=recipients
-        Job.__init__(self,provider, name)
+        Job.__init__(self,providerlist,provider,  name)
         
     def stop(self):
         pass
-        
+    
+
+    
     def start(self):
         Job.start(self)
-        self.provider.setJob(self)
-        self.message.sendto(self.provider, self.recipients)
+        self.getProvider().setJob(self)
+        self.message.sendto(self.getProvider(), self.recipients)
         self.status="sended"
 
     def getMessage(self):
@@ -76,4 +79,28 @@
         return self.recipients
 
 
+class SMSJob(MessageJob):
+    def __init__(self,providerlist,provider, name, message,recipients):
+        MessageJob.__init__(self,providerlist,provider, name, message,recipients)
+        
+    def getProvider(self):
+        return self.providerlist.getProvider("sms", self.provider)
+        
+    def start(self):
+        MessageJob.start(self)
 
+class FAXJob(MessageJob):
+    def __init__(self,providerlist,provider, name, message,recipients):
+        MessageJob.__init__(self,providerlist,provider, name, message,recipients)
+        
+    def getProvider(self):
+        return self.providerlist.getProvider("fax", self.provider)
+
+class MailJob(MessageJob):
+    def __init__(self,providerlist,provider, name, message,recipients):
+        MessageJob.__init__(self,providerlist,provider, name, message,recipients)
+        
+    def getProvider(self):
+        return self.providerlist.getProvider("mail", self.provider)
+
+
--- a/iro/joblist.py	Sat Oct 31 03:10:44 2009 +0100
+++ b/iro/joblist.py	Sat Oct 31 03:22:33 2009 +0100
@@ -35,25 +35,25 @@
         self.queue.put(job)
         return id
 
-    def newSMS(self,message,recipients):
+    def newSMS(self,message,recipients,provider="default"):
         '''
         creates a new SMS
         '''
-        job=self.manager.MessageJob(self.providerlist.getProvider("sms"),message, content.SMS(message),recipients)
+        job=self.manager.SMSJob(self.providerlist, provider,message, content.SMS(message),recipients)
         return self.__registerJob__(job)
 
-    def newFAX(self,subject, fax,recipients):
+    def newFAX(self,subject, fax,recipients,provider="default"):
         '''
         creates a new Fax
         '''
-        job=self.manager.MessageJob(self.providerlist.getProvider("fax"),subject, content.FAX(subject, fax),recipients)
+        job=self.manager.FaxJob(self.providerlist, provider,subject, content.FAX(subject, fax),recipients)
         return self.__registerJob__(job)
 
-    def newMail(self,subject, body,recipients):
+    def newMail(self,subject, body,recipients,provider="default"):
         '''
         creates a new Mail
         '''
-        job=self.manager.MessageJob(self.providerlist.getProvider("mail"),subject, content.Mail(subject, body),recipients)
+        job=self.manager.MailJob(self.providerlist, provider,subject, content.Mail(subject, body),recipients)
         return self.__registerJob__(job) 
 
     def _createID(self):
--- a/iro/providerlist.py	Sat Oct 31 03:10:44 2009 +0100
+++ b/iro/providerlist.py	Sat Oct 31 03:22:33 2009 +0100
@@ -43,5 +43,5 @@
         
         if not stype in self.provider[name] ["types"]:
             raise "argh"
-        
+
         return self.provider[name]["class"]
--- a/iro/user.py	Sat Oct 31 03:10:44 2009 +0100
+++ b/iro/user.py	Sat Oct 31 03:22:33 2009 +0100
@@ -58,18 +58,18 @@
         job.stop()
 
     
-    def startSMS(self,message,recipients):
+    def startSMS(self,message,recipients,provider="default"):
         '''
         starts the SMS with message to recipients
         '''
         if not "sms" in self.features:
             raise NotSupportedFeature("sms")
-        id = self.jobqueue.newSMS(message,recipients)
+        id = self.jobqueue.newSMS(message,recipients,provider)
         self.jobs[id]=self.jobqueue[id]
         return id
     
     
-    def startFAX(self):
+    def startFAX(self,provider="default"):
         '''
         starts the FAX - not implemented
         '''
@@ -77,10 +77,10 @@
 
     
         
-    def startMail(self,subject,  body , recipients):
+    def startMail(self,subject,  body , recipients,provider="default"):
         if not "mail" in self.features:
             raise NotSupportedFeature("mail")
-        id = self.jobqueue.newMail(subject,  body ,recipients)
+        id = self.jobqueue.newMail(subject,  body ,recipients,provider)
         self.jobs[id]=self.jobqueue[id]
         return id