switch to pull based updates

This commit is contained in:
j 2015-12-01 09:59:52 +01:00
commit 75164a8399
4 changed files with 58 additions and 26 deletions

View file

@ -45,8 +45,13 @@ class User(db.Model):
if not user:
user = cls(id=id, peered=False, online=False)
user.info = {}
if state.nodes and state.nodes._local and id in state.nodes._local._nodes:
user.info['local'] = state.nodes._local._nodes[id]
user.info['username'] = user.info['local']['username']
user.update_name()
user.save()
if state.nodes:
state.nodes.queue('add', user.id)
return user
def save(self):
@ -87,6 +92,8 @@ class User(db.Model):
def update_peering(self, peered, username=None):
was_peering = self.peered
if peered:
logging.debug('update_peering, pending: %s queued: %s', self.pending, self.queued)
self.queued = self.pending != 'sent'
self.pending = ''
if username:
self.info['username'] = username
@ -98,11 +105,11 @@ class User(db.Model):
if not was_peering:
Changelog.record(state.user(), 'addpeer', self.id, self.nickname)
self.peered = True
self.queued = True
self.save()
else:
self.pending = ''
self.peered = False
self.queued = False
self.update_name()
self.save()
List.query.filter_by(user_id=self.id).delete()