iro/anbieter/smstrade.py
author Sandro Knauß <knauss@netzguerilla.net>
Thu, 22 Oct 2009 10:15:11 +0200
changeset 1 18918fbc397c
child 9 4c5f1cf088f6
permissions -rw-r--r--
[svn r95] merged daemon-1/iro to iro-package/iro
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     2
#Copyright (C) 2009  Georg Bischoff
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
#This program is free software; you can redistribute it and/or modify it under the terms
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     5
#of the GNU General Public License as published by the Free Software Foundation;
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
#either version 3 of the License, or any later version.
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
#This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     8
#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     9
#See the GNU General Public License for more details.
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    10
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    11
#You should have received a copy of the GNU General Public License
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
#along with this program; if not, see <http://www.gnu.org/licenses/>.
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    14
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
from anbieter import anbieter
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    16
from telnumber import telnumber, NotATelNumber
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
import ConfigParser
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
import xmlrpclib
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    19
import base64
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    20
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
class smstrade(anbieter):
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
	"""
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
	s. auch http://kundencenter.smstrade.de/sites/smstrade.de.kundencenter/__pdf/SMS-Gateway_HTTP_API_v2.pdf
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
	"""
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
	section="smstrade"
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
	url="https://gateway.smstrade.de"
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    27
	def __init__(self):       
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
		self.domain = "smstrade.de" # website of the sms service
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
		self.gateway = "gateway.smstrade.de" # gateway where the request will be sent
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
		self.gatewayPort = 80 # port of the gateway
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
		self.script = "/"  # full path to the script that will handle the request
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
		self.method = "POST" # method that will be used. Currently only POST is supported
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
		self.maxMessageLength = None # maximum length of message; None if should not be set
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
		self.smsCanBeSendDelayed = True # True if sms can be sent delayed by the sms service. Otherwise False
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
		self.senderRe = r"^.{0,11}|[0-9]{0,15}" # RegEx for the sender-input-field
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
		self.routes = ("basicplus", "economy", "gold", "direct") # possible routes that can be used
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
		self.routesWithSourceIdentifier = ("gold", "direct") # routes where a sender can be defined
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    40
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
# statusCodes that the sms service returns on requests
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    42
		self.statusCodes = {10 : "Empfaengernummer nicht korrekt",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    43
			20 : "Absenderkennung nicht korrekt",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
			30 : "Nachrichtentext nicht korrekt",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
			31 : "Messagetyp nicht korrekt",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46
			40 : "SMS Route nicht korrekt",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    47
			50 : "Identifikation fehlgeschlagen",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    48
			60 : "nicht genuegend Guthaben",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    49
			70 : "Netz wird von Route nicht abgedeckt",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    50
			71 : "Feature nicht ueber diese Route moeglich",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    51
			80 : "Uebergabe an SMS-C fehlgeschlagen",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
			90 : "Versand nicht moeglich",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    53
			100 : "SMS wurde versendet",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    54
			999 : "SMS wird zeitversetzt verschickt"}
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    55
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    56
		self.parameters = {} # don't write anything into this dict! Don't delete it!                   
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    57
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    58
	def read_basic_config(self,filename):
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    59
		"""Read basic options from the config file"""
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
		cp = ConfigParser.ConfigParser()
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    61
		cp.read([filename])
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    62
		self.key=cp.get(self.section, 'key')
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    63
		self.route=cp.get(self.section, 'route')
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    64
		self.from_=cp.get(self.section, 'from')
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    65
		self.debug=cp.get(self.section, 'debug')
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    66
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    67
def sendSMS(self,sms,recipients):
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    68
	"""send SMS with $sms to $recipients"""
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    69
	sended = []
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    70
	key = self.key
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    71
	route = unicode(self.route)
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    72
	message = unicode(sms.content.toPlainText())
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    73
	from_ = unicode(self.from_)
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    74
	timestamp = None
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    75
	for recipient in recipients:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    76
		try:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
			tel = telnumber(recipient)                
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    78
			if tel in sended:                                                                           #only send message once per recipient
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    79
				continue
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    80
			sended.append(tel)	
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    81
			to = unicode((tel.number)).strip()						                
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    82
			smsSendStatus = self.__sendSms( 
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    83
						key, route, to, message, from_, timestamp)									            
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    84
		except (NotATelNumber,NoValidStatusCode,InternetConnectionError):
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    85
			self.updateStatus(failed=recipient)
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    86
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    87
def __send(self, key, route, to, message, from_=None, timestamp=None):
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    88
	""" This function is the main part of the request to the sms service.    
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    89
	The function has to return a unicode formated string that will represent the answer of the sms service
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    90
	to the request."""
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    91
	self.parameters["key"] = key        
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    92
	self.parameters["route"] = route
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    93
	self.parameters["to"] = to
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    94
	self.parameters["message"] = message
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    95
	self.parameters["debug"] = self.debug				
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    96
	
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    97
	if from_ is not None:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    98
		self.parameters["from"] = from_
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    99
	else:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   100
		if "from" in self.parameters.keys():
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   101
			del(self.parameters["from"])
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   102
	
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   103
	if timestamp is not None:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   104
		self.parameters["senddate"] = unicode(timestamp)
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   105
	else:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   106
		if "senddate" in self.parameters.keys():
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   107
			del(self.parameters["senddate"])
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   108
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   109
	self.parameters["concat_sms"] = "1" if len(message) > 160 else "0"
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   110
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   111
	params = urllib.urlencode(dict([k, v.encode('iso-8859-1')] for k, v in self.parameters.items()))
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   112
	headers = {"Content-type": "application/x-www-form-urlencoded",
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   113
		"Accept": "text/plain"}
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   114
	conn = httplib.HTTPConnection("%s:%i" % (self.gateway, self.gatewayPort))
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   115
	try:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   116
		conn.request(self.method, self.script, params, headers)
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   117
		response = conn.getresponse()
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   118
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   119
		data = response.read()
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   120
	except socket.gaierror:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   121
		raise InternetConnectionError("%s:%i" % (self.gateway, self.gatewayPort))
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   122
	else:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   123
		conn.close()
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   124
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   125
	try:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   126
		return self.statusCodes[int(data)]
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   127
	except ValueError:
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   128
		# this happens if the sms will be send delayed
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   129
		return self.statusCodes[999]
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   130
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   131
def updateStatus(self, arranged=None, failed=None):
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   132
	"""is a function that is called, if a new SMS/FAX was send
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   133
	-arranged is non None, if SMS/FAX was sended successfully
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   134
	-failed is non None, if SMS/FAX sending failed
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   135
	the content will be the recipent"""
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   136
	pass
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   137
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   138
class InternetConnectionError(Exception):
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   139
	def __init__(self, url):
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   140
		self.url = url
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   141
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   142
	def __str__(self):
18918fbc397c [svn r95] merged daemon-1/iro to iro-package/iro
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
   143
		return "InternetConnectionError: It is not possible to open 'http://%s'. Please check your connection to the Internet!" % self.url