# HG changeset patch # User Sandro Knauß # Date 1258924447 -3600 # Node ID f0d31c70744d669f43c0201704c6903d349f1341 # Parent 44a3eda179b6fe7bda627dca2987970718bf9fe9 Unterscheidung von Dt.Mobilnetz / weltweit diff -r 44a3eda179b6 -r f0d31c70744d iro/anbieter/smstrade.py --- a/iro/anbieter/smstrade.py Sun Nov 22 19:49:46 2009 +0100 +++ b/iro/anbieter/smstrade.py Sun Nov 22 22:14:07 2009 +0100 @@ -18,6 +18,7 @@ import ConfigParser import xmlrpclib import base64 +import gsm0338 import urllib, httplib class UnknownStatusCode(Exception): @@ -90,7 +91,7 @@ sended = [] key = self.key route = unicode(self.route) - message = unicode(sms.content) + message = sms.content from_ = unicode(self.from_) timestamp = None for recipient in recipients: @@ -99,7 +100,11 @@ if tel in sended: #only send message once per recipient continue sended.append(tel) - to = unicode((tel.number)).strip() + to = unicode(tel.land+tel.number).strip() + if tel.land == '49': + route=unicode("basic") + else: + route=unicode("economy") smsSendStatus = self.__send(key, route, to, message, from_, timestamp) if int(smsSendStatus) in(100, 999): self.updateStatus(arranged=recipient) @@ -116,6 +121,7 @@ "route": route, "to": to, "message": message, + "charset":"utf-8", "debug": self.debug, } @@ -126,21 +132,20 @@ parameters["senddate"] = unicode(timestamp) parameters["concat_sms"] = "1" if len(message) > 160 else "0" - - params = urllib.urlencode(dict([k, v.encode('iso-8859-1')] for k, v in parameters.items())) + + params = "&".join( ["%s=%s" % (urllib.quote(k),urllib.quote(v.encode("utf-8"))) for (k, v) in parameters.items()]) headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} conn = httplib.HTTPConnection("%s:%i" % (self.gateway, self.gatewayPort)) try: conn.request(self.method, self.script, params, headers) response = conn.getresponse() - data = response.read() except socket.gaierror: raise InternetConnectionError("%s:%i" % (self.gateway, self.gatewayPort)) else: conn.close() - + try: return StatusCode(int(data)) except UnknownStatusCode: