Skip to content

Commit

Permalink
Fix confirmation #274
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfovik authored and bukson committed Sep 14, 2023
2 parents 4498ab7 + 3b70ec0 commit c728393
Showing 1 changed file with 14 additions and 15 deletions.
29 changes: 14 additions & 15 deletions steampy/confirmation.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,9 @@


class Confirmation:
def __init__(self, _id, data_confid, data_key):
self.id = _id.split('conf')[1]
def __init__(self, data_confid, nonce):
self.data_confid = data_confid
self.data_key = data_key
self.nonce = nonce


class Tag(enum.Enum):
Expand Down Expand Up @@ -48,36 +47,36 @@ def _send_confirmation(self, confirmation: Confirmation) -> dict:
params = self._create_confirmation_params(tag.value)
params['op'] = tag.value,
params['cid'] = confirmation.data_confid
params['ck'] = confirmation.data_key
params['ck'] = confirmation.nonce
headers = {'X-Requested-With': 'XMLHttpRequest'}
return self._session.get(self.CONF_URL + '/ajaxop', params=params, headers=headers).json()

def _get_confirmations(self) -> List[Confirmation]:
confirmations = []
confirmations_page = self._fetch_confirmations_page()
soup = BeautifulSoup(confirmations_page.text, 'html.parser')
if soup.select('#mobileconf_empty'):
if confirmations_page.status_code == 200:
confirmations_json = json.loads(confirmations_page.text)
for conf in confirmations_json['conf']:
data_confid = conf['id']
nonce = conf['nonce']
confirmations.append(Confirmation(data_confid, nonce))
return confirmations
for confirmation_div in soup.select('#mobileconf_list .mobileconf_list_entry'):
_id = confirmation_div['id']
data_confid = confirmation_div['data-confid']
data_key = confirmation_div['data-key']
confirmations.append(Confirmation(_id, data_confid, data_key))
return confirmations
else:
raise ConfirmationExpected

def _fetch_confirmations_page(self) -> requests.Response:
tag = Tag.CONF.value
params = self._create_confirmation_params(tag)
headers = {'X-Requested-With': 'com.valvesoftware.android.steam.community'}
response = self._session.get(self.CONF_URL + '/conf', params=params, headers=headers)
response = self._session.get(self.CONF_URL + '/getlist', params=params, headers=headers)
if 'Steam Guard Mobile Authenticator is providing incorrect Steam Guard codes.' in response.text:
raise InvalidCredentials('Invalid Steam Guard file')
return response

def _fetch_confirmation_details_page(self, confirmation: Confirmation) -> str:
tag = 'details' + confirmation.id
tag = 'details' + confirmation.data_confid
params = self._create_confirmation_params(tag)
response = self._session.get(self.CONF_URL + '/details/' + confirmation.id, params=params)
response = self._session.get(self.CONF_URL + '/details/' + confirmation.data_confid, params=params)
return response.json()['html']

def _create_confirmation_params(self, tag_string: str) -> dict:
Expand Down

0 comments on commit c728393

Please sign in to comment.