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])
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)
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])
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])