Optimize print job downloads (#476)

This commit is contained in:
Ross Scroggs
2017-04-16 10:11:36 -07:00
committed by Jay Lee
parent d5b5251587
commit 3ceef052a3

View File

@@ -2324,6 +2324,12 @@ def doPrintPrintJobs():
result = callGAPI(cp.printers(), u'get', result = callGAPI(cp.printers(), u'get',
printerid=printerid) printerid=printerid)
checkCloudPrintResult(result) checkCloudPrintResult(result)
if ((not sortorder) or (sortorder == u'CREATE_TIME_DESC')) and (older_or_newer == u'newer'):
timeExit = True
elif (sortorder == u'CREATE_TIME') and (older_or_newer == u'older'):
timeExit = True
else:
timeExit = False
jobCount = offset = 0 jobCount = offset = 0
while True: while True:
if jobLimit == 0: if jobLimit == 0:
@@ -2348,8 +2354,14 @@ def doPrintPrintJobs():
createTime = int(job[u'createTime'])/1000 createTime = int(job[u'createTime'])/1000
if older_or_newer: if older_or_newer:
if older_or_newer == u'older' and createTime > age: if older_or_newer == u'older' and createTime > age:
if timeExit:
jobCount = totalJobs
break
continue continue
elif older_or_newer == u'newer' and createTime < age: elif older_or_newer == u'newer' and createTime < age:
if timeExit:
jobCount = totalJobs
break
continue continue
updateTime = int(job[u'updateTime'])/1000 updateTime = int(job[u'updateTime'])/1000
job[u'createTime'] = datetime.datetime.fromtimestamp(createTime).strftime(u'%Y-%m-%d %H:%M:%S') job[u'createTime'] = datetime.datetime.fromtimestamp(createTime).strftime(u'%Y-%m-%d %H:%M:%S')
@@ -2767,6 +2779,12 @@ def doPrintJobFetch():
checkCloudPrintResult(result) checkCloudPrintResult(result)
valid_chars = u'-_.() abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' valid_chars = u'-_.() abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
ssd = u'{"state": {"type": "DONE"}}' ssd = u'{"state": {"type": "DONE"}}'
if ((not sortorder) or (sortorder == u'CREATE_TIME_DESC')) and (older_or_newer == u'newer'):
timeExit = True
elif (sortorder == u'CREATE_TIME') and (older_or_newer == u'older'):
timeExit = True
else:
timeExit = False
jobCount = offset = 0 jobCount = offset = 0
while True: while True:
if jobLimit == 0: if jobLimit == 0:
@@ -2780,6 +2798,7 @@ def doPrintJobFetch():
owner=owner, offset=offset, limit=limit) owner=owner, offset=offset, limit=limit)
checkCloudPrintResult(result) checkCloudPrintResult(result)
newJobs = result[u'range'][u'jobsCount'] newJobs = result[u'range'][u'jobsCount']
totalJobs = int(result[u'range'][u'jobsTotal'])
if newJobs == 0: if newJobs == 0:
break break
jobCount += newJobs jobCount += newJobs
@@ -2788,8 +2807,14 @@ def doPrintJobFetch():
createTime = int(job[u'createTime'])/1000 createTime = int(job[u'createTime'])/1000
if older_or_newer: if older_or_newer:
if older_or_newer == u'older' and createTime > age: if older_or_newer == u'older' and createTime > age:
if timeExit:
jobCount = totalJobs
break
continue continue
elif older_or_newer == u'newer' and createTime < age: elif older_or_newer == u'newer' and createTime < age:
if timeExit:
jobCount = totalJobs
break
continue continue
fileUrl = job[u'fileUrl'] fileUrl = job[u'fileUrl']
jobid = job[u'id'] jobid = job[u'id']
@@ -2800,6 +2825,8 @@ def doPrintJobFetch():
result = callGAPI(cp.jobs(), u'update', jobid=jobid, semantic_state_diff=ssd) result = callGAPI(cp.jobs(), u'update', jobid=jobid, semantic_state_diff=ssd)
checkCloudPrintResult(result) checkCloudPrintResult(result)
print u'Printed job %s to %s' % (jobid, fileName) print u'Printed job %s to %s' % (jobid, fileName)
if jobCount >= totalJobs:
break
if jobCount == 0: if jobCount == 0:
print u'No print jobs.' print u'No print jobs.'