Skip to content

Commit 0bef20b

Browse files
updates for status
1 parent 00b0a7a commit 0bef20b

File tree

5 files changed

+43
-34
lines changed

5 files changed

+43
-34
lines changed

qencode/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def x265_video_codec():
2929

3030
from exeptions import QencodeClientException, QencodeTaskException
3131

32-
__version__ = "0.9.28"
32+
__version__ = "0.9.29"
3333
__status__ = "Beta"
3434
__author__ = "Qencode"
3535

qencode/const.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,20 @@
11
REPEAT = 32
22
SLEEP_REGULAR = 10
33
SLEEP_ERROR = 60
4-
COMPLETED_STATUS = ['completed', 'saved']
4+
COMPLETED_STATUS = ['completed', 'saved']
5+
6+
ERROR_OK = 0
7+
ERROR_SERVER_INTERNAL = 1
8+
ERROR_BAD_APP_ID = 2
9+
ERROR_APP_ID_NOT_FOUND = 3
10+
ERROR_BAD_TOKEN = 4
11+
ERROR_TOKEN_NOT_FOUND = 5
12+
ERROR_TARIFF_NOT_PAID = 6
13+
ERROR_MASTER_NOT_FOUND = 7
14+
ERROR_SYSTEM_BUSY = 8
15+
ERROR_BAD_PAYLOAD = 9
16+
ERROR_PROJECT_NOT_FOUND = 10
17+
ERROR_BAD_PROFILE = 11
18+
ERROR_PROFILE_NOT_FOUND = 12
19+
ERROR_BAD_TOKENS = 13
20+
ERROR_FIELD_REQUIRED = 14

qencode/httptools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def __init__(self, version, url, debug=False):
1111

1212
def _call_server(self, url, post_data):
1313
if not url:
14-
response = dict(error=True, message='AttributeError: not URL')
14+
response = dict(error=True, message='AttributeError: Bad URL')
1515
return json.dumps(response)
1616
data = urllib.urlencode(post_data)
1717
request = urllib2.Request(url, data)

qencode/task.py

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ class Task(object):
99
def __init__(self, access_token, connect, debug=False, **kwargs):
1010
self.connect = connect
1111
self.status_url = None
12+
self.main_status_url = '{0}/{1}/status'.format(self.connect.url, self.connect.version)
1213
self.task_token = None
1314
self.upload_url = None
1415
self.access_token = access_token
@@ -60,9 +61,6 @@ def custom_start(self, data, **kwargs):
6061
if not self.error and self.task_token:
6162
self._start_encode('start_encode2', data)
6263

63-
64-
65-
6664
def status(self):
6765
return self._status()
6866

@@ -121,7 +119,6 @@ def _prepare_query(self, params):
121119
finally:
122120
self.message = "JSON is not well formatted"
123121

124-
125122
def _prepare_data(self, profiles, video_url, **kwargs):
126123
data = dict(
127124
task_token=self.task_token,
@@ -161,38 +158,34 @@ def _create_task(self, count):
161158
time.sleep(SLEEP_ERROR)
162159
self._create_task(count + 1)
163160

161+
164162
def _start_encode(self, api_name, data):
165163
res = self.connect.request(api_name, data)
166-
if not res['error']:
167-
self.status_url = res.get('status_url')
164+
if not res['error'] and res.get('status_url'):
165+
self.status_url = res['status_url']
168166
else:
169-
self.status_url = '{0}/{1}/status'.format(self.connect.url, self.connect.version)
170-
self.error = res['error']
167+
self.status_url = self.main_status_url
168+
self.error = res.get('error')
171169
self.message = res.get('message')
172170

173171
def _status(self):
174172
response = self.connect.post(self.status_url, dict(task_tokens=self.task_token))
175-
if not response['error']:
173+
status = None
174+
175+
if response['error'] == ERROR_BAD_TOKENS:
176+
raise ValueError('Bad token: ' + str(self.task_token))
177+
178+
if 'statuses' in response and self.task_token in response['statuses']:
179+
status = response['statuses'][self.task_token]
180+
181+
if not status and self.status_url != self.main_status_url:
182+
self.status_url = self.main_status_url
183+
response = self.connect.post(self.status_url, dict(task_tokens=self.task_token))
184+
if 'statuses' in response and self.task_token in response['statuses']:
176185
status = response['statuses'][self.task_token]
177-
if not status:
178-
status = self._status2()
179-
if status.get('status_url'):
180-
self.status_url = status.get('status_url')
181-
return status
182-
else:
183-
status = self._status2()
184-
return status
185-
186-
def _status2(self):
187-
response = self.connect.request('status', {'task_tokens[]': self.task_token})
188-
if not response['error']:
189-
res = response['statuses'][self.task_token]
190-
if res:
191-
if res.get('status_url'):
192-
self.status_url = res.get('status_url')
193-
return res
194-
else:
195-
return dict(error=True, message='Error getting status')
196-
else:
197-
return response
186+
187+
if status and 'status_url' in status:
188+
self.status_url = status['status_url']
189+
190+
return status
198191

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
setup(
1313
name='qencode',
14-
version='0.9.28',
14+
version='0.9.29',
1515
description="Client library for main features and functionality of Qencode for Python v2.x.",
1616
long_description=long_description,
1717
long_description_content_type='text/markdown',

0 commit comments

Comments
 (0)