Exemple #1
0
def choose_body(parts):
    """Given a list of sibling MIME parts, choose the one with a content_type
    of "text/plain", if it exists"""
    if len(parts) == 1:
        return unicode_damnit(parts[0].body.data, parts[0].charset)
    elif len(parts) > 1:
        data = u""
        for p in parts:
            if p.content_type == "text/plain":
                data = unicode_damnit(p.body.data, p.charset)
                break
        return data
    else:
        return u""
Exemple #2
0
    def index_search_b(self):
        try:
            from_header = HeaderData.objects.filter(
                header__part__parent__isnull=True,
                header__name__name="From",
                header__part__email__id=self.id,
            ).first()

            return unicode_damnit(from_header.data)
        except AttributeError:
            return ""
Exemple #3
0
    def index_search_b(self):
        try:
            from_header = HeaderData.objects.filter(
                header__part__parent__isnull=True,
                header__name__name="From",
                header__part__email__id=self.id,
            ).first()

            return unicode_damnit(from_header.data)
        except AttributeError:
            return ""
Exemple #4
0
    def get_description(self, obj):
        """"""
        from inboxen.models import HeaderData

        try:
            from_header = HeaderData.objects.filter(
                header__part__parent__isnull=True,
                header__name__name="From",
                header__part__email__id=obj.id,
            ).first()

            return unicode_damnit(from_header.data)
        except AttributeError:
            return u""
Exemple #5
0
    def get_title(self, obj):
        """Fetch subject for obj"""
        from inboxen.models import HeaderData

        try:
            subject = HeaderData.objects.filter(
                header__part__parent__isnull=True,
                header__name__name="Subject",
                header__part__email__id=obj.id,
            ).first()

            return unicode_damnit(subject.data)
        except AttributeError:
            return u""
Exemple #6
0
    def get_description(self, obj):
        """"""
        from inboxen.models import HeaderData

        try:
            from_header = HeaderData.objects.filter(
                header__part__parent__isnull=True,
                header__name__name="From",
                header__part__email__id=obj.id,
            ).first()

            return unicode_damnit(from_header.data)
        except AttributeError:
            return u""
Exemple #7
0
    def get_title(self, obj):
        """Fetch subject for obj"""
        from inboxen.models import HeaderData

        try:
            subject = HeaderData.objects.filter(
                header__part__parent__isnull=True,
                header__name__name="Subject",
                header__part__email__id=obj.id,
            ).first()

            return unicode_damnit(subject.data)
        except AttributeError:
            return u""
Exemple #8
0
    def get_meta(self, obj):
        """Extra meta data to save DB queries later"""
        from inboxen.models import HeaderData

        try:
            from_header = HeaderData.objects.filter(
                header__part__parent__isnull=True,
                header__name__name="From",
                header__part__email__id=obj.id,
            )[0]
            from_header = unicode_damnit(from_header.data)
        except IndexError:
            from_header = u""

        return {
            "from": from_header,
            "inbox": obj.inbox.inbox,
            "domain": obj.inbox.domain.domain,
        }
Exemple #9
0
 def test_invalid_charset(self):
     text = "Växjö".encode("utf-8")
     self.assertEqual(email_utils.unicode_damnit(text, "utf-8"), u"Växjö")
     self.assertEqual(email_utils.unicode_damnit(text, "six.text_type"),
                      u"V\ufffd\ufffdxj\ufffd\ufffd")
Exemple #10
0
    def test_unicode_passthrough(self):
        already_unicode = u"€"

        # if this doesn't passthrough, it will error
        email_utils.unicode_damnit(already_unicode, "ascii", "strict")
Exemple #11
0
 def test_is_unicode(self):
     string = "Hey there!"
     self.assertTrue(
         isinstance(email_utils.unicode_damnit(string), six.text_type))
Exemple #12
0
 def test_invalid_charset(self):
     text = "Växjö".encode("utf-8")
     self.assertEqual(email_utils.unicode_damnit(text, "utf-8"), u"Växjö")
     self.assertEqual(email_utils.unicode_damnit(text, "str"), u"V\ufffd\ufffdxj\ufffd\ufffd")
Exemple #13
0
    def test_unicode_passthrough(self):
        already_unicode = u"€"

        # if this doesn't passthrough, it will error
        email_utils.unicode_damnit(already_unicode, "ascii", "strict")
Exemple #14
0
 def test_is_unicode(self):
     string = "Hey there!"
     self.assertTrue(isinstance(email_utils.unicode_damnit(string), str))
Exemple #15
0
 def __call__(self, value):
     if '\x00' in unicode_damnit(value):
         raise ValidationError(self.message, code=self.code)