try to get preview from peers, fixes #79
This commit is contained in:
parent
0ff3b9ee3c
commit
5f8094bba3
5 changed files with 33 additions and 12 deletions
14
oml/nodes.py
14
oml/nodes.py
|
|
@ -359,10 +359,11 @@ class Node(Thread):
|
|||
logger.debug('FAILED %s', url)
|
||||
return False
|
||||
|
||||
def download_preview(self, item):
|
||||
def download_preview(self, item_id):
|
||||
logger.debug('trying to download preview from %s for %s', self.url, item_id)
|
||||
from item.icons import icons
|
||||
self.resolve()
|
||||
url = '%s/preview/%s' % (self.url, item.id)
|
||||
url = '%s/preview/%s' % (self.url, item_id)
|
||||
self._opener.addheaders = list(zip(self.headers.keys(), self.headers.values()))
|
||||
try:
|
||||
r = self._opener.open(url, timeout=self.TIMEOUT*2)
|
||||
|
|
@ -376,9 +377,9 @@ class Node(Thread):
|
|||
if r.headers.get('content-encoding', None) == 'gzip':
|
||||
fileobj = gzip.GzipFile(fileobj=r)
|
||||
content = fileobj.read()
|
||||
key = 'preview:' + item.id
|
||||
key = 'preview:' + item_id
|
||||
icons[key] = content
|
||||
icons.clear('preview:%s:'%item.id)
|
||||
icons.clear(key+':')
|
||||
return True
|
||||
except:
|
||||
logger.debug('preview download failed %s', url, exc_info=1)
|
||||
|
|
@ -446,6 +447,11 @@ class Nodes(Thread):
|
|||
def download(self, id, item):
|
||||
return id in self._nodes and self._nodes[id].download(item)
|
||||
|
||||
def download_preview(self, id, item):
|
||||
return id in self._nodes and \
|
||||
self._nodes[id].is_online() and \
|
||||
self._nodes[id].download_preview(item)
|
||||
|
||||
def _call(self, target, action, *args):
|
||||
if target == 'all':
|
||||
nodes = list(self._nodes.values())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue