diff --git a/oml/nodes.py b/oml/nodes.py index f8faf49..fe23c12 100644 --- a/oml/nodes.py +++ b/oml/nodes.py @@ -31,6 +31,7 @@ class Node(object): _cert = None online = False download_speed = 0 + TIMEOUT = 3 def __init__(self, nodes, user): self._nodes = nodes @@ -97,7 +98,7 @@ class Node(object): } self._opener.addheaders = zip(headers.keys(), headers.values()) try: - r = self._opener.open(url, data=content) + r = self._opener.open(url, data=content, timeout=self.TIMEOUT) except urllib2.HTTPError as e: if e.code == 403: logger.debug('REMOTE ENDED PEERING') @@ -235,7 +236,7 @@ class Node(object): content = r.content ''' self._opener.addheaders = zip(headers.keys(), headers.values()) - r = self._opener.open(url) + r = self._opener.open(url, timeout=self.TIMEOUT) if r.getcode() == 200: content = r.read() t2 = datetime.now() diff --git a/oml/user/api.py b/oml/user/api.py index bcd8277..ba0b593 100644 --- a/oml/user/api.py +++ b/oml/user/api.py @@ -136,10 +136,18 @@ actions.register(editList, cache=False) @returns_json def addListItems(request): data = json.loads(request.form['data']) if 'data' in request.form else {} - l = models.List.get_or_create(data['list']) - if l: - l.add_items(data['items']) - return l.json() + if data['list'] == ':': + from item.models import Item + user = state.user() + for item_id in data['items']: + i = Item.get(item_id) + if user not in i.users: + i.queue_download() + elif data['list']: + l = models.List.get_or_create(data['list']) + if l: + l.add_items(data['items']) + return l.json() return {} actions.register(addListItems, cache=False) diff --git a/static/js/utils.js b/static/js/utils.js index df430a6..a701265 100644 --- a/static/js/utils.js +++ b/static/js/utils.js @@ -208,6 +208,7 @@ oml.clearFilters = function() { items: addedItems, list: target }, function(result) { + Ox.Request.clearCache(); callback(result, addedItems); }); } else {