iro/anbieter/content.py
author Sandro Knauß <knauss@netzguerilla.net>
Sun, 18 Dec 2011 11:49:46 +0100
branchdevel
changeset 77 7dce6c0f06fb
parent 62 35228d665310
permissions -rw-r--r--
adding database schema to documentation.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     2
#Copyright (C) 2009  Sandro Knauß <bugs@sandroknauss.de>
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
a3b6e531f0d2 [svn r93] creating iro package branch
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
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     5
#of the GNU General Public License as published by the Free Software Foundation;
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
#either version 3 of the License, or any later version.
a3b6e531f0d2 [svn r93] creating iro package branch
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;
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     8
#without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     9
#See the GNU General Public License for more details.
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    10
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    11
#You should have received a copy of the GNU General Public License
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
#along with this program; if not, see <http://www.gnu.org/licenses/>.
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    14
from email.mime.text import MIMEText
19
fcf8489f1c2f iro kann nun mit mails umgehen
Sandro Knauß <knauss@netzguerilla.net>
parents: 14
diff changeset
    15
from email.header import Header
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    16
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
class content:
30
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    18
    def __init__(self,content):
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    19
        self.content=content
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    20
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    21
    def sendto(self,anbieter,recipients):
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    22
        pass
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    23
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    24
    def getContent(self):
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    25
        return self.content
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    27
    def __eq__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    28
        return self.content == other.content
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    29
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    30
    def __ne__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    31
        return not self.__eq__(other)
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    32
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
class SMS(content):
57
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    34
    def __init__(self, cont):
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    35
        content.__init__(self,cont)
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    36
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    37
    def sendto(self,anbieter,recipients):
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    38
        anbieter.sendSMS(self,recipients)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    40
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
class FAX(content):
57
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    42
    def __init__(self,header,cont,attachments):
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    43
        content.__init__(self,cont)
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    44
        self.header=header
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    45
        self.attachments=attachments
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    46
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    47
    def sendto(self,anbieter,recipients):
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    48
        anbieter.sendFAX(self,recipients)
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    49
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    50
    def getAttachment(self,i):
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    51
        return self.attachments[i]
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    52
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    53
    def __eq__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    54
        if not  content.__eq__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    55
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    56
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    57
        if self.header != other.header:
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    58
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    59
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    60
        if len(self.attachments) != len(other.attachments):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    61
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    63
        for i in range(len(self.attachments)):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    64
            if self.attachments[i] != other.attachments[i]:
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    65
                return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    66
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    67
        return True
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    68
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    69
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    70
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    71
class Mail(content):
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    72
    def __init__(self, subject, body, frm):
19
fcf8489f1c2f iro kann nun mit mails umgehen
Sandro Knauß <knauss@netzguerilla.net>
parents: 14
diff changeset
    73
        con=MIMEText(body.encode("utf-8"), _charset='utf-8')
fcf8489f1c2f iro kann nun mit mails umgehen
Sandro Knauß <knauss@netzguerilla.net>
parents: 14
diff changeset
    74
        sub=Header(subject.encode('utf-8'), 'utf-8')
fcf8489f1c2f iro kann nun mit mails umgehen
Sandro Knauß <knauss@netzguerilla.net>
parents: 14
diff changeset
    75
        con['Subject']=sub
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    76
        self.frm=frm
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    77
        content.__init__(self, con)
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    78
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    79
    def sendto(self,anbieter,recipients):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    80
        anbieter.sendMail(self,recipients)
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    81
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    82
    def as_string(self):
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    83
        return self.content.as_string()
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    84
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    85
    def getFrom(self):
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    86
        return self.frm
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    87
    
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    88
    def __eq__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    89
        if self.as_string() != other.as_string():
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    90
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    91
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    92
        if self.frm != other.frm:
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    93
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    94
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    95
        return True