From 44bb8aed094792526e6e95b6db1b3efe327dacf3 Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Wed, 2 Apr 2014 17:52:50 +0200 Subject: [PATCH] dont include offline files in queue --- pandora_client/server.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/pandora_client/server.py b/pandora_client/server.py index b056390..bf6827f 100644 --- a/pandora_client/server.py +++ b/pandora_client/server.py @@ -57,10 +57,24 @@ class Server(Resource): conn.commit() return files - def queued_encodes(self): + def is_available(self, oshash): + info = self.client.info(oshash) + if info and not 'error' in info: + for path in self.client.path(oshash): + if os.path.exists(path): + return True + return False + + def queued(self): site = self.client._config['url'] files = self.client.get_encodes(site) - return files + available = filter(lambda oshash: self.is_available(oshash), files) + unavailable = list(set(files) - set(available)) + return available, unavailable + + def queued_encodes(self): + available, unavailable = self.queued() + return available def update_status(self, oshash, status): conn, c = self.client._conn() @@ -153,9 +167,11 @@ class Server(Resource): thread.start_new_thread(self.update, ()) return self.render_json(request, {'status': True}) elif request.path.startswith('/status'): + queued, offline = self.queued() return self.render_json(request, { 'active': self.active_encodes(), - 'queue': self.queued_encodes() + 'queue': queued, + 'offline': offline }) request.headers['Content-Type'] = 'text/html' data = 'pandora_client distributed encoding server'