14 |
14 |
15 import urllib |
15 import urllib |
16 import copy |
16 import copy |
17 from functools import partial |
17 from functools import partial |
18 |
18 |
19 from ..error import UnknownOption, NeededOption |
19 from ..config import Option |
20 from ..model.status import Status |
20 from ..model.status import Status |
21 from .provider import Provider, providers |
21 from .provider import Provider, providers |
22 |
22 |
23 import logging |
23 import logging |
24 logger=logging.getLogger("smstrade") |
24 logger=logging.getLogger("smstrade") |
80 "cost":('boolean',False), |
80 "cost":('boolean',False), |
81 } |
81 } |
82 def __init__(self, name, config): |
82 def __init__(self, name, config): |
83 self.url = "https://gateway.smstrade.de" |
83 self.url = "https://gateway.smstrade.de" |
84 Provider.__init__(self,name,config,{"sms":["basic","economy","gold","direct"]}) |
84 Provider.__init__(self,name,config,{"sms":["basic","economy","gold","direct"]}) |
85 |
85 self.options.update({ |
86 def loadConfig(self): |
86 "key":Option(lambda x,y:x,long="smstrade Gateway Key https://login.smstrade.de/index.php?gateway", must=True) |
87 """Read options from config""" |
87 }) |
88 needed=["key"] |
88 self.loadConfig() |
89 |
|
90 for n in needed: |
|
91 setattr(self,n,None) |
|
92 |
|
93 for (n, v) in self.config: |
|
94 if n in needed: |
|
95 setattr(self,n,v) |
|
96 else: |
|
97 raise UnknownOption(self.name, n) |
|
98 |
|
99 for n in needed: |
|
100 if getattr(self,n) is None: |
|
101 raise NeededOption(self.name, n) |
|
102 |
|
103 |
|
104 |
89 |
105 def send(self, route, sms, recipient): |
90 def send(self, route, sms, recipient): |
106 """send SMS with $sms to $recipients""" |
91 """send SMS with $sms to $recipients""" |
107 logger.debug('smstrade.sendSMS(%s,%s)'%(sms, recipient)) |
92 logger.debug('smstrade.sendSMS(%s,%s)'%(sms, recipient)) |
108 route = unicode(route) |
93 route = unicode(route) |