Exemple #1
0
 def add_tag(self, session, tag_id,
                         msg_info=None, msg_idxs=None, conversation=False):
     CachedSearchResultSet.DropCaches()
     pls = GlobalPostingList(session, '%s:tag' % tag_id)
     if msg_info and msg_idxs is None:
         msg_idxs = set([int(msg_info[self.MSG_MID], 36)])
     else:
         msg_idxs = set(msg_idxs)
     session.ui.mark(_('Tagging %d messages (%s)') % (len(msg_idxs), tag_id))
     for msg_idx in list(msg_idxs):
         if conversation:
             for reply in self.get_conversation(msg_idx=msg_idx):
                 if reply[self.MSG_MID]:
                     msg_idxs.add(int(reply[self.MSG_MID], 36))
     for msg_idx in msg_idxs:
         if msg_idx >= 0 and msg_idx < len(self.INDEX):
             msg_info = self.get_msg_at_idx_pos(msg_idx)
             tags = set([r for r in msg_info[self.MSG_TAGS].split(',')
                                 if r])
             tags.add(tag_id)
             msg_info[self.MSG_TAGS] = ','.join(list(tags))
             self.INDEX[msg_idx] = self.m2l(msg_info)
             self.MODIFIED.add(msg_idx)
             pls.append(msg_info[self.MSG_MID])
     pls.save()
Exemple #2
0
 def add_tag(self,
             session,
             tag_id,
             msg_info=None,
             msg_idxs=None,
             conversation=False):
     pls = GlobalPostingList(session, '%s:tag' % tag_id)
     if msg_info and msg_idxs is None:
         msg_idxs = set([int(msg_info[self.MSG_MID], 36)])
     else:
         msg_idxs = set(msg_idxs)
     session.ui.mark('Tagging %d messages (%s)' % (len(msg_idxs), tag_id))
     for msg_idx in list(msg_idxs):
         if conversation:
             for reply in self.get_conversation(msg_idx=msg_idx):
                 if reply[self.MSG_MID]:
                     msg_idxs.add(int(reply[self.MSG_MID], 36))
     for msg_idx in msg_idxs:
         if msg_idx >= 0 and msg_idx < len(self.INDEX):
             msg_info = self.get_msg_at_idx_pos(msg_idx)
             tags = set(
                 [r for r in msg_info[self.MSG_TAGS].split(',') if r])
             tags.add(tag_id)
             msg_info[self.MSG_TAGS] = ','.join(list(tags))
             self.INDEX[msg_idx] = self.m2l(msg_info)
             self.MODIFIED.add(msg_idx)
             pls.append(msg_info[self.MSG_MID])
     pls.save()