# HG changeset patch # User Sandro Knauß # Date 1256955753 -3600 # Node ID 08256d9ed9afaf39e0deb184582c0600986ac61d # Parent f25033cf93e0374edd42822928d9a00cb550278a# Parent 4c5f1cf088f684c6961b4efb1f227522b6f8c661 merging von smstrade diff -r 4c5f1cf088f6 -r 08256d9ed9af iro/.eric4project/iro.e4q --- 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 @@ - + \ No newline at end of file diff -r 4c5f1cf088f6 -r 08256d9ed9af iro/.eric4project/iro.e4t --- 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 @@ - + \ No newline at end of file diff -r 4c5f1cf088f6 -r 08256d9ed9af iro/iro.e4p --- 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 @@ - + @@ -31,6 +31,10 @@ anbieter/telnumber.py anbieter/test.py test.py + providerlist.py + joblist.py + job.py + anbieter/smstrade.py @@ -42,6 +46,7 @@ iro.conf.inst + iro.conf iro.py diff -r 4c5f1cf088f6 -r 08256d9ed9af iro/iro.py --- 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", ]) diff -r 4c5f1cf088f6 -r 08256d9ed9af iro/job.py --- 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) + + diff -r 4c5f1cf088f6 -r 08256d9ed9af iro/joblist.py --- 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): diff -r 4c5f1cf088f6 -r 08256d9ed9af iro/providerlist.py --- 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"] diff -r 4c5f1cf088f6 -r 08256d9ed9af iro/user.py --- 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