mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
Optimize print job downloads (#476)
This commit is contained in:
27
src/gam.py
27
src/gam.py
@@ -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.'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user