move transfers into sqlitedict
This commit is contained in:
parent
9a9185d3d5
commit
9d7a553b95
6 changed files with 69 additions and 45 deletions
|
|
@ -271,11 +271,9 @@ def cancelDownloads(data):
|
|||
ids = data['ids']
|
||||
if ids:
|
||||
for item in models.Item.query.filter(models.Item.id.in_(ids)):
|
||||
t = models.Transfer.get(item.id)
|
||||
t = state.downloads.transfers.get(item.id)
|
||||
if t:
|
||||
t.progress = None
|
||||
t.added = None
|
||||
t.save()
|
||||
del state.downloads.transfers[item.id]
|
||||
p = state.user()
|
||||
if p in item.users:
|
||||
item.users.remove(p)
|
||||
|
|
|
|||
|
|
@ -120,11 +120,11 @@ class Item(db.Model):
|
|||
j['timesaccessed'] = self.timesaccessed
|
||||
j['accessed'] = self.accessed
|
||||
j['added'] = self.added
|
||||
t = Transfer.get(self.id)
|
||||
if t:
|
||||
j['transferadded'] = t.added
|
||||
j['transferprogress'] = t.progress
|
||||
|
||||
if state.downloads:
|
||||
t = state.downloads.transfers.get(self.id)
|
||||
if t:
|
||||
j['transferadded'] = t['added']
|
||||
j['transferprogress'] = t['progress']
|
||||
# unused and slow
|
||||
#j['users'] = list(map(str, list(self.users)))
|
||||
|
||||
|
|
@ -261,9 +261,12 @@ class Item(db.Model):
|
|||
|
||||
def update_mediastate(self):
|
||||
# available, unavailable, transferring
|
||||
t = Transfer.get(self.id)
|
||||
if t and t.added and t.progress < 1:
|
||||
self.info['mediastate'] = 'transferring'
|
||||
if state.downloads:
|
||||
t = state.downloads.transfers.get(self.id)
|
||||
if t and t.get('added') and t.get('progress', 0) < 1:
|
||||
self.info['mediastate'] = 'transferring'
|
||||
else:
|
||||
self.info['mediastate'] = 'available' if self.files.count() else 'unavailable'
|
||||
else:
|
||||
self.info['mediastate'] = 'available' if self.files.count() else 'unavailable'
|
||||
|
||||
|
|
@ -286,7 +289,8 @@ class Item(db.Model):
|
|||
|
||||
def delete(self, commit=True):
|
||||
Sort.query.filter_by(item_id=self.id).delete()
|
||||
Transfer.query.filter_by(item_id=self.id).delete()
|
||||
if state.downloads and self.id in state.downloads.transfers:
|
||||
del state.downloads.transfers[self.id]
|
||||
state.db.session.delete(self)
|
||||
icons.clear('cover:%s' % self.id)
|
||||
icons.clear('preview:%s' % self.id)
|
||||
|
|
@ -491,11 +495,10 @@ class Item(db.Model):
|
|||
def queue_download(self):
|
||||
u = state.user()
|
||||
if not u in self.users:
|
||||
t = Transfer.get_or_create(self.id)
|
||||
if not t.added:
|
||||
t.added = datetime.utcnow()
|
||||
t.progress = 0
|
||||
t.save()
|
||||
state.downloads.transfers[self.id] = {
|
||||
'added': datetime.utcnow(),
|
||||
'progress': 0
|
||||
}
|
||||
logger.debug('queue %s for download', self.id)
|
||||
self.add_user(u)
|
||||
|
||||
|
|
@ -525,9 +528,8 @@ class Item(db.Model):
|
|||
self.meta[key] = f.info[key]
|
||||
if u not in self.users:
|
||||
self.add_user(u)
|
||||
t = Transfer.get_or_create(self.id)
|
||||
t.progress = 1
|
||||
t.save()
|
||||
if state.downloads and self.id in state.downloads.transfers:
|
||||
del state.downloads.transfers[self.id]
|
||||
self.added = datetime.utcnow()
|
||||
Changelog.record(u, 'additem', self.id, f.info)
|
||||
Changelog.record(u, 'edititem', self.id, self.meta)
|
||||
|
|
@ -541,9 +543,8 @@ class Item(db.Model):
|
|||
return True
|
||||
else:
|
||||
logger.debug('TRIED TO SAVE EXISTING FILE!!!')
|
||||
t = Transfer.get_or_create(self.id)
|
||||
t.progress = 1
|
||||
t.save()
|
||||
if state.downloads and self.id in state.downloads.transfers:
|
||||
del state.downloads.transfers[self.id]
|
||||
self.update()
|
||||
return False
|
||||
|
||||
|
|
@ -566,7 +567,8 @@ class Item(db.Model):
|
|||
else:
|
||||
self.added = None
|
||||
self.update()
|
||||
Transfer.query.filter_by(item_id=self.id).delete()
|
||||
if self.id in state.downloads.transfers:
|
||||
del state.downloads.transfers[self.id]
|
||||
Changelog.record(user, 'removeitem', self.id)
|
||||
|
||||
class Sort(db.Model):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue