__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#
# (c) Copyright 2015 HP Development Company, L.P.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Author: Don Welch
#
from __future__ import print_function
__version__ = '0.2'
__title__ = 'Model Query Utility'
__mod__ = 'hp-query'
__doc__ = "Query a printer model for static model information. Designed to be called from other processes."
# Std Lib
import sys
# Local
from base.g import *
from base import device, models, module
try:
mod = module.Module(__mod__, __title__, __version__, __doc__, None,
(NON_INTERACTIVE_MODE,), quiet=True)
mod.setUsage(0,
extra_options=[
("Specify model by device URI:", "-d<device_uri> or --device=<device_uri>", "option", False),
("Specify normalized model name:", "-m<model_name> or --model=<model_name> (normalized models.dat format)", "option", False),
("Specify raw model name:", "-r<model_name> or --raw=<model_name> (raw model name from MDL: field of device ID)", "option", False),
("Specify key to query:", "-k<key> or --key=<key> (or, use -a/--all to return all keys)", "option", False),
("Query all keys:", "-a or --all (default separator is a LF)", "option", False),
("Specify the separator when multiple keys are queried:", "-s<sep> --sep=<sep> (character or 'tab', 'newline', 'cr', 'lf', 'crlf')(only valid when used with -a/--all)", "option", False),
("Suppress trailing linefeed:", "-x", "option", False),],
see_also_list=['hp-info'])
opts, device_uri, printer_name, mode, ui_toolkit, lang = \
mod.parseStdOpts('m:k:as:d:r:x', ['model=', 'key=', 'sep=', 'all', 'device=', 'raw='],
handle_device_printer=False)
norm_model = None
raw_model = None
device_uri = None
key = None
all_keys = False
sep = 'lf'
suppress_trailing_linefeed = False
for o, a in opts:
if o in ('-m', '--model'):
norm_model = a
elif o in ('-d', '--model'):
device_uri = a
elif o in ('-k', '--key'):
key = a
all_keys = False
elif o in ('-a', '--all'):
all_keys = True
key = None
elif o in ('-r', '--raw'):
raw_model = a
elif o in ('-s', '--sep'):
sep = a
elif o == '-x':
suppress_trailing_linefeed = True
if (device_uri and norm_model) or \
(device_uri and raw_model) or \
(norm_model and raw_model):
log.stderr("error: You may only specify one of -d, -m, or -r.")
sys.exit(1)
if not device_uri and not norm_model and not raw_model:
log.stderr("error: You must specify one of -d, -m, or -r.")
sys.exit(1)
if device_uri:
try:
back_end, is_hp, bus, norm_model, serial, dev_file, host, zc, port = \
device.parseDeviceURI(device_uri)
except Error:
log.stderr("error: Invalid device URI: %s" % device_uri)
sys.exit(1)
elif raw_model:
norm_model = models.normalizeModelName(raw_model).lower()
if not norm_model:
log.stderr("error: Invalid model name.")
sys.exit(1)
s = sep.lower()
if s in ('lf', 'newline'):
sep = '\n'
elif s == 'cr':
sep = '\r'
elif s == 'crlf':
sep = '\r\n'
elif s == 'tab':
sep = '\t'
elif s == '=':
log.stderr("error: Separator must not be '='.")
sys.exit(1)
data = device.queryModelByModel(norm_model)
if not data:
log.stderr("error: Model name '%s' not found." % norm_model)
sys.exit(1)
output = ''
if all_keys:
kk = list(data.keys())
kk.sort()
for k in kk:
if not output:
output = '%s=%s' % (k, data[k])
else:
output = sep.join([output, '%s=%s' % (k, data[k])])
elif key:
try:
data[key]
except KeyError:
log.stderr("error: Key '%s' not found." % key)
sys.exit(1)
else:
output = '%s=%s' % (key, data[key])
else:
log.stderr("error: Must specify key with -k/--key or specify -a/--all.")
sys.exit(1)
if suppress_trailing_linefeed:
print(output, end=' ')
else:
print(output)
except KeyboardInterrupt:
pass
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| base | Folder | 0755 |
|
|
| copier | Folder | 0755 |
|
|
| data | Folder | 0755 |
|
|
| fax | Folder | 0755 |
|
|
| installer | Folder | 0755 |
|
|
| pcard | Folder | 0755 |
|
|
| prnt | Folder | 0755 |
|
|
| scan | Folder | 0755 |
|
|
| ui5 | Folder | 0755 |
|
|
| __init__.py | File | 848 B | 0755 |
|
| align.py | File | 9.14 KB | 0755 |
|
| check-plugin.py | File | 9.8 KB | 0755 |
|
| check.py | File | 39.2 KB | 0755 |
|
| clean.py | File | 7.05 KB | 0755 |
|
| colorcal.py | File | 9.08 KB | 0755 |
|
| config_usb_printer.py | File | 6.98 KB | 0755 |
|
| devicesettings.py | File | 2.68 KB | 0755 |
|
| diagnose_plugin.py | File | 3.77 KB | 0755 |
|
| diagnose_queues.py | File | 3.65 KB | 0755 |
|
| doctor.py | File | 12.69 KB | 0755 |
|
| fab.py | File | 24.38 KB | 0755 |
|
| faxsetup.py | File | 2.56 KB | 0755 |
|
| firmware.py | File | 6.47 KB | 0755 |
|
| hpdio.py | File | 7.04 KB | 0755 |
|
| hplip_clean.sh | File | 1.81 KB | 0644 |
|
| hpssd.py | File | 20.37 KB | 0755 |
|
| info.py | File | 6.26 KB | 0755 |
|
| levels.py | File | 6.85 KB | 0755 |
|
| linefeedcal.py | File | 2.53 KB | 0755 |
|
| logcapture.py | File | 12.15 KB | 0755 |
|
| makecopies.py | File | 11.41 KB | 0755 |
|
| makeuri.py | File | 5.6 KB | 0755 |
|
| pkservice.py | File | 3.13 KB | 0755 |
|
| plugin.py | File | 13.62 KB | 0755 |
|
| pqdiag.py | File | 2.44 KB | 0755 |
|
| print.py | File | 4.23 KB | 0755 |
|
| printsettings.py | File | 2.95 KB | 0755 |
|
| probe.py | File | 7.98 KB | 0755 |
|
| query.py | File | 4.94 KB | 0755 |
|
| scan.py | File | 88.25 KB | 0755 |
|
| sendfax.py | File | 21.62 KB | 0755 |
|
| setup.py | File | 37.26 KB | 0755 |
|
| signing-key.asc | File | 1.63 KB | 0644 |
|
| systray.py | File | 4.95 KB | 0755 |
|
| testpage.py | File | 5.98 KB | 0755 |
|
| timedate.py | File | 3.31 KB | 0755 |
|
| toolbox.py | File | 8.79 KB | 0755 |
|
| uiscan.py | File | 2.18 KB | 0755 |
|
| uninstall.py | File | 3.27 KB | 0755 |
|
| unload.py | File | 24.3 KB | 0755 |
|
| upgrade.py | File | 15.11 KB | 0755 |
|
| wificonfig.py | File | 2.79 KB | 0755 |
|