Compare commits
No commits in common. "5b4a58f2db6c2ee2bc0ad091cbe74775f99ad26c" and "8c0f68e2d553dc3eb81411a9879d9586353e83a3" have entirely different histories.
5b4a58f2db
...
8c0f68e2d5
3 changed files with 38 additions and 48 deletions
|
|
@ -437,6 +437,30 @@ class Item(db.Model):
|
|||
if state.nodes.download_preview(u.id, self.id):
|
||||
break
|
||||
|
||||
def update_cover(self):
|
||||
logger.debug('%s update cover', self.id)
|
||||
key = 'cover:%s' % self.id
|
||||
cover = None
|
||||
if 'cover' in self.meta and self.meta['cover']:
|
||||
logger.debug('download cover %s %s', self.id, self.meta['cover'])
|
||||
try:
|
||||
cover = ox.cache.read_url(self.meta['cover'])
|
||||
except:
|
||||
logger.debug('unable to read cover url %s', self.meta['cover'])
|
||||
cover = None
|
||||
if cover:
|
||||
icons[key] = cover
|
||||
self.info['coverRatio'] = get_ratio(cover)
|
||||
else:
|
||||
del icons[key]
|
||||
if not cover:
|
||||
if 'previewRatio' in self.info:
|
||||
self.info['coverRatio'] = self.info['previewRatio']
|
||||
elif 'coverRatio' in self.info:
|
||||
del self.info['coverRatio']
|
||||
icons.clear('cover:%s:' % self.id)
|
||||
logger.debug('%s update_cover done', self.id)
|
||||
|
||||
def get_preview(self):
|
||||
key = 'preview:%s' % self.id
|
||||
data = icons[key]
|
||||
|
|
@ -466,14 +490,11 @@ class Item(db.Model):
|
|||
icons.clear('preview:%s:' % self.id)
|
||||
logger.debug('%s update_preview done', self.id)
|
||||
|
||||
def update_cover(self):
|
||||
def update_icons(self):
|
||||
if state.online:
|
||||
download_cover(self.id)
|
||||
self.update_cover()
|
||||
elif state.tasks:
|
||||
state.tasks.queue('getcover', self.id)
|
||||
|
||||
def update_icons(self):
|
||||
self.update_cover()
|
||||
self.update_preview()
|
||||
|
||||
def load_metadata(self):
|
||||
|
|
@ -835,47 +856,15 @@ def update_sort_table():
|
|||
s.connection().execute(q)
|
||||
s.commit()
|
||||
|
||||
def download_cover(id):
|
||||
key = 'cover:%s' % id
|
||||
with db.session():
|
||||
i = Item.get(id)
|
||||
if i:
|
||||
url = i.meta.get('cover')
|
||||
else:
|
||||
url = None
|
||||
|
||||
logger.debug('download cover %s %s', self.id, url)
|
||||
ratio = None
|
||||
try:
|
||||
cover = ox.net.read_url(url)
|
||||
ratio = get_ratio(cover)
|
||||
except:
|
||||
logger.debug('unable to read cover url %s', url)
|
||||
cover = None
|
||||
with db.session():
|
||||
i = Item.get(id, for_update=True)
|
||||
if i:
|
||||
if cover:
|
||||
i.info['coverRatio'] = get_ratio(cover)
|
||||
else:
|
||||
if 'previewRatio' in i.info:
|
||||
i.info['coverRatio'] = i.info['previewRatio']
|
||||
elif 'coverRatio' in i.info:
|
||||
del i.info['coverRatio']
|
||||
i.save()
|
||||
|
||||
if cover:
|
||||
icons[key] = cover
|
||||
else:
|
||||
del icons[key]
|
||||
icons.clear('cover:%s:' % id)
|
||||
logger.debug('%s update_cover done', id)
|
||||
|
||||
def get_cover(id):
|
||||
delay = 60
|
||||
if state.online:
|
||||
# logger.debug('get_cover(%s)', id)
|
||||
download_cover(id)
|
||||
with db.session():
|
||||
i = Item.get(id)
|
||||
if i:
|
||||
i.update_cover()
|
||||
else:
|
||||
state.main.call_later(delay, lambda: state.tasks.queue('getcover', id))
|
||||
|
||||
|
|
|
|||
|
|
@ -314,7 +314,7 @@ oml.ui.folders = function() {
|
|||
|
||||
};
|
||||
|
||||
that.updateItems = function(list, items) {
|
||||
that.updateItems = function(items) {
|
||||
var $list;
|
||||
if (arguments.length == 0) {
|
||||
oml.getLists(function(lists) {
|
||||
|
|
@ -326,11 +326,12 @@ oml.ui.folders = function() {
|
|||
});
|
||||
});
|
||||
} else {
|
||||
$lists.forEach(function($list) {
|
||||
if (!Ox.isEmpty($list.value(list))) {
|
||||
$list.value(list, 'items', items);
|
||||
}
|
||||
})
|
||||
$list = $lists.filter(function($list) {
|
||||
return $list.options('selected').length;
|
||||
})[0];
|
||||
if ($list && !Ox.isEmpty($list.value(ui._list))) {
|
||||
$list.value(ui._list, 'items', items);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ oml.ui.list = function() {
|
|||
&& ui.find.conditions[0].key == 'list'
|
||||
&& ui.find.conditions[0].operator == '=='
|
||||
)) {
|
||||
oml.$ui.folders.updateItems(ui.find.conditions[0].value, data.items);
|
||||
oml.$ui.folders.updateItems(data.items);
|
||||
}
|
||||
oml.$ui.statusbar.set('total', data);
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue