iro/offer/smstrade.py
author Sandro Knauß <knauss@netzguerilla.net>
Sat, 03 Mar 2012 03:54:53 +0100
branchdevel
changeset 214 bacf50bc46bf
parent 213 3620bacf1152
child 215 5bacdb7e94d1
permissions -rw-r--r--
refactoring error of smstrade.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
     1
# -*- coding: utf-8 -*-
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
     2
#Copyright (C) 2009  Georg Bischoff
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
     3
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
     4
#This program is free software; you can redistribute it and/or modify it under the terms
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
     5
#of the GNU General Public License as published by the Free Software Foundation;
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
     6
#either version 3 of the License, or any later version.
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
     7
#This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
     8
#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
     9
#See the GNU General Public License for more details.
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    10
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    11
#You should have received a copy of the GNU General Public License
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    12
#along with this program; if not, see <http://www.gnu.org/licenses/>.
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    13
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    14
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    15
import urllib
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    16
import copy
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    17
from functools import partial
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    18
183
07ee5543751b offer.provider now handles the options dict and loadConfig is only in Provider class
Sandro Knauß <knauss@netzguerilla.net>
parents: 180
diff changeset
    19
from ..config import Option
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    20
from ..model.status import Status
180
55ab949cf0f8 providers now handeld in offer.provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 172
diff changeset
    21
from .provider import Provider, providers
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    22
from ..error import RejectRecipient, ExternalException
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    23
23
0180b538ed74 logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents: 22
diff changeset
    24
import logging
0180b538ed74 logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents: 22
diff changeset
    25
logger=logging.getLogger("smstrade")
0180b538ed74 logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents: 22
diff changeset
    26
214
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    27
statusCodes = {10 : "Empfaengernummer nicht korrekt.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    28
    20 : "Absenderkennung nicht korrekt.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    29
    30 : "Nachrichtentext nicht korrekt.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    30
    31 : "Messagetyp nicht korrekt.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    31
    40 : "SMS Route nicht korrekt.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    32
    50 : "Identifikation fehlgeschlagen.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    33
    60 : "nicht genuegend Guthaben.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    34
    70 : "Netz wird von Route nicht abgedeckt.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    35
    71 : "Feature nicht ueber diese Route moeglich.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    36
    80 : "Uebergabe an SMS-C fehlgeschlagen.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    37
    90 : "Versand nicht moeglich.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    38
    100 : "SMS wurde versendet.",
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    39
    }
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    40
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    41
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    42
class StatusException(ExternalException):
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    43
    def __init__(self,status):
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    44
        ExternalException.__init__(self)
214
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    45
        self.status = status
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    46
        self.str_ = "%i: unknown statuscode."%status
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    47
        try:
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    48
            self.str_="%i: %s"%(status, statusCodes[int(status)])
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    49
        except KeyError:
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    50
            pass
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    51
    def __str__(self):
214
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    52
        return "%s\n%s"%(ExternalException.__str__(self),self.str_)
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    53
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    54
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    55
class StatusCode:
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    56
     def __init__(self,code, mID=None, cost=None, count=None):
214
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    57
        if code in statusCodes.keys():
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    58
            self.code = code
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    59
        else:
214
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    60
            raise StatusException(code)
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    61
        self.mID=mID
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    62
        self.cost = cost
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    63
        self.count = count
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    64
     
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    65
     def __str__(self):
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    66
        try:
214
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    67
            return "%i: %s"%(self.code, statusCodes[self.code])
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    68
        except IndexError:
214
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    69
            raise StatusException(self.code)
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    70
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    71
     def __int__(self):
214
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    72
        if not self.code in statusCodes.keys():
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
    73
            raise StatusException(self.code)
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    74
        return self.code
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    75
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    76
class Smstrade(Provider):
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    77
    """
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    78
    s. auch http://kundencenter.smstrade.de/sites/smstrade.de.kundencenter/__pdf/SMS-Gateway_HTTP_API_v2.pdf
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    79
    """
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    80
    params= {"debug":("boolean",False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    81
            "concat_sms":('boolean',False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    82
            "message_id":('boolean',False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    83
            "count":('boolean',False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    84
            "cost":('boolean',False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    85
           }
186
b381eaa774ab refactoring ifo.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 183
diff changeset
    86
    def __init__(self, name):       
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    87
        self.url = "https://gateway.smstrade.de"
186
b381eaa774ab refactoring ifo.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 183
diff changeset
    88
        Provider.__init__(self, name, {"sms":["basic","economy","gold","direct"]})
183
07ee5543751b offer.provider now handles the options dict and loadConfig is only in Provider class
Sandro Knauß <knauss@netzguerilla.net>
parents: 180
diff changeset
    89
        self.options.update({
07ee5543751b offer.provider now handles the options dict and loadConfig is only in Provider class
Sandro Knauß <knauss@netzguerilla.net>
parents: 180
diff changeset
    90
            "key":Option(lambda x,y:x,long="smstrade Gateway Key https://login.smstrade.de/index.php?gateway", must=True)
07ee5543751b offer.provider now handles the options dict and loadConfig is only in Provider class
Sandro Knauß <knauss@netzguerilla.net>
parents: 180
diff changeset
    91
            })
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    92
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    93
    def send(self, route, sms, recipient):
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    94
        """send SMS with $sms to $recipients"""
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    95
        logger.debug('smstrade.sendSMS(%s,%s)'%(sms,  recipient))
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    96
        route = unicode(route)
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    97
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    98
        if recipient.land != '49' and route == "basic":
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    99
            raise RejectRecipient(recipient)
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   100
        
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   101
        to ='00'+recipient.land+recipient.number
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   102
        
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   103
        smsSendStatus = self.__send(route, to, sms)	
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   104
        logger.info('smstrade._send(...)=%i(%s)'%(int(smsSendStatus),str(smsSendStatus)))
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   105
        if int(smsSendStatus) in (100,):
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   106
            return Status(self,route)
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   107
        elif int(smsSendStatus) in (70,71,):
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   108
            raise RejectRecipient(recipient, status=smsSendStatus)
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   109
        else:
214
bacf50bc46bf refactoring error of smstrade.
Sandro Knauß <knauss@netzguerilla.net>
parents: 213
diff changeset
   110
            raise StatusException(smsSendStatus)
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   111
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   112
    def __send(self, route, to, sms):
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   113
        """ This function is the main part of the request to the sms service.    
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   114
        The function has to return a unicode formated string that will represent the answer of the sms service
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   115
        to the request."""
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   116
        logger.debug('smstrade._send(%s,%s,%s)'%( route, to, sms))
21
e6302069d772 daten sind in der klasse gespeichert - müssen nicht übergeben werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 20
diff changeset
   117
        parameters= {"key": self.key,
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
   118
                "route": route,
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
   119
                "to": to,
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   120
                "message": sms.content.encode("utf-8"),
18
f0d31c70744d Unterscheidung von Dt.Mobilnetz / weltweit
Sandro Knauß <knauss@netzguerilla.net>
parents: 15
diff changeset
   121
                "charset":"utf-8", 
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   122
                "debug": self.testmode,
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   123
                "message_id":True,
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   124
                "count":True,
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   125
                "cost":True,
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
   126
                }
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   127
        
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   128
        doubleChar="€[]{}|\\^~"    #these charactar need two GSM Chars
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   129
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   130
        if sms.from_ is not None:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   131
            parameters["from"] = sms.from_
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   132
       
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   133
        length=len(sms.content)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   134
        for s in doubleChar:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   135
            length += sms.content.count(s)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   136
        parameters["concat_sms"] = True if length > 160 else False
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   137
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   138
        ps={}
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   139
        for p in parameters:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   140
            if p in self.params.keys():
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   141
                if self.params[p][0] == "boolean":
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   142
                    if parameters[p] != self.params[p][1]:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   143
                        ps[p]=int(not self.params[p][1])
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   144
            else:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   145
                ps[p] = parameters[p]
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   146
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   147
        params = urllib.urlencode(ps)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   148
        dp=copy.deepcopy(ps)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   149
        dp["key"]="<KEY>"
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   150
        logger.debug('smstrade._send-parameters:%s\n\t->%s'%(str(dp), urllib.urlencode(dp)) )
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   151
        
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   152
        response = urllib.urlopen(self.url, params)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   153
        data = response.readlines()
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   154
        if len(data) == 1:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   155
            return StatusCode(int(data[0]))
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   156
        return StatusCode(int(data[0]),mID=data[1],cost=data[2],count=data[3])
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   157
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   158
    def getSendFunc(self, typ, route):
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   159
        Provider.getSendFunc(self, typ, route)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   160
        return partial(self.send,route)
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   161
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   162
providers["smstrade"]=Smstrade