iro/model/message.py
author Sandro Knauß <knauss@netzguerilla.net>
Mon, 13 Feb 2012 15:38:50 +0100
branchdevel
changeset 144 1cc164bbb068
parent 135 f8640c663e3e
child 152 14c99c89edf4
permissions -rw-r--r--
adding reload tests (not implemented)
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
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
from email.mime.text import MIMEText
19
fcf8489f1c2f iro kann nun mit mails umgehen
Sandro Knauß <knauss@netzguerilla.net>
parents: 14
diff changeset
     4
from email.header import Header
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     5
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
     6
class Message:
30
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
     7
    def __init__(self,content):
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
     8
        self.content=content
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
     9
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    10
    def getContent(self):
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    11
        return self.content
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    13
    def __eq__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    14
        return self.content == other.content
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    15
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    16
    def __ne__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    17
        return not self.__eq__(other)
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    18
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    19
class SMS(Message):
57
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    20
    def __init__(self, cont):
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    21
        Message.__init__(self,cont)
57
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    22
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    23
    def sendto(self,anbieter,recipients):
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    24
        anbieter.sendSMS(self,recipients)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    26
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    27
class Fax(Message):
57
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    28
    def __init__(self,header,cont,attachments):
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    29
        Message.__init__(self,cont)
57
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    30
        self.header=header
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    31
        self.attachments=attachments
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    32
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    33
    def getAttachment(self,i):
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    34
        return self.attachments[i]
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    36
    def __eq__(self,other):
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    37
        if not  Message.__eq__(self,other):
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    38
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    39
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    40
        if self.header != other.header:
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    41
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    42
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    43
        if len(self.attachments) != len(other.attachments):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    44
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    45
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    46
        for i in range(len(self.attachments)):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    47
            if self.attachments[i] != other.attachments[i]:
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    48
                return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    49
        return True
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    50
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    51
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    52
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    53
class Mail(Message):
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    54
    def __init__(self, subject, body, frm):
19
fcf8489f1c2f iro kann nun mit mails umgehen
Sandro Knauß <knauss@netzguerilla.net>
parents: 14
diff changeset
    55
        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
    56
        sub=Header(subject.encode('utf-8'), 'utf-8')
fcf8489f1c2f iro kann nun mit mails umgehen
Sandro Knauß <knauss@netzguerilla.net>
parents: 14
diff changeset
    57
        con['Subject']=sub
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    58
        self.frm=frm
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    59
        Message.__init__(self, con)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    60
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    61
    def as_string(self):
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    62
        return self.Message.as_string()
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    63
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    64
    def getFrom(self):
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    65
        return self.frm
62
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
    def __eq__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    68
        if self.as_string() != other.as_string():
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    69
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    70
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    71
        if self.frm != other.frm:
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    72
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    73
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    74
        return True