diff --git a/src/gam.py b/src/gam.py index 32326bc5..7461cc77 100755 --- a/src/gam.py +++ b/src/gam.py @@ -2185,6 +2185,10 @@ def doPrintPrintJobs(): sys.exit(2) if sortorder and descending: sortorder = PRINTJOB_DESCENDINGORDER_MAP[sortorder] + if printerid: + result = callGAPI(cp.printers(), u'get', + printerid=printerid) + checkCloudPrintResult(result) jobCount = offset = 0 while True: if jobLimit == 0: @@ -2628,6 +2632,10 @@ def doPrintJobFetch(): sys.exit(2) if sortorder and descending: sortorder = PRINTJOB_DESCENDINGORDER_MAP[sortorder] + if printerid: + result = callGAPI(cp.printers(), u'get', + printerid=printerid) + checkCloudPrintResult(result) valid_chars = u'-_.() abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' ssd = u'{"state": {"type": "DONE"}}' jobCount = offset = 0 @@ -2641,9 +2649,6 @@ def doPrintJobFetch(): result = callGAPI(cp.jobs(), u'list', printerid=printerid, q=query, status=status, sortorder=sortorder, owner=owner, offset=offset, limit=limit) - if u'errorCode' in result and result[u'errorCode'] == 413: - print u'No print jobs.' - sys.exit(0) checkCloudPrintResult(result) newJobs = result[u'range'][u'jobsCount'] if newJobs == 0: @@ -2659,15 +2664,15 @@ def doPrintJobFetch(): continue fileUrl = job[u'fileUrl'] jobid = job[u'id'] - fileName = job[u'title'] - fileName = u''.join(c if c in valid_chars else u'_' for c in fileName) - fileName = u'%s-%s' % (fileName, jobid) + fileName = u'{0}-{1}'.format(u''.join(c if c in valid_chars else u'_' for c in job[u'title']), jobid) _, content = cp._http.request(uri=fileUrl, method='GET') if writeFile(fileName, content, continueOnError=True): # ticket = callGAPI(cp.jobs(), u'getticket', jobid=jobid, use_cjt=True) result = callGAPI(cp.jobs(), u'update', jobid=jobid, semantic_state_diff=ssd) checkCloudPrintResult(result) print u'Printed job %s to %s' % (jobid, fileName) + if jobCount == 0: + print u'No print jobs.' def doDelPrinter(): cp = buildGAPIObject(u'cloudprint')