iro/offer/smstrade.py
author Sandro Knauß <knauss@netzguerilla.net>
Sat, 03 Mar 2012 03:29:19 +0100
branchdevel
changeset 213 3620bacf1152
parent 186 b381eaa774ab
child 214 bacf50bc46bf
permissions -rw-r--r--
tests for error in smstrade API.
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
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    27
class UnknownStatusCode(ExternalException):
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    28
    def __init__(self,status):
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    29
        ExternalException.__init__(self)
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    30
        self.status=status
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    31
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    32
    def __str__(self):
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    33
        return "%s\nStatusCode %i is unknown."%(ExternalException.__str__(self),self.status)
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    34
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    35
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    36
class StatusCode:
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    37
     statusCodes = {10 : "Empfaengernummer nicht korrekt",
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    38
            20 : "Absenderkennung nicht korrekt",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    39
            30 : "Nachrichtentext nicht korrekt",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    40
            31 : "Messagetyp nicht korrekt",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    41
            40 : "SMS Route nicht korrekt",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    42
            50 : "Identifikation fehlgeschlagen",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    43
            60 : "nicht genuegend Guthaben",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    44
            70 : "Netz wird von Route nicht abgedeckt",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    45
            71 : "Feature nicht ueber diese Route moeglich",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    46
            80 : "Uebergabe an SMS-C fehlgeschlagen",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    47
            90 : "Versand nicht moeglich",
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    48
            100 : "SMS wurde versendet",
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    49
            }
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    50
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    51
     def __init__(self,code, mID=None, cost=None, count=None):
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    52
        if code in self.statusCodes.keys():
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    53
            self.code=code
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    54
        else:
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    55
            raise UnknownStatusCode(code)
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    56
        self.mID=mID
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    57
        self.cost = cost
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    58
        self.count = count
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    59
     
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    60
     def __str__(self):
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    61
        try:
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    62
            return "%i: %s"%(self.code, self.statusCodes[self.code])
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    63
        except IndexError:
49
b1d0f7ffbb64 testSMSJob
Sandro Knauß <knauss@netzguerilla.net>
parents: 37
diff changeset
    64
            raise UnknownStatusCode(self.code)
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    65
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    66
     def __int__(self):
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    67
        if not self.code in self.statusCodes.keys():
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    68
            raise UnknownStatusCode(self.code)
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    69
        return self.code
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    70
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    71
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    72
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    73
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    74
class Smstrade(Provider):
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    75
    """
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
    76
    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
    77
    """
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    78
    params= {"debug":("boolean",False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    79
            "concat_sms":('boolean',False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    80
            "message_id":('boolean',False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    81
            "count":('boolean',False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    82
            "cost":('boolean',False),
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    83
           }
186
b381eaa774ab refactoring ifo.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 183
diff changeset
    84
    def __init__(self, name):       
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    85
        self.url = "https://gateway.smstrade.de"
186
b381eaa774ab refactoring ifo.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 183
diff changeset
    86
        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
    87
        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
    88
            "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
    89
            })
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    90
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    91
    def send(self, route, sms, recipient):
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    92
        """send SMS with $sms to $recipients"""
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    93
        logger.debug('smstrade.sendSMS(%s,%s)'%(sms,  recipient))
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    94
        route = unicode(route)
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
    95
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    96
        if recipient.land != '49' and route == "basic":
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
    97
            raise RejectRecipient(recipient)
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    98
        
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
    99
        to ='00'+recipient.land+recipient.number
213
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   100
        
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   101
        smsSendStatus = self.__send(route, to, sms)	
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   102
        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
   103
        if int(smsSendStatus) in (100,):
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   104
            return Status(self,route)
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   105
        elif int(smsSendStatus) in (70,71,):
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   106
            raise RejectRecipient(recipient, status=smsSendStatus)
3620bacf1152 tests for error in smstrade API.
Sandro Knauß <knauss@netzguerilla.net>
parents: 186
diff changeset
   107
        else:
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   108
            raise Exception()
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   109
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   110
    def __send(self, route, to, sms):
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   111
        """ 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
   112
        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
   113
        to the request."""
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   114
        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
   115
        parameters= {"key": self.key,
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
   116
                "route": route,
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
   117
                "to": to,
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   118
                "message": sms.content.encode("utf-8"),
18
f0d31c70744d Unterscheidung von Dt.Mobilnetz / weltweit
Sandro Knauß <knauss@netzguerilla.net>
parents: 15
diff changeset
   119
                "charset":"utf-8", 
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   120
                "debug": self.testmode,
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   121
                "message_id":True,
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   122
                "count":True,
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   123
                "cost":True,
15
c04a21066aad refactoring
Sandro Knauß <knauss@netzguerilla.net>
parents: 9
diff changeset
   124
                }
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   125
        
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   126
        doubleChar="€[]{}|\\^~"    #these charactar need two GSM Chars
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   127
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   128
        if sms.from_ is not None:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   129
            parameters["from"] = sms.from_
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   130
       
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   131
        length=len(sms.content)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   132
        for s in doubleChar:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   133
            length += sms.content.count(s)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   134
        parameters["concat_sms"] = True if length > 160 else False
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   135
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   136
        ps={}
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   137
        for p in parameters:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   138
            if p in self.params.keys():
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   139
                if self.params[p][0] == "boolean":
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   140
                    if parameters[p] != self.params[p][1]:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   141
                        ps[p]=int(not self.params[p][1])
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   142
            else:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   143
                ps[p] = parameters[p]
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   144
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   145
        params = urllib.urlencode(ps)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   146
        dp=copy.deepcopy(ps)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   147
        dp["key"]="<KEY>"
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   148
        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
   149
        
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   150
        response = urllib.urlopen(self.url, params)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   151
        data = response.readlines()
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   152
        if len(data) == 1:
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   153
            return StatusCode(int(data[0]))
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   154
        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
   155
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   156
    def getSendFunc(self, typ, route):
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   157
        Provider.getSendFunc(self, typ, route)
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   158
        return partial(self.send,route)
9
4c5f1cf088f6 smstrade verbessert
Sandro Knauß <knauss@netzguerilla.net>
parents: 1
diff changeset
   159
172
adfe245c377d adding smstrade as provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 129
diff changeset
   160
providers["smstrade"]=Smstrade