Пример #1
0
    def index_email(self, session, email):
        msg = email.get_msg()
        msg_info = email.get_msg_info()
        mbox_idx = msg_info[self.MSG_PTRS].split(',')[0][:MBX_ID_LEN]

        msg_subj = self.hdr(msg, 'subject')
        msg_to = ExtractEmails(self.hdr(msg, 'to'))
        msg_cc = (ExtractEmails(self.hdr(msg, 'cc')) +
                  ExtractEmails(self.hdr(msg, 'bcc')))


        kw, sn = self.index_message(session,
                                    email.msg_mid(),
                                    msg_info[self.MSG_ID],
                                    msg,
                                    email.get_msg_size(),
                                    long(msg_info[self.MSG_DATE], 36),
                                    mailbox=mbox_idx,
                                    compact=False,
                                    filter_hooks=[self.filter_keywords])

        snippet_max = session.config.sys.snippet_max
        self.edit_msg_info(msg_info,
                           msg_from=self.hdr(msg, 'from'),
                           msg_to=msg_to,
                           msg_cc=msg_cc,
                           msg_subject=msg_subj,
                           msg_body=sn[:max(0, snippet_max - len(msg_subj))])

        self.set_msg_at_idx_pos(email.msg_idx_pos, msg_info)
Пример #2
0
 def index_email(self, session, email):
     mbox_idx = email.get_msg_info(self.MSG_PTRS).split(',')[0][:MBX_ID_LEN]
     kw, sn = self.index_message(session,
                                 email.msg_mid(),
                                 email.get_msg_info(self.MSG_ID),
                                 email.get_msg(),
                                long(email.get_msg_info(self.MSG_DATE), 36),
                                 mailbox=mbox_idx,
                                 compact=False,
                                 filter_hooks=[self.filter_keywords])
Пример #3
0
 def index_email(self, session, email):
     mbox_idx = email.get_msg_info(self.MSG_PTRS).split(',')[0][:MBX_ID_LEN]
     kw, sn = self.index_message(session,
                                 email.msg_mid(),
                                 email.get_msg_info(self.MSG_ID),
                                 email.get_msg(),
                                long(email.get_msg_info(self.MSG_DATE), 36),
                                 mailbox=mbox_idx,
                                 compact=False,
                                 filter_hooks=[self.filter_keywords])
Пример #4
0
    def index_email(self, session, email):
        msg = email.get_msg()
        msg_info = email.get_msg_info()
        mbox_idx = msg_info[self.MSG_PTRS].split(",")[0][:MBX_ID_LEN]

        msg_subj = self.hdr(msg, "subject")
        msg_to = ExtractEmails(self.hdr(msg, "to"))
        msg_cc = ExtractEmails(self.hdr(msg, "cc")) + ExtractEmails(self.hdr(msg, "bcc"))

        filters = _plugins.get_filter_hooks([self.filter_keywords])
        kw, sn = self.index_message(
            session,
            email.msg_mid(),
            msg_info[self.MSG_ID],
            msg,
            email.get_msg_size(),
            long(msg_info[self.MSG_DATE], 36),
            mailbox=mbox_idx,
            compact=False,
            filter_hooks=filters,
            is_new=False,
        )

        tags = [k.split(":")[0] for k in kw if k.endswith(":in") or k.endswith(":tag")]

        snippet_max = session.config.sys.snippet_max
        self.edit_msg_info(
            msg_info,
            msg_from=self.hdr(msg, "from"),
            msg_to=msg_to,
            msg_cc=msg_cc,
            msg_subject=msg_subj,
            msg_body=sn[: max(0, snippet_max - len(msg_subj))],
        )

        self.set_msg_at_idx_pos(email.msg_idx_pos, msg_info)

        # Reset the internal tags on this message
        for tag_id in [t for t in msg_info[self.MSG_TAGS].split(",") if t]:
            tag = session.config.get_tag(tag_id)
            if tag and tag.slug.startswith("mp_"):
                self.remove_tag(session, tag_id, msg_idxs=[email.msg_idx_pos])

        # Add normal tags implied by a rescan
        for tag_id in tags:
            self.add_tag(session, tag_id, msg_idxs=[email.msg_idx_pos])
Пример #5
0
    def index_email(self, session, email):
        msg = email.get_msg()
        msg_info = email.get_msg_info()
        mbox_idx = msg_info[self.MSG_PTRS].split(',')[0][:MBX_ID_LEN]

        msg_subj = self.hdr(msg, 'subject')
        msg_to = ExtractEmails(self.hdr(msg, 'to'))
        msg_cc = (ExtractEmails(self.hdr(msg, 'cc')) +
                  ExtractEmails(self.hdr(msg, 'bcc')))

        kw, sn = self.index_message(session,
                                    email.msg_mid(),
                                    msg_info[self.MSG_ID],
                                    msg,
                                    email.get_msg_size(),
                                    long(msg_info[self.MSG_DATE], 36),
                                    mailbox=mbox_idx,
                                    compact=False,
                                    filter_hooks=[self.filter_keywords])

        tags = [
            k.split(':')[0] for k in kw
            if k.endswith(':in') or k.endswith(':tag')
        ]

        snippet_max = session.config.sys.snippet_max
        self.edit_msg_info(msg_info,
                           msg_from=self.hdr(msg, 'from'),
                           msg_to=msg_to,
                           msg_cc=msg_cc,
                           msg_subject=msg_subj,
                           msg_body=sn[:max(0, snippet_max - len(msg_subj))])

        self.set_msg_at_idx_pos(email.msg_idx_pos, msg_info)

        # Reset the internal tags on this message
        for tag_id in [t for t in msg_info[self.MSG_TAGS].split(',') if t]:
            tag = session.config.get_tag(tag_id)
            if tag and tag.slug.startswith('mp_'):
                self.remove_tag(session, tag_id, msg_idxs=[email.msg_idx_pos])

        # Add normal tags implied by a rescan
        print 'Applying %s' % tags
        for tag_id in tags:
            self.add_tag(session, tag_id, msg_idxs=[email.msg_idx_pos])