Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

re-write webauth implementation for steam backend changes #453

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

aUniqueUser
Copy link

login/dologin/ was borked by valve, pr addresses issue by using the new login system

todo:

  • steam email/mobile guard support
  • replace WebAuth class with WebAuth2 class

@aUniqueUser
Copy link
Author

aUniqueUser commented Oct 24, 2023

resolves #451 #450 after completion.
#452 will need to be looked into, anyone welcome to contribute.

@negstek
Copy link

negstek commented Oct 24, 2023

@aUniqueUser I gave a try with your code but it does not work. I tried this:

user = wa.WebAuth2(STEAM_BOT_NAME)
steam_session = user.login(STEAM_BOT_PASSWORD)

item_name="AK-47 | Aquamarine Revenge (Factory New)"
url = f"https://steamcommunity.com/market/pricehistory/?appid=730&market_hash_name={item_name}"
    
request = steam_session.get(url)
result = json.loads(request.text)
print(result)

but I get this exception:
, line 144, in _startSessionWithCredentials self.clientID = r['response']['client_id'] ~~~~~~~~~~~~~^^^^^^^^^^^^^ KeyError: 'client_id'
response is empty except for interval argument:

r = {'response': {'interval': 5, 'extended_error_message': ''}}

@negstek
Copy link

negstek commented Oct 24, 2023

Forget about my previous answer, you changed a bit the behavior of the login method so my legacy code failed but after a deeper look into your code it works fine using login with username and password attributes

user = wa.WebAuth2()
steam_session = user.login(STEAM_BOT_NAME, STEAM_BOT_PASSWORD)

item_name="AK-47 | Aquamarine Revenge (Factory New)"
url = f"https://steamcommunity.com/market/pricehistory/?appid=730&market_hash_name={item_name}"
    
request = steam_session.get(url)
result = json.loads(request.text)
print(result)

works fine, thank you very much for your help.

@aUniqueUser
Copy link
Author

Yea before final merge I will need to correct it to work better with legacy code, good to see it working though 👍

'platform_type': '2',
'persistence': '1',
'website_id': 'Community'
}, 'IAuthentication', 'BeginAuthSessionViaCredentials', 1)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since I use the steam authenticator app I added support for it by adding the following lines here at line 144:

if "allowed_confirmations" in r['response']:
            print("Respond to steam guard within 10 seconds")
            sleep(10)

and of course adding sleep to the import at row 58.

If you reply to the authentication before the _pollLoginStatus the login will continue as normal.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the info, ill full implement when i get some time and will add email auth aswell. Need to figure out what 'guard_data' is in here https://steamapi.xpaw.me/#IAuthenticationService/BeginAuthSessionViaCredentials

@Revibess
Copy link

Has anyone figured out how to add email authentication to this.

@artur1214
Copy link

Has anyone figured out how to add email authentication to this.

Yeah. I will write some staff into codebase and add pull request (about 1 day) mayble sooner, but it's 3 AM for me

@Revibess
Copy link

Has anyone figured out how to add email authentication to this.

Yeah. I will write some staff into codebase and add pull request (about 1 day) mayble sooner, but it's 3 AM for me

No worries, take your time.

@artur1214
Copy link

I added

Has anyone figured out how to add email authentication to this.

Yeah. I will write some staff into codebase and add pull request (about 1 day) mayble sooner, but it's 3 AM for me

No worries, take your time.

I added some changes, and will add MUCH more later. you can check them out in another PR: #454

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants