queue peering requests and send again
This commit is contained in:
parent
255bb6ce5c
commit
e4ca454c41
11 changed files with 157 additions and 97 deletions
|
|
@ -191,9 +191,13 @@ def requestPeering(request):
|
|||
if len(data.get('id', '')) != 43:
|
||||
logger.debug('invalid user id')
|
||||
return {}
|
||||
p = models.User.get_or_create(data['id'])
|
||||
state.nodes.queue('add', p.id)
|
||||
state.nodes.queue(p.id, 'requestPeering', data.get('message', ''))
|
||||
u = models.User.get_or_create(data['id'])
|
||||
u.pending = 'sent'
|
||||
u.queued = True
|
||||
u.info['message'] = data.get('message', '')
|
||||
u.save()
|
||||
state.nodes.queue('add', u.id)
|
||||
state.nodes.queue(u.id, 'peering', 'requestPeering')
|
||||
return {}
|
||||
actions.register(requestPeering, cache=False)
|
||||
|
||||
|
|
@ -204,9 +208,11 @@ def acceptPeering(request):
|
|||
logger.debug('invalid user id')
|
||||
return {}
|
||||
logger.debug('acceptPeering... %s', data)
|
||||
p = models.User.get_or_create(data['id'])
|
||||
state.nodes.queue('add', p.id)
|
||||
state.nodes.queue(p.id, 'acceptPeering', data.get('message', ''))
|
||||
u = models.User.get_or_create(data['id'])
|
||||
u.info['message'] = data.get('message', '')
|
||||
u.update_peering(True)
|
||||
state.nodes.queue('add', u.id)
|
||||
state.nodes.queue(u.id, 'peering', 'acceptPeering')
|
||||
return {}
|
||||
actions.register(acceptPeering, cache=False)
|
||||
|
||||
|
|
@ -216,9 +222,11 @@ def rejectPeering(request):
|
|||
if len(data.get('id', '')) != 43:
|
||||
logger.debug('invalid user id')
|
||||
return {}
|
||||
p = models.User.get_or_create(data['id'])
|
||||
state.nodes.queue('add', p.id)
|
||||
state.nodes.queue(p.id, 'rejectPeering', data.get('message', ''))
|
||||
u = models.User.get_or_create(data['id'])
|
||||
u.info['message'] = data.get('message', '')
|
||||
u.update_peering(False)
|
||||
state.nodes.queue('add', u.id)
|
||||
state.nodes.queue(u.id, 'peering', 'rejectPeering')
|
||||
return {}
|
||||
actions.register(rejectPeering, cache=False)
|
||||
|
||||
|
|
@ -229,8 +237,10 @@ def removePeering(request):
|
|||
logger.debug('invalid user id')
|
||||
return {}
|
||||
u = models.User.get_or_create(data['id'])
|
||||
u.info['message'] = data.get('message', '')
|
||||
u.update_peering(False)
|
||||
state.nodes.queue('add', u.id)
|
||||
state.nodes.queue(u.id, 'removePeering', data.get('message', ''))
|
||||
state.nodes.queue(u.id, 'peering', 'removePeering')
|
||||
return {}
|
||||
actions.register(removePeering, cache=False)
|
||||
|
||||
|
|
@ -240,9 +250,11 @@ def cancelPeering(request):
|
|||
if len(data.get('id', '')) != 43:
|
||||
logger.debug('invalid user id')
|
||||
return {}
|
||||
p = models.User.get_or_create(data['id'])
|
||||
state.nodes.queue('add', p.id)
|
||||
state.nodes.queue(p.id, 'cancelPeering', data.get('message', ''))
|
||||
u = models.User.get_or_create(data['id'])
|
||||
u.info['message'] = data.get('message', '')
|
||||
u.update_peering(False)
|
||||
state.nodes.queue('add', u.id)
|
||||
state.nodes.queue(u.id, 'peering', 'cancelPeering')
|
||||
return {}
|
||||
actions.register(cancelPeering, cache=False)
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ class User(db.Model):
|
|||
nickname = db.Column(db.String(256))
|
||||
|
||||
pending = db.Column(db.String(64)) # sent|received
|
||||
queued = db.Column(db.Boolean())
|
||||
peered = db.Column(db.Boolean())
|
||||
online = db.Column(db.Boolean())
|
||||
|
||||
|
|
@ -69,6 +70,7 @@ class User(db.Model):
|
|||
|
||||
def update_peering(self, peered, username=None):
|
||||
was_peering = self.peered
|
||||
self.queued = True
|
||||
if peered:
|
||||
self.pending = ''
|
||||
if username:
|
||||
|
|
@ -175,16 +177,18 @@ class List(db.Model):
|
|||
from item.models import Item
|
||||
for item_id in items:
|
||||
i = Item.get(item_id)
|
||||
self.items.append(i)
|
||||
if self.user_id == settings.USER_ID:
|
||||
i.queue_download()
|
||||
i.update()
|
||||
if i:
|
||||
self.items.append(i)
|
||||
if self.user_id == settings.USER_ID:
|
||||
i.queue_download()
|
||||
i.update()
|
||||
db.session.add(self)
|
||||
db.session.commit()
|
||||
for item_id in items:
|
||||
i = Item.get(item_id)
|
||||
i.update_lists()
|
||||
db.session.add(i)
|
||||
if i:
|
||||
i.update_lists()
|
||||
db.session.add(i)
|
||||
db.session.commit()
|
||||
if self.user_id == settings.USER_ID:
|
||||
Changelog.record(self.user, 'addlistitems', self.name, items)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue