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