mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
Update offset/limits processing for print jobs
This commit is contained in:
50
src/gam.py
50
src/gam.py
@@ -2122,7 +2122,8 @@ def doPrintPrintJobs():
|
|||||||
query = None
|
query = None
|
||||||
age = None
|
age = None
|
||||||
older_or_newer = None
|
older_or_newer = None
|
||||||
offset = limit = None
|
offset = 0
|
||||||
|
jobLimit = 25
|
||||||
i = 3
|
i = 3
|
||||||
while i < len(sys.argv):
|
while i < len(sys.argv):
|
||||||
myarg = sys.argv[i].lower().replace(u'_', u'')
|
myarg = sys.argv[i].lower().replace(u'_', u'')
|
||||||
@@ -2178,18 +2179,28 @@ def doPrintPrintJobs():
|
|||||||
offset = max(0, int(sys.argv[i+1]))
|
offset = max(0, int(sys.argv[i+1]))
|
||||||
i += 2
|
i += 2
|
||||||
elif myarg == u'limit':
|
elif myarg == u'limit':
|
||||||
limit = max(1, int(sys.argv[i+1]))
|
jobLimit = max(0, int(sys.argv[i+1]))
|
||||||
i += 2
|
i += 2
|
||||||
else:
|
else:
|
||||||
print u'ERROR: %s is not a valid argument for "gam print printjobs"' % sys.argv[i]
|
print u'ERROR: %s is not a valid argument for "gam print printjobs"' % sys.argv[i]
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
if sortorder and descending:
|
if sortorder and descending:
|
||||||
sortorder = PRINTJOB_DESCENDINGORDER_MAP[sortorder]
|
sortorder = PRINTJOB_DESCENDINGORDER_MAP[sortorder]
|
||||||
jobs = callGAPI(service=cp.jobs(), function=u'list',
|
jobCount = 0
|
||||||
|
while True:
|
||||||
|
limit = 25 if jobLimit == 0 else jobLimit-jobCount
|
||||||
|
if limit == 0:
|
||||||
|
break
|
||||||
|
result = callGAPI(cp.jobs(), u'list',
|
||||||
printerid=printerid, q=query, status=status, sortorder=sortorder,
|
printerid=printerid, q=query, status=status, sortorder=sortorder,
|
||||||
owner=owner, offset=offset, limit=limit)
|
owner=owner, offset=offset, limit=limit)
|
||||||
checkCloudPrintResult(jobs)
|
checkCloudPrintResult(result)
|
||||||
for job in jobs[u'jobs']:
|
newJobs = result[u'range'][u'jobsCount']
|
||||||
|
if newJobs == 0:
|
||||||
|
break
|
||||||
|
jobCount += newJobs
|
||||||
|
offset += newJobs
|
||||||
|
for job in result[u'jobs']:
|
||||||
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:
|
||||||
@@ -2236,7 +2247,7 @@ def doPrintPrinters():
|
|||||||
else:
|
else:
|
||||||
print u'ERROR: %s is not a valid argument for "gam print printers"' % sys.argv[i]
|
print u'ERROR: %s is not a valid argument for "gam print printers"' % sys.argv[i]
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
printers = callGAPI(service=cp.printers(), function=u'list', q=query, type=printer_type, connection_status=connection_status, extra_fields=extra_fields)
|
printers = callGAPI(cp.printers(), u'list', q=query, type=printer_type, connection_status=connection_status, extra_fields=extra_fields)
|
||||||
checkCloudPrintResult(printers)
|
checkCloudPrintResult(printers)
|
||||||
for printer in printers[u'printers']:
|
for printer in printers[u'printers']:
|
||||||
createTime = int(printer[u'createTime'])/1000
|
createTime = int(printer[u'createTime'])/1000
|
||||||
@@ -2561,7 +2572,8 @@ def doPrintJobFetch():
|
|||||||
query = None
|
query = None
|
||||||
age = None
|
age = None
|
||||||
older_or_newer = None
|
older_or_newer = None
|
||||||
offset = limit = None
|
offset = 0
|
||||||
|
jobLimit = 25
|
||||||
i = 4
|
i = 4
|
||||||
while i < len(sys.argv):
|
while i < len(sys.argv):
|
||||||
myarg = sys.argv[i].lower().replace(u'_', u'')
|
myarg = sys.argv[i].lower().replace(u'_', u'')
|
||||||
@@ -2611,24 +2623,32 @@ def doPrintJobFetch():
|
|||||||
offset = max(0, int(sys.argv[i+1]))
|
offset = max(0, int(sys.argv[i+1]))
|
||||||
i += 2
|
i += 2
|
||||||
elif myarg == u'limit':
|
elif myarg == u'limit':
|
||||||
limit = max(1, int(sys.argv[i+1]))
|
jobLimit = max(0, int(sys.argv[i+1]))
|
||||||
i += 2
|
i += 2
|
||||||
else:
|
else:
|
||||||
print u'ERROR: %s is not a valid argument for "gam printjobs fetch"' % sys.argv[i]
|
print u'ERROR: %s is not a valid argument for "gam printjobs fetch"' % sys.argv[i]
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
if sortorder and descending:
|
if sortorder and descending:
|
||||||
sortorder = PRINTJOB_DESCENDINGORDER_MAP[sortorder]
|
sortorder = PRINTJOB_DESCENDINGORDER_MAP[sortorder]
|
||||||
result = callGAPI(service=cp.jobs(), function=u'list',
|
valid_chars = u'-_.() abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
|
||||||
|
ssd = u'{"state": {"type": "DONE"}}'
|
||||||
|
jobCount = 0
|
||||||
|
while True:
|
||||||
|
limit = 25 if jobLimit == 0 else jobLimit-jobCount
|
||||||
|
if limit == 0:
|
||||||
|
break
|
||||||
|
result = callGAPI(cp.jobs(), u'list',
|
||||||
printerid=printerid, q=query, status=status, sortorder=sortorder,
|
printerid=printerid, q=query, status=status, sortorder=sortorder,
|
||||||
owner=owner, offset=offset, limit=limit)
|
owner=owner, offset=offset, limit=limit)
|
||||||
if u'errorCode' in result and result[u'errorCode'] == 413:
|
if u'errorCode' in result and result[u'errorCode'] == 413:
|
||||||
print u'No print jobs.'
|
print u'No print jobs.'
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
checkCloudPrintResult(result)
|
checkCloudPrintResult(result)
|
||||||
valid_chars = u'-_.() abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
|
newJobs = result[u'range'][u'jobsCount']
|
||||||
ssd = '''{
|
if newJobs == 0:
|
||||||
"state": {"type": "DONE"}
|
break
|
||||||
}'''
|
jobCount += newJobs
|
||||||
|
offset += newJobs
|
||||||
for job in result[u'jobs']:
|
for job in result[u'jobs']:
|
||||||
createTime = int(job[u'createTime'])/1000
|
createTime = int(job[u'createTime'])/1000
|
||||||
if older_or_newer:
|
if older_or_newer:
|
||||||
@@ -2643,8 +2663,8 @@ def doPrintJobFetch():
|
|||||||
fileName = u'%s-%s' % (fileName, jobid)
|
fileName = u'%s-%s' % (fileName, jobid)
|
||||||
_, content = cp._http.request(uri=fileUrl, method='GET')
|
_, content = cp._http.request(uri=fileUrl, method='GET')
|
||||||
if writeFile(fileName, content, continueOnError=True):
|
if writeFile(fileName, content, continueOnError=True):
|
||||||
# ticket = callGAPI(service=cp.jobs(), function=u'getticket', jobid=jobid, use_cjt=True)
|
# ticket = callGAPI(cp.jobs(), u'getticket', jobid=jobid, use_cjt=True)
|
||||||
result = callGAPI(service=cp.jobs(), function=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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user