Skip to content

Commit eb1434a

Browse files
chore: remove v3
1 parent 1b04c86 commit eb1434a

File tree

1 file changed

+22
-30
lines changed

1 file changed

+22
-30
lines changed

staff/lab/economode

+22-30
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class Printer:
2121
self.session.verify = False
2222
self.server = server
2323
self.logged_in = False
24-
self.version = 3
24+
self.version = 4
2525

2626
def __enter__(self):
2727
self.session.__enter__()
@@ -34,19 +34,19 @@ class Printer:
3434

3535
def log_in(self, password):
3636
"""Logs in to the printer and returns whether that succeeded."""
37-
37+
resp = self.session.get('https://' + self.server +
38+
'/hp/device/SignIn/Index')
39+
tree = lxml.html.fromstring(resp.content)
40+
token = tree.get_element_by_id("CSRFToken")
3841
resp = self.session.post('https://' + self.server +
3942
'/hp/device/SignIn/Index',
40-
data={'agentIdSelect': 'hp_EmbeddedPin_v1',
43+
data={'CSRFToken': token,
44+
'agentIdSelect': 'hp_EmbeddedPin_v1',
4145
'PinDropDown': 'AdminItem',
4246
'PasswordTextBox': password})
43-
if '<h2>Sign In failed</h2>' in resp.text or '<h2>Sign-In failed</h2>' in resp.text:
47+
if '<h2>Sign-In failed</h2>' in resp.text:
4448
return False
4549
else:
46-
if 'HP Development Company, L.P.' in resp.text:
47-
self.version = 4
48-
else:
49-
self.version = 3
5050
self.logged_in = True
5151
return True
5252

@@ -61,7 +61,7 @@ class Printer:
6161
form option name -> form option value."""
6262

6363
resp = self.session.get('https://' + self.server +
64-
'/hp/device/MenuTree/IndexForm?id=PrintQuality')
64+
'/hp/device/DefaultPrintOptions/Index')
6565
tree = lxml.html.fromstring(resp.content)
6666
opts = {}
6767
for select_elem in tree.xpath('//form//select'):
@@ -88,27 +88,19 @@ class Printer:
8888
raise ValueError('You must log in first')
8989
if setting not in ('On', 'Off'):
9090
raise ValueError('setting must be "On" or "Off"')
91-
if self.version == 3:
92-
opts = self.get_print_quality_opts()
93-
opts['Economode__mEconomodeListBox'] = setting
94-
opts['FormButtonSubmit'] = 'OK'
95-
resp = self.session.post('https://' + self.server +
96-
'/hp/device/MenuTree/IndexForm?id=PrintQuality',
97-
data=opts)
98-
return '<h2>The operation was executed successfully.</h2>' in resp.text
99-
elif self.version == 4:
100-
token = self.get_csrf_token().value
101-
density = 2 if setting == 'On' else 3
102-
opts = {}
103-
opts['CSRFToken'] = token
104-
opts['TonerDensityBlack'] = density
105-
opts['ResolutionEnhancementTechnology'] = "on"
106-
opts['FormButtonSubmit'] = 'Apply'
107-
print(opts)
108-
resp = self.session.post('https://' + self.server +
109-
'/hp/device/PrintQuality/Save',
110-
data=opts)
111-
return '<h2>The operation was completed successfully.</h2>' in resp.text
91+
token = self.get_csrf_token().value
92+
opts = self.get_print_quality_opts()
93+
opts['CSRFToken'] = token
94+
opts['NumberOfCopies'] = '1'
95+
opts['XDimension'] = '12.28'
96+
opts['YDimension'] = '18.5'
97+
opts['UseInches'] = 'on'
98+
opts['PrintQualityMode'] = 'Economode' if setting == 'On' else 'Normal'
99+
opts['FormButtonSubmit'] = 'Apply'
100+
resp = self.session.post('https://' + self.server +
101+
'/hp/device/DefaultPrintOptions/Save',
102+
data=opts)
103+
return '<h2>The operation was completed successfully.</h2>' in resp.text
112104

113105

114106
def main():

0 commit comments

Comments
 (0)