Skip to content
New issue

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

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

Already on GitHub? Sign in 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

@PinguPC
Copy link

PinguPC commented Oct 27, 2023

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

@PinguPC
Copy link

PinguPC commented Oct 28, 2023

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

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

Successfully merging this pull request may close these issues.

None yet

5 participants