def __makeRemoveItemsByGroupChain(self, name): chain = [] for contact in self.usersStorage.getList(GroupFindCriteria(name)): groups = contact.getGroups() groups.discard(name) chain.append((contact.getJID(), contact.getName(), groups)) return roster_tasks.RemoveRosterItemsGroupsChain(chain)
def __makeChangeGroupsChain(self, exclude, include=None): chain = [] for contact in self.usersStorage.getList(GroupFindCriteria(exclude)): jid = contact.getJID() groups = contact.getGroups() groups.discard(exclude) if include: groups.add(include) chain.append((jid, contact.getName(), groups)) return roster_tasks.ChangeRosterItemsGroupsChain(chain)