user per peer library (sqlitedict)
This commit is contained in:
parent
cb382287f5
commit
0ca89db3cd
11 changed files with 472 additions and 60 deletions
|
|
@ -93,6 +93,11 @@ class User(db.Model):
|
|||
if self.id == settings.USER_ID:
|
||||
j['username'] = settings.preferences['username']
|
||||
j['contact'] = settings.preferences['contact']
|
||||
elif self.id in state.peers:
|
||||
peer = state.peers[self.id]
|
||||
for key in ('username', 'contact'):
|
||||
if key in peer.info:
|
||||
j[key] = peer.info[key]
|
||||
if keys:
|
||||
for k in set(j) - set(keys):
|
||||
del j[k]
|
||||
|
|
@ -161,6 +166,9 @@ class User(db.Model):
|
|||
Changelog.query.filter_by(user_id=self.id).delete()
|
||||
Metadata.query.filter_by(user_id=self.id).delete()
|
||||
self.save()
|
||||
if self.id in state.peers:
|
||||
state.peers[self.id].remove()
|
||||
del state.peers[self.id]
|
||||
|
||||
def update_name(self):
|
||||
if self.id == settings.USER_ID:
|
||||
|
|
@ -297,7 +305,7 @@ class List(db.Model):
|
|||
if update_conditions(l._query.get('conditions', [])):
|
||||
l.save()
|
||||
|
||||
def add_items(self, items):
|
||||
def add_items(self, items, commit=True):
|
||||
from item.models import Item
|
||||
for item_id in items:
|
||||
i = Item.get(item_id)
|
||||
|
|
@ -305,9 +313,10 @@ class List(db.Model):
|
|||
self.items.append(i)
|
||||
if self.user_id == settings.USER_ID:
|
||||
i.queue_download()
|
||||
i.update()
|
||||
i.update(commit=commit)
|
||||
state.db.session.add(self)
|
||||
state.db.session.commit()
|
||||
if commit:
|
||||
state.db.session.commit()
|
||||
if self.user_id == settings.USER_ID and self.name != '':
|
||||
Changelog.record(self.user, 'addlistitems', self.name, items)
|
||||
|
||||
|
|
@ -318,28 +327,30 @@ class List(db.Model):
|
|||
else:
|
||||
return self.user.items.join(Item.lists, aliased=True).filter(List.id == self.id)
|
||||
|
||||
def remove_items(self, items):
|
||||
def remove_items(self, items, commit=True):
|
||||
from item.models import Item
|
||||
for item_id in items:
|
||||
i = Item.get(item_id)
|
||||
if i:
|
||||
if i in self.items:
|
||||
self.items.remove(i)
|
||||
i.update()
|
||||
i.update(commit=commit)
|
||||
state.db.session.add(self)
|
||||
state.db.session.commit()
|
||||
if commit:
|
||||
state.db.session.commit()
|
||||
if self.user_id == settings.USER_ID and self.name != '':
|
||||
Changelog.record(self.user, 'removelistitems', self.name, items)
|
||||
|
||||
def remove(self):
|
||||
def remove(self, commit=True):
|
||||
if not self._query:
|
||||
for i in self.items:
|
||||
self.items.remove(i)
|
||||
q = list_items.delete().where(list_items.columns['list_id'].is_(self.id))
|
||||
state.db.session.execute(q)
|
||||
if not self._query:
|
||||
if self.user_id == settings.USER_ID and self.name != '':
|
||||
Changelog.record(self.user, 'removelist', self.name)
|
||||
state.db.session.delete(self)
|
||||
state.db.session.commit()
|
||||
if commit:
|
||||
state.db.session.commit()
|
||||
|
||||
@property
|
||||
def public_id(self):
|
||||
|
|
@ -445,7 +456,7 @@ class Metadata(db.Model):
|
|||
return m
|
||||
|
||||
def get_hash(self):
|
||||
return utils.get_meta_hash(self.data.copy())
|
||||
return utils.get_meta_hash(self.data)
|
||||
|
||||
def save(self, commit=True, modified=None):
|
||||
if modified is None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue