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