refactor(scraper): convert input-value extractions to helper
This commit is contained in:
parent
b7bc534681
commit
698e5bf22a
@ -386,11 +386,15 @@ class CM_BOT:
|
||||
def get_register_form_token(self):
|
||||
try:
|
||||
response = self.session.post(
|
||||
f'{self.base_url}/cm/loadUserAccount',
|
||||
f'{self.base_url}/cm/loadUserAccount',
|
||||
headers=self.get_register_form_headers
|
||||
)
|
||||
soup = BeautifulSoup(response.content, 'html.parser')
|
||||
return soup.find('input', {'name' : "token"})['value']
|
||||
return self._find_input_value(
|
||||
soup, "token",
|
||||
context="register_form_token",
|
||||
raw=response.content,
|
||||
)
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"Error getting register form: {e}")
|
||||
return None
|
||||
@ -399,7 +403,11 @@ class CM_BOT:
|
||||
def get_security_pin_form_token(self):
|
||||
response = self.session.get(f'{self.base_url}/cm/setSecurityPin')
|
||||
soup = BeautifulSoup(response.content, 'html.parser')
|
||||
return soup.find('input', {'name' : "token"})['value']
|
||||
return self._find_input_value(
|
||||
soup, "token",
|
||||
context="security_pin_form_token",
|
||||
raw=response.content,
|
||||
)
|
||||
|
||||
def register_user(self, user_id, user_password):
|
||||
try:
|
||||
@ -474,17 +482,29 @@ class CM_BOT:
|
||||
headers=self.transfer_search_headers
|
||||
)
|
||||
soup = BeautifulSoup(response.content, 'html.parser')
|
||||
name = soup.find('input', {'id': "name"})['value']
|
||||
token = soup.find('input', {'name': "token"})['value']
|
||||
toUserId = soup.find('input', {'id': "toUserId"})['value']
|
||||
name = self._find_input_value(
|
||||
soup, "name",
|
||||
context="transfer_search_name",
|
||||
raw=response.content,
|
||||
by="id",
|
||||
)
|
||||
token = self._find_input_value(
|
||||
soup, "token",
|
||||
context="transfer_search_token",
|
||||
raw=response.content,
|
||||
)
|
||||
toUserId = self._find_input_value(
|
||||
soup, "toUserId",
|
||||
context="transfer_search_toUserId",
|
||||
raw=response.content,
|
||||
by="id",
|
||||
)
|
||||
transfer_data = self.get_transfer_data(token, t_username, name, toUserId, amount, t_password)
|
||||
response = self.session.post(
|
||||
f'{self.base_url}/cm/saveTransfer',
|
||||
data=transfer_data,
|
||||
headers=self.transfer_credit_headers
|
||||
)
|
||||
# with open('transfer_credit.html', 'wb') as f:
|
||||
# f.write(response.content)
|
||||
return True if re.search(r'Successfully saved the record\.', response.text) else False
|
||||
|
||||
def get_user_credit(self):
|
||||
@ -505,7 +525,11 @@ class CM_BOT:
|
||||
def get_transfer_token(self):
|
||||
response = self.session.get(f'{self.base_url}/cm/transfer')
|
||||
soup = BeautifulSoup(response.content, 'html.parser')
|
||||
return soup.find('input', {'name' : "token"})['value']
|
||||
return self._find_input_value(
|
||||
soup, "token",
|
||||
context="transfer_token",
|
||||
raw=response.content,
|
||||
)
|
||||
|
||||
def logout(self):
|
||||
"""Logout from the system."""
|
||||
|
||||
@ -114,6 +114,14 @@ class ScraperHelpersTests(unittest.TestCase):
|
||||
"happy path should not create the failure dir",
|
||||
)
|
||||
|
||||
def test_find_input_value_supports_by_id(self):
|
||||
html = '<form><input id="toUserId" value="42"></form>'
|
||||
soup = BeautifulSoup(html, "html.parser")
|
||||
result = self.bot._find_input_value(
|
||||
soup, "toUserId", context="by_id", raw=html.encode(), by="id",
|
||||
)
|
||||
self.assertEqual(result, "42")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user