iro/model/message.py
author Sandro Knauß <knauss@netzguerilla.net>
Fri, 23 Mar 2012 16:18:12 +0100
branchdevel
changeset 242 745d829d1e02
parent 235 c5d8384caf68
child 244 48fba7b4afe9
permissions -rw-r--r--
tests for iro.install.getAllRoutes added
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
235
c5d8384caf68 adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents: 198
diff changeset
     5
from email.Utils import formatdate
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
     7
class Message:
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
     8
    def __init__(self,content, typ="Message"):
30
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
     9
        self.content=content
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    10
        self.typ = typ
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    11
30
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    12
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    13
    def getContent(self):
5253631a8dd3 sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents: 19
diff changeset
    14
        return self.content
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    16
    def __eq__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    17
        return self.content == other.content
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    18
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    19
    def __ne__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    20
        return not self.__eq__(other)
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    21
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    22
class SMS(Message):
169
aabc04843d25 complete offer.smtp tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 166
diff changeset
    23
    def __init__(self, cont, from_ = None):
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    24
        Message.__init__(self, cont, typ="sms")
169
aabc04843d25 complete offer.smtp tests
Sandro Knauß <knauss@netzguerilla.net>
parents: 166
diff changeset
    25
        self.from_ = from_
57
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    26
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    27
    def sendto(self,anbieter,recipients):
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    28
        anbieter.sendSMS(self,recipients)
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    30
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    31
class Fax(Message):
198
85ede27b1add tests for controller.viewinterface.fax added
Sandro Knauß <knauss@netzguerilla.net>
parents: 193
diff changeset
    32
    def __init__(self,header,cont,attachments=[]):
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    33
        Message.__init__(self,cont, typ="fax")
57
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    34
        self.header=header
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    35
        self.attachments=attachments
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 getAttachment(self,i):
97ef6ca145e6 sms & fax gefixt
Sandro Knauß <knauss@netzguerilla.net>
parents: 30
diff changeset
    38
        return self.attachments[i]
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
    def __eq__(self,other):
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    41
        if not  Message.__eq__(self,other):
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    42
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    43
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    44
        if self.header != other.header:
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    45
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    46
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    47
        if len(self.attachments) != len(other.attachments):
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
193
e5ec4bfa4929 adding allowString and allowList to vEmail to make sure, if a list is allowd or a string.
Sandro Knauß <knauss@netzguerilla.net>
parents: 192
diff changeset
    50
        for a in self.attachments:
e5ec4bfa4929 adding allowString and allowList to vEmail to make sure, if a list is allowd or a string.
Sandro Knauß <knauss@netzguerilla.net>
parents: 192
diff changeset
    51
            if a not in other.attachments:
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    52
                return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    53
        return True
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    54
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    55
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    56
135
f8640c663e3e model.job created
Sandro Knauß <knauss@netzguerilla.net>
parents: 62
diff changeset
    57
class Mail(Message):
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    58
    def __init__(self, subject, body, frm):
235
c5d8384caf68 adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents: 198
diff changeset
    59
        con = MIMEText(body.encode("utf-8"), _charset='utf-8')
c5d8384caf68 adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents: 198
diff changeset
    60
        sub = Header(subject.encode('utf-8'), 'utf-8')
c5d8384caf68 adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents: 198
diff changeset
    61
        con['Subject'] = sub
c5d8384caf68 adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents: 198
diff changeset
    62
        con['Date'] = formatdate(localtime=True)
192
6c708c334f37 test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    63
        self.subject = subject
6c708c334f37 test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    64
        self.body = body
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    65
        self.frm=frm
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
    66
        Message.__init__(self, con, typ='mail')
0
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    67
a3b6e531f0d2 [svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    68
    def as_string(self):
166
6d6890f7e3f8 adding smtp provider
Sandro Knauß <knauss@netzguerilla.net>
parents: 152
diff changeset
    69
        return self.content.as_string()
58
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    70
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    71
    def getFrom(self):
fb161058bcab mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents: 57
diff changeset
    72
        return self.frm
62
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
    def __eq__(self,other):
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    75
        if self.as_string() != other.as_string():
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    76
            return False
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    77
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    78
        if self.frm != other.frm:
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    79
            return False
192
6c708c334f37 test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    80
        
6c708c334f37 test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    81
        return True
62
35228d665310 vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents: 58
diff changeset
    82
192
6c708c334f37 test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    83
    def __repr__(self):
6c708c334f37 test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents: 169
diff changeset
    84
        return "<Mail(%s,%s,%s)>"%(self.subject,self.body,self.frm)