From be7f07ad1231b30bf953f0761773af46db952c62 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Mon, 5 Mar 2012 11:11:35 -0800 Subject: Prevent excess loading from the roster db. Fixes issue #148 --- sleekxmpp/roster/single.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'sleekxmpp/roster/single.py') diff --git a/sleekxmpp/roster/single.py b/sleekxmpp/roster/single.py index 633f23f6..611f8944 100644 --- a/sleekxmpp/roster/single.py +++ b/sleekxmpp/roster/single.py @@ -109,10 +109,13 @@ class RosterNode(object): db -- The new datastore interface. """ self.db = db - for jid in self.db.entries(self.jid): - self.add(jid) - for jid in self._jids: + existing_entries = set(self._jids) + new_entries = set(self.db.entries(self.jid, {})) + + for jid in existing_entries: self._jids[jid].set_backend(db) + for jid in new_entries - existing_entries: + self.add(jid) def add(self, jid, name='', groups=None, afrom=False, ato=False, pending_in=False, pending_out=False, whitelisted=False, -- cgit v1.2.3