Coder Social home page Coder Social logo

gobot1234 / steam.py Goto Github PK

View Code? Open in Web Editor NEW
168.0 5.0 37.0 6.43 MB

An async python wrapper to interact with the Steam API and its CMs

Home Page: https://steam-py.github.io/docs/latest

License: Other

Python 100.00%
steam steam-api python python-3 valve steamworks betterproto asyncio

steam.py's Introduction

steam.py

A modern, easy to use, and async ready package to interact with the Steam API. Heavily inspired by discord.py.

Supports Version License GitHub issues GitHub stars Discord Documentation Status

Key Features

  • Modern Pythonic API using async/await syntax
  • Command extension to aid with bot creation
  • Easy to use with an object-oriented design
  • Fully typed hinted for faster development

Installation

Python 3.10 or higher is required

To install the library just run either of the following commands:

# Linux/macOS
python3 -m pip install -U steamio
# Windows
py -m pip install -U steamio

Or for the development version.

# Linux/macOS
python3 -m pip install -U "steamio @ git+https://github.com/Gobot1234/steam.py@main"
# Windows
py -m pip install -U "steamio @ git+https://github.com/Gobot1234/steam.py@main"

Quick Example

import steam


class MyClient(steam.Client):
    async def on_ready(self) -> None:
        print("Logged in as", self.user)

    async def on_trade(self, trade: steam.TradeOffer) -> None:
        if not trade.is_our_offer():
            await trade.user.send("Thank you for your trade")
            print(f"Received trade: #{trade.id}")
            print("Trade partner is:", trade.user)
            print("We would send:", len(trade.sending), "items")
            print("We would receive:", len(trade.receiving), "items")

            if trade.is_gift():
                print("Accepting the trade as it is a gift")
                await trade.accept()


client = MyClient()
client.run("username", "password")

Bot Example

from steam.ext import commands

bot = commands.Bot(command_prefix="!")


@bot.command
async def ping(ctx: commands.Context) -> None:
    await ctx.send("Pong!")


bot.run("username", "password")

Links

steam.py's People

Contributors

abduldridi avatar art-em1s avatar dependabot-preview[bot] avatar dependabot[bot] avatar gobot1234 avatar hashdashme avatar hexiro avatar ibn-icena avatar markov-avl avatar mitt3n avatar nikviktorovich avatar offish avatar pre-commit-ci[bot] avatar pstryczke avatar restyled-io[bot] avatar schrotle avatar singularbunny avatar smtp639 avatar sobolevn avatar somespecialone avatar sourcery-ai[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

steam.py's Issues

user.send(trade) breakes the code and doesn't continue to next line

Summary

sending trade might have problems

Reproduction Steps

trade = steam.TradeOffer(token=token, message=f"hello {order_id}", sending=item_to_send, receiving=None)

await user1.send(trade=trade)
print("Doesn't Print this !")


i have integrated my steambot to discordbot, trade gets created and confirmed almost instantly but as i showed on the example above print("Doesn't Print this !") will not happen and the rest of the function wont happen...

Expected Results

it should continue to next line of code and print the print("Doesn't Print this !")

Actual Results

code breakes on user.send(trade=trade)
trade is sent and confirmed but code breakes

System Information

windows 11 - latest version of python and steam and discord library

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

TypeError in the trade processing

Summary

Client.fetch_trade crashes with TypeError exception

Reproduction Steps

  • Call Client.fetch_trade(<trade_id>*)
    *<trade_id> - ID of the trade offer where one item is transferred to us.

Expected Results

Success trade processing.

Actual Results

File "*/site-packages/steam/client.py", line 576, in fetch_trade
  return await self._connection.fetch_trade(id, language)
               │    │           │           │   └ None
               │    │           │           └ X
               │    │           └ <function ConnectionState.fetch_trade at 0x7fe0344d6320>
               │    └ <steam.state.ConnectionState object at 0x7fe03459b180>
               └ <steam.client.Client object at 0x7fe03459c7f0>
File "*/site-packages/steam/state.py", line 327, in fetch_trade
  trades = await self._process_trades((data["offer"],), (data.get("descriptions", ()),))
                 │    │                │                 │    └ <method 'get' of 'dict' objects>
                 │    │                │                 └ {'offer': {'tradeofferid': 'X', 'accountid_other': X, 'message': '', 'expiration_time': X, 'trade_...
                 │    │                └ {'offer': {'tradeofferid': 'X', 'accountid_other': X, 'message': '', 'expiration_time': X, 'trade_...
                 │    └ <function ConnectionState._process_trades at 0x7fe0344d6440>
                 └ <steam.state.ConnectionState object at 0x7fe03459b180>
File "*/site-packages/steam/state.py", line 362, in _process_trades
  if item["classid"] == asset["classid"] and item["instanceid"] == asset["instanceid"]:
     │                  │                    │                     └ {'appid': 730, 'contextid': '2', 'assetid': 'X', 'classid': 'X', 'instanceid': 'X', 'amount': '1', ...
     │                  │                    └ [{'appid': 730, 'classid': 'X', 'instanceid': 'X', 'currency': False, 'background_color': '', 'icon_url': '-9...
     │                  └ {'appid': 730, 'contextid': '2', 'assetid': 'X', 'classid': 'X', 'instanceid': 'X', 'amount': '1', ...
     └ [{'appid': 730, 'classid': 'X', 'instanceid': 'X', 'currency': False, 'background_color': '', 'icon_url': '-9...

TypeError: list indices must be integers or slices, not str

System Information

  • python version: 3.10.7
  • steam.py version: 0.9.0
  • aiohttp version: 3.7.4.post0
  • betterproto version: 2.0.0b4
  • operating system info: Linux-5.15.0-46-generic-x86_64-with-glibc2.31

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

profile info edit dont work

Summary

profile info edit method dont work

Reproduction Steps

import asyncio
import steam
import aiohttp
from faker import Faker
from io import BytesIO

class MyClient(steam.Client):
    async def on_ready(self) -> None:
        print("user", self.user)
        await self.user.edit(name="my_name")
    

client = MyClient()
client.run("login", "password")

Expected Results

Steam profile name will change to "my_name"

Actual Results

The name hasn't changed. There were no errors in the console.

System Information

python version: 3.10.7
steam.py version: 0.9.6
aiohttp version: 3.8.3
betterproto version: 2.0.0b4
operating system info: Windows-10-10.0.19044-SP0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

AssertionError at on_user_invite_accept

Hello,
I'm getting following error when using on_user_invite_accept(invite).
I guess this error is occurring because invite.invitee can be SteamID and more likely a User object.

Traceback (most recent call last):
File "C:\bot-env\lib\site-packages\steam\utils.py", line 838, in maybe_coroutine
return await value
File "C:/bot-env\lib\site-packages\steam\state.py", line 1187, in process_friends
assert not isinstance(invite.invitee, SteamID)
AssertionError

Add an option to ignore SSL verification for the steam.Client class

Summary

Add an option to ignore SSL verification for the steam.Client class

What is the feature request for?

The core library

The Problem

In certain regions like China, accessing Steam can be challenging and often requires the use of a reverse proxy. This often leads to SSL verification failures. Having an option to ignore SSL verification would make the library more usable in these cases.

The Ideal Solution

The ideal solution would be to add a parameter to the steam.Client class that allows users to ignore SSL verification. This would make it easier for users in regions where access to Steam is restricted or difficult.

The Current Solution

This is a requests auth example, but do not work on aiohttp.

class accelerator:
    def __call__(self, r):
        domain_list = [
            "steamcommunity-a.akamaihd.net",
        ]
        domain = re.search(r"(https?://)([^/\s]+)", r.url).group(2)
        r.headers["Host"] = domain
        r.url = re.sub(r"(https?://)([^/\s]+)(.*)", r"\1" + random.choice(domain_list) + r"\3", r.url)
        return r

run example casket.py hang

Summary

run example casket.py hang

Reproduction Steps

example code

from __future__ import annotations

import steam
import json
from steam.ext import commands, csgo

f = open("example.maFile", "r")
content = f.read()
f.close()

print(content)

identity_secret = json.loads(content).get("identity_secret")
shared_secret = json.loads(content).get("shared_secret")
print(identity_secret)
print(shared_secret)


class BackpackItemConverter(commands.Converter[csgo.BackpackItem[
    csgo.ClientUser]]):  # custom converter to get `BackpackItem`s from the bot's inventory
    async def convert(self, ctx: commands.Context[MyBot], argument: str) -> csgo.BackpackItem[csgo.ClientUser]:
        backpack = await ctx.bot.user.inventory(steam.CSGO)
        try:
            asset_id = int(argument)
        except ValueError:
            item = steam.utils.get(backpack, name=argument)
        else:
            item = steam.utils.get(backpack, id=asset_id)

        if item is None:
            raise commands.BadArgument(f"{argument!r} is not present in the backpack")
        return item


class MyBot(csgo.Bot):
    @commands.group
    async def casket(self, ctx: commands.Context, *, casket: csgo.BackpackItem):
        """Get info about a casket/storage container."""
        if not isinstance(casket, csgo.Casket):
            return await ctx.send(f"{casket.name!r} is not a casket.")

        contents = await casket.contents()
        await ctx.send(
            f"""Info on {casket.custom_name!r}:
            - contains {casket.contained_item_count} items
            - first item in it is {contents[0].id}
            """
        )

    @casket.command
    async def add(self, ctx: commands.Context, item: csgo.BackpackItem, casket: csgo.BackpackItem):
        """Add an item to a casket."""
        if not isinstance(casket, csgo.Casket):
            return await ctx.send(f"{casket.name} is not a casket.")

        await casket.add(item)
        await ctx.send("👌")

    @casket.command
    async def remove(self, ctx: commands.Context, item_id: int, casket: csgo.BackpackItem):
        """Remove an item from a casket."""
        if not isinstance(casket, csgo.Casket):
            return await ctx.send(f"{casket.name} is not a casket.")

        contents = await casket.contents()
        casket_item = steam.utils.get(contents, asset_id=item_id)
        if casket_item is None:
            return await ctx.send(f"{item_id} is not in the casket.")
        await casket.remove(casket_item)
        await ctx.send("👌")


bot = MyBot(command_prefix="!")
bot.run(username="xxxx", password="xxxx", identity_secret=identity_secret, shared_secret=shared_secret)

Expected Results

output something

Actual Results

no output

System Information

OS: debian 12
python version: 3.12
steam.py: lastest main version(commit id:4c3644d0f63d832453d4b2d710fbc049c020e41b)

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Implement Game Coordinator Clients

The Problem

Currently there is no way to interact with the Game Coordinator (GC).

The Ideal Solution

At the moment there are extensions being worked on to allow for this these include:

These will allow for communication between the GC and the client, they will likely be bundled with the main repo at some point, however before they can be released I will need to improve https://github.com/Gobot1234/vdf3 and the APIs will need to be more refined.

The implementations for these modules will be loosely based off of:

Summary

Implement GC connection. This should hopefully be done in a few weeks at least for the tf2 extension, the others some time after that.

New release

Summary

New release with fixing some bugs

What is the feature request for?

The core library

The Problem

gateway.send_gc_message and client._handle_ready raises AttributeError when call client.user.inventrory(CSGO)

The Ideal Solution

Actually, problem in typos and fxed already, but fix not in release. So creating new release will be good option

The Current Solution

No response

HTTPClient.redeem_package calls wrong endpoint

Summary

Call StatefulPackage.redeem() and witness the error

Reproduction Steps

Same as above

Expected Results

No error

Actual Results

Error occurred (don't have it to hand, I'm on my phone)

To fix this I think it just needs to call checkout.steampowered or something as it's host

System Information

steamio: 1.0.0a

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

Add 'active_only' parameter to the 'trade_history' method

Summary

Add 'active_only' parameter to the 'trade_history' method

What is the feature request for?

The core library

The Problem

The lib cannot fetch active trade offer history only.

The Ideal Solution

I would like to request the addition of an 'active_only' parameter to the 'trade_history' method. This parameter would enable us to retrieve only active trade offers. Currently, the method returns all trade history, including both active and inactive offers. By adding this parameter, it would provide greater flexibility and efficiency when working with trade data.

Thank you for considering this enhancement.

The Current Solution

No response

Implement anonymous login

Summary

Anonymous login for the steam client commands that support it

What is the feature request for?

The core library

The Problem

Some commands like fetch_product_info don't really require login. As it is currently in this library, those functions don't work if you don't login

The Ideal Solution

Either make the methods work without login or add an anonymous_login() function like in the other steam libs

The Current Solution

No response

Bot reacts to his own messages, problematic with "-" as prefix and the help command

Summary

The bot reacts to his own messages, when sending the help command for example it throws the CommandNotFound error because it cant find the command "-=" as it recognized the "-" as prefix

Reproduction Steps

Add "-" as prefix

Expected Results

It should ignore it

Actual Results

steam.ext.commands.errors.CommandNotFound: the command -= was not found

Checklist

  • I have searched the open issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password from display, if visible.

System Information

Not needed

Confirmations cannot be confirmed

Summary

Mobile Confirmations Broken due to Steam API structural change that adds more detail to the MobileConf struct.

Reproduction Steps

Here is an example "bot" using the library that demonstrates the failure.

More information is available at my gist about the issue.

🤖steampytest.py source code
#!/usr/bin/python3
# 
# warning: MUST be python 3.10 or greater. 
# the environment also is not set up correctly by default. 
# please see `bob_builder.sh` for that

import steam
import os 
import asyncio
from dotenv import load_dotenv

# load environment vars from .env file
load_dotenv()

# allow override via local env vars
# TODO: implement

mainusername = os.getenv('USERNAME')
mainpassword = os.getenv('PASSWORD')
mainshared_secret = os.getenv('SHARED_SECRET')
mainidentity_secret = os.getenv('IDENTITY_SECRET')

class MainBot(steam.Client):
    async def on_ready(self) -> None:
        print("Logged into main bot: ", self.user)

    async def on_trade_receive(self, trade: steam.TradeOffer) -> None:


        print(f"Accepting trade #{trade.id} from {str(trade.partner.id64)}")
        await trade.accept() 
async def main():
    global Main
    Main = MainBot()
    await Main.login(mainusername, mainpassword, shared_secret=mainshared_secret,
             identity_secret=mainidentity_secret)


if name == "main":
    try:
        asyncio.run(main())
    except:
        traceback.print_exc()

🟡 Make sure to install dependencies and use python3.10 or greater. See autoinstaller bash script in gist.

Reproduce Problem

  1. Start bot with python3 steampytest.py &2>1

or just open another Terminal and you don't need to run this task in the background

  1. Using a different account send a trade to bot that will require a mobile confirmation on bot's end.

bot will not mobile confirm, and the script will eventually time out.

Expected Results

Trade to be mobile confirmed successfully from bot and trade to go through.

Actual Results

Script times out while the trade expires.

System Information

python version: 3.11.4
steam.py version: 1.0.0a2772+g9e897ea
aiohttp version: 3.8.4
betterproto version: 2.0.0b6
operating system info: macOS-10.15.7-x86_64-i386-64bit

Other Tested Environments

  • Ubuntu-22.04 WSL2 on Win10
  • Debian 11.6
  • Windows 10

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Steam doesn't log in

Summary

Steam doesn't log in.

Reproduction Steps

  1. Use exaple code with debug log level:
logging.basicConfig(level=logging.DEBUG)

cclass MyClient(steam.Client):
    async def on_ready(self):
        print("------------")
        print("Logged in as")
        print("Username:", self.user)
        print("ID:", self.user.id64)
        print("Friends:", len(await self.user.friends()))
        print("------------")

client = MyClient()
client.run("username", "password")
  1. Run it.
  2. Approve connection in steam guard.

Expected Results

Console output:

Logged in as
Username: ...
ID: ...
Friends: ...

Actual Results

/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/bin/python /home/user/PycharmProjects/unicorn/csgo/app/main.py
DEBUG:asyncio:Using selector: EpollSelector
INFO:steam.client:Trades will not be automatically accepted when sent as no identity_secret was passed.
DEBUG:steam.gateway:Attempting to fetch servers from the WebAPI
DEBUG:asyncio:Get address info api.steampowered.com:443, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32>
DEBUG:asyncio:Getting address info api.steampowered.com:443, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32> took 12.372ms: [(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('23.53.54.51', 443))]
DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb0e0da10> starts SSL handshake
DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb0e0da10>: SSL handshake took 25.3 ms
DEBUG:asyncio:<asyncio.TransportSocket fd=7, family=2, type=1, proto=6, laddr=('192.168.0.101', 54146), raddr=('23.53.54.51', 443)> connected to 23.53.54.51:443: (<asyncio.sslproto._SSLProtocolTransport object at 0x7f2cb0e7a330>, <aiohttp.client_proto.ResponseHandler object at 0x7f2cb0e7d240>)
DEBUG:steam.http:GET https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v1?cellid=0&cmtype=websockets with PAYLOAD: None has returned 200
DEBUG:steam.http:GET https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v1?cellid=0&cmtype=websockets has received {'response': {'serverlist': [{'endpoint': 'ext1-sto2.steamserver.net:27022', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27022', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 134.26966094970703}, {'endpoint': 'ext1-sto2.steamserver.net:443', 'legacy_endpoint': 'ext1-sto2.steamserver.net:443', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 62, 'wtd_load': 137.72351169586182}, {'endpoint': 'ext1-sto2.steamserver.net:27023', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27023', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 139.00642895698547}, {'endpoint': 'ext1-sto2.steamserver.net:27032', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27032', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 140.31781768798828}, {'endpoint': 'ext1-sto2.steamserver.net:27019', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27019', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 141.0879533290863}, {'endpoint': 'ext1-sto2.steamserver.net:27020', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27020', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 62, 'wtd_load': 141.1439726948738}, {'endpoint': 'ext1-sto2.steamserver.net:27034', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27034', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 141.44487524032593}, {'endpoint': 'ext1-sto2.steamserver.net:27024', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27024', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 142.51604476571083}, {'endpoint': 'ext1-sto2.steamserver.net:27030', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27030', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 143.24982397258282}, {'endpoint': 'ext1-sto2.steamserver.net:27033', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27033', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 143.48525884747505}, {'endpoint': 'ext1-sto2.steamserver.net:27029', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27029', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 143.59985941648483}, {'endpoint': 'ext1-sto2.steamserver.net:27037', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27037', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 64, 'wtd_load': 144.24824360013008}, {'endpoint': 'ext2-sto2.steamserver.net:27025', 'legacy_endpoint': 'ext2-sto2.steamserver.net:27025', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 71, 'wtd_load': 144.26944541931152}, {'endpoint': 'ext1-sto2.steamserver.net:27031', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27031', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 144.49400901794434}, {'endpoint': 'ext1-fra2.steamserver.net:27030', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27030', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 144.64252042770386}, {'endpoint': 'ext2-fra1.steamserver.net:27023', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27023', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 69, 'wtd_load': 144.73354196548462}, {'endpoint': 'ext2-fra1.steamserver.net:27035', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27035', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 144.91782426834106}, {'endpoint': 'ext2-fra1.steamserver.net:27029', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27029', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 145.08085823059082}, {'endpoint': 'ext2-fra1.steamserver.net:27037', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27037', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 145.08273363113403}, {'endpoint': 'ext1-sto2.steamserver.net:27028', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27028', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 145.2362823486328}, {'endpoint': 'ext2-sto2.steamserver.net:27036', 'legacy_endpoint': 'ext2-sto2.steamserver.net:27036', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 72, 'wtd_load': 145.41001176834106}, {'endpoint': 'ext2-sto2.steamserver.net:27029', 'legacy_endpoint': 'ext2-sto2.steamserver.net:27029', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 71, 'wtd_load': 145.5961241722107}, {'endpoint': 'ext1-fra2.steamserver.net:27022', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27022', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 145.60020112991333}, {'endpoint': 'ext1-sto2.steamserver.net:27025', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27025', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 145.70243310928345}, {'endpoint': 'ext1-sto2.steamserver.net:27021', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27021', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 145.74440574645996}, {'endpoint': 'ext1-fra2.steamserver.net:27023', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27023', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 145.83722829818726}, {'endpoint': 'ext1-sto2.steamserver.net:27036', 'legacy_endpoint': 'ext1-sto2.steamserver.net:27036', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 63, 'wtd_load': 146.2635977268219}, {'endpoint': 'ext1-sto1.steamserver.net:27030', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27030', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 146.4728388786316}, {'endpoint': 'ext2-fra1.steamserver.net:27028', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27028', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 146.5133934020996}, {'endpoint': 'ext1-fra2.steamserver.net:27036', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27036', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 146.6077172756195}, {'endpoint': 'ext1-fra2.steamserver.net:27020', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27020', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 69, 'wtd_load': 147.27661442756653}, {'endpoint': 'ext2-fra1.steamserver.net:27024', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27024', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 147.62907004356384}, {'endpoint': 'ext2-fra1.steamserver.net:27033', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27033', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 69, 'wtd_load': 147.69497275352478}, {'endpoint': 'ext2-fra1.steamserver.net:27020', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27020', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 147.7686891555786}, {'endpoint': 'ext2-fra1.steamserver.net:27021', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27021', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 69, 'wtd_load': 147.85056269168854}, {'endpoint': 'ext2-fra1.steamserver.net:27030', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27030', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 69, 'wtd_load': 147.89806413650513}, {'endpoint': 'ext2-fra1.steamserver.net:27019', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27019', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 148.33391439914703}, {'endpoint': 'ext1-fra2.steamserver.net:27021', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27021', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 148.33822786808014}, {'endpoint': 'ext2-fra1.steamserver.net:27038', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27038', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 148.39495587348938}, {'endpoint': 'ext1-sto1.steamserver.net:27032', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27032', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 148.60772228240967}, {'endpoint': 'ext1-fra2.steamserver.net:27034', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27034', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 148.79474318027496}, {'endpoint': 'ext2-fra1.steamserver.net:27036', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27036', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 149.08016920089722}, {'endpoint': 'ext2-fra1.steamserver.net:27022', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27022', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 149.2674444913864}, {'endpoint': 'ext1-fra2.steamserver.net:27025', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27025', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 149.308067381382}, {'endpoint': 'ext1-fra1.steamserver.net:27020', 'legacy_endpoint': 'ext1-fra1.steamserver.net:27020', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 76, 'wtd_load': 149.89894247055054}, {'endpoint': 'ext2-fra1.steamserver.net:27034', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27034', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 69, 'wtd_load': 150.12239706516266}, {'endpoint': 'ext1-sto1.steamserver.net:27023', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27023', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 150.30171275138855}, {'endpoint': 'ext1-fra2.steamserver.net:27033', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27033', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 150.39922136068344}, {'endpoint': 'ext2-fra1.steamserver.net:27032', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27032', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 150.70804423093796}, {'endpoint': 'ext1-fra2.steamserver.net:27019', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27019', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 150.84074020385742}, {'endpoint': 'ext1-sto1.steamserver.net:443', 'legacy_endpoint': 'ext1-sto1.steamserver.net:443', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 151.19075846672058}, {'endpoint': 'ext1-fra2.steamserver.net:27031', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27031', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 72, 'wtd_load': 151.36045920848846}, {'endpoint': 'ext1-fra2.steamserver.net:27035', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27035', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 151.57465708255768}, {'endpoint': 'ext2-fra1.steamserver.net:27031', 'legacy_endpoint': 'ext2-fra1.steamserver.net:27031', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 69, 'wtd_load': 151.69380640983582}, {'endpoint': 'ext2-sto2.steamserver.net:443', 'legacy_endpoint': 'ext2-sto2.steamserver.net:443', 'type': 'websockets', 'dc': 'sto2', 'realm': 'steamglobal', 'load': 71, 'wtd_load': 152.36368227005005}, {'endpoint': 'ext1-sto1.steamserver.net:27020', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27020', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 152.54450368881226}, {'endpoint': 'ext1-fra2.steamserver.net:27032', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27032', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 70, 'wtd_load': 152.74727201461792}, {'endpoint': 'ext1-fra1.steamserver.net:27036', 'legacy_endpoint': 'ext1-fra1.steamserver.net:27036', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 78, 'wtd_load': 152.79718494415283}, {'endpoint': 'ext1-fra1.steamserver.net:27030', 'legacy_endpoint': 'ext1-fra1.steamserver.net:27030', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 78, 'wtd_load': 152.84990787506104}, {'endpoint': 'ext1-sto1.steamserver.net:27037', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27037', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 75, 'wtd_load': 153.11060750484467}, {'endpoint': 'ext1-sto1.steamserver.net:27036', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27036', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 153.3382332921028}, {'endpoint': 'ext1-sto1.steamserver.net:27028', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27028', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 153.42347413301468}, {'endpoint': 'ext1-sto1.steamserver.net:27038', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27038', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 153.77964513003826}, {'endpoint': 'ext1-fra2.steamserver.net:27037', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27037', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 71, 'wtd_load': 154.45194578170776}, {'endpoint': 'ext1-fra2.steamserver.net:27038', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27038', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 71, 'wtd_load': 154.92424893379211}, {'endpoint': 'ext1-fra1.steamserver.net:443', 'legacy_endpoint': 'ext1-fra1.steamserver.net:443', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 78, 'wtd_load': 155.47197651863098}, {'endpoint': 'ext1-fra2.steamserver.net:27028', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27028', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 71, 'wtd_load': 155.857816696167}, {'endpoint': 'ext1-sto1.steamserver.net:27024', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27024', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 156.2637643814087}, {'endpoint': 'ext1-sto1.steamserver.net:27033', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27033', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 156.28237104415894}, {'endpoint': 'ext1-sto1.steamserver.net:27035', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27035', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 156.47681999206543}, {'endpoint': 'ext1-fra2.steamserver.net:27024', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27024', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 71, 'wtd_load': 156.7929630279541}, {'endpoint': 'ext1-sto1.steamserver.net:27022', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27022', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 157.49138379096985}, {'endpoint': 'ext1-fra2.steamserver.net:27029', 'legacy_endpoint': 'ext1-fra2.steamserver.net:27029', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 77, 'wtd_load': 157.51929205656052}, {'endpoint': 'ext1-sto1.steamserver.net:27034', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27034', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 157.66622471809387}, {'endpoint': 'ext2-fra2.steamserver.net:27033', 'legacy_endpoint': 'ext2-fra2.steamserver.net:27033', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 84, 'wtd_load': 157.7560224533081}, {'endpoint': 'ext2-fra2.steamserver.net:27022', 'legacy_endpoint': 'ext2-fra2.steamserver.net:27022', 'type': 'websockets', 'dc': 'fra2', 'realm': 'steamglobal', 'load': 84, 'wtd_load': 159.5231385231018}, {'endpoint': 'ext1-sto1.steamserver.net:27029', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27029', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 159.63073539733887}, {'endpoint': 'ext1-sto1.steamserver.net:27031', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27031', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 159.6390209197998}, {'endpoint': 'ext2-fra1.steamserver.net:443', 'legacy_endpoint': 'ext2-fra1.steamserver.net:443', 'type': 'websockets', 'dc': 'fra1', 'realm': 'steamglobal', 'load': 81, 'wtd_load': 160.00332283973694}, {'endpoint': 'ext1-sto1.steamserver.net:27025', 'legacy_endpoint': 'ext1-sto1.steamserver.net:27025', 'type': 'websockets', 'dc': 'sto1', 'realm': 'steamglobal', 'load': 74, 'wtd_load': 160.8742218017578}], 'success': True, 'message': ''}}
DEBUG:steam.gateway:Received 80 servers from WebAPI
INFO:steam.gateway:Attempting to create a websocket connection to ext1-sto2.steamserver.net:27022 (load: 134.269661)
DEBUG:asyncio:Get address info ext1-sto2.steamserver.net:27022, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32>
DEBUG:asyncio:Getting address info ext1-sto2.steamserver.net:27022, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32> took 26.393ms: [(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('155.133.252.39', 27022))]
DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb0eceb10> starts SSL handshake
DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb0eceb10>: SSL handshake took 66.1 ms
DEBUG:asyncio:<asyncio.TransportSocket fd=8, family=2, type=1, proto=6, laddr=('192.168.0.101', 32942), raddr=('155.133.252.39', 27022)> connected to 155.133.252.39:27022: (<asyncio.sslproto.SSLProtocolTransport object at 0x7f2cb0ed8170>, <aiohttp.client_proto.ResponseHandler object at 0x7f2cb0eb3850>)
DEBUG:steam.gateway:Connected to ext1-sto2.steamserver.net:27022
DEBUG:steam.client:Dispatching event connect
DEBUG:steam.gateway:Socket has received CMsgMulti(size_unzipped=618, message_body=bytearray(b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x1dP\xbbj\x96A\x10\xfd~\x11E+\xb1\xb2\xb7\xb1\x92\x9d\x9d\xdd\xd9\x992\x95\x85\x16A+\xcb\xb9\x92\x80$\x12\xc4.\xe0#\xe4\x19\xd2\xfb\x04bma\xe3\xd3X\xe9\x97\x0c3\xcd\x81s\x99S\x0f\xb6\xedf\xdb\xae\xdfm\xdb\xf6d\xbf\xfb}\xf6\xe3\xf6\xcf\xaf\xbf\xff\xf69|<\xdc#\xdbf\xaf\x8e\xae.O\xf2\xec\xf2\xd4\xf5\xf2\xf4\xfc\xec\xf5\x9b\xbc<\xd6\x8b\x8b/\xe7\x9f\xe3\xfd\x87\xa3\xe3+\xfbt\xeao\xf3\xebK89\xfc<\x1c\x9e^?\xd4l\xd0\x17(+\x1aAC\xeeD\t\x8dA\x05X\x93\xa2\x08\x86\x04\x16\x98x\xef\x02\x80\x10(\x94\x15\xa6D\xc6\xc5Ml\xb6\xb2\x82R\x05\x9a\xd0\x92Y\x03\xb2\x0f\x9a\xa4\xd1\xa7\xa1\xdc\xf1z\x13\x02\x9e\xee\xd8v\xeere\x06\xc6\xa5%e\x94\x16\xb8\xe6\x0cs\x9ckP\x88\xa0j&i!\xadY\x00\x14a\x01f\x1dk\xf4\xd5\xcb\x06\x18\xc4.M\xb8,\x1c\xd1\x8a\xfa\x9e\x8d\x07\n\x97g\x1bi\xa5=&cFgG\xf2\x9e+\x1b)\t\xb9\x93\x0e&O\xf1\xec(Cr\x01\xfb\xd4=\xa4v0/r\xeb\xad\x91Tz\xce9\xdbn\xd9w=-]h\xb0g\x06\xdd\xa16\xa0@,RhH\xcd&\x03\xb2\x13\x07L\x8f\\r\x04\x9d\xbbS\xf9lc\xff\xd5+\x94\xbc\r\x05[\x0e\xc0\x1c$]\xd4w\x13/\x0fLY\xa3\nC\xa6@h\xe4\xc8\x92\x86\x14\xb4t\xf1\xac\tL\xbd\x1a\xa0\xe2Tf\xd1\xd89\xe2\xdaV,TN\x9f\xd4-\x06\xde\xd5\xef#\xa7+\x13\xb7\xbd\x9a@X\x8b\x8c\xa2\x87\xa5ij\xb5l\xea\xad\xec\xf9\xa3\x06\xad5x\xf1\xfd\xe6\xf7\xed\xb7\xc7\xff\x01\xa3\xe6qnj\x02\x00\x00')) from the websocket.
DEBUG:steam.gateway:Socket has received GetPasswordRsaPublicKeyResponse(publickey_mod='ae01271a8a3b61038266e1081a918ae6df6149d3f1b9c2291131d396efdba66b8f809b50fbf1faa16510e88ad1e24656ad25b3991132096185cc30dba7ca881837af9fb6ebd3755dbc35746d993aaee6af3675f116ddbd1bb23f4272fb41b1db39637bdc33bf6231d84398fce04ebfa2d583ed28c36c2e7e06a696cc6a486ce9cd8323949e718c5a209a21bcf6cb20069fece555072f2fa2afa73b1f9f1a72f041f19bde9649f50941e268d15cde70193c82c6fc504837cfda6c04a1b7c1188d6929acfeccfcd3e974ff3d9591dade4ef9036d67a785f51862f013a35a889adcd39ca07d73a8ec562bd438ad1c4e5ca868033bd31776b6d2dbebaeaf0e0ac0fb', publickey_exp='010001', timestamp=241402350000) from the websocket.
DEBUG:steam.state:Got a UM 'Authentication.GetPasswordRSAPublicKey#1' that we don't handle GetPasswordRsaPublicKeyResponse(publickey_mod='ae01271a8a3b61038266e1081a918ae6df6149d3f1b9c2291131d396efdba66b8f809b50fbf1faa16510e88ad1e24656ad25b3991132096185cc30dba7ca881837af9fb6ebd3755dbc35746d993aaee6af3675f116ddbd1bb23f4272fb41b1db39637bdc33bf6231d84398fce04ebfa2d583ed28c36c2e7e06a696cc6a486ce9cd8323949e718c5a209a21bcf6cb20069fece555072f2fa2afa73b1f9f1a72f041f19bde9649f50941e268d15cde70193c82c6fc504837cfda6c04a1b7c1188d6929acfeccfcd3e974ff3d9591dade4ef9036d67a785f51862f013a35a889adcd39ca07d73a8ec562bd438ad1c4e5ca868033bd31776b6d2dbebaeaf0e0ac0fb', publickey_exp='010001', timestamp=241402350000)
DEBUG:steam.gateway:Socket has received CMsgMulti(size_unzipped=622, message_body=bytearray(b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xffmO=o\xd3@\x18vZ\x86"!T\xb1\xb3\x94\x85\x85\x928N\x1a\xc3\x82\xeds\x92+\xdc\x19\xc7\xaecg\x89\x1c\xdbu\xce\x8e\xe3(\x1f8\xbe)#\x12\x0bR7&\x16F\x18Y\x90\x100\xc2\x06C\xff\x02\x08\x16$\x18\x90\x90\xc0g\x90\x10RO\xf7J\xaf\x9e{\xbe.\xda\xe2\xb8\x13\x8e\xdb\x18\x1c\xc7\x9d/\xa6\xbc\xbb/\x9f|x\xfb\xe3WqN\xf1^b\xa3\xeb\xd2j9\x0e\xa6K\xe2\xb9K\x92N\xf7\xe5 $S\x86\x19\xc1bQ\x00\x16q\x95y\xe03\x86;Y\\xa9\x8d+\xaf\x95\x9d\x07/\xbe=\xff\xfc\xf5\xd3#\xf1\xd2\xee\x8d\xe4\xdd\xde\xc1\x85\x9f7
\x1f|\xfc\xf2\xe6\xd9\xc5\xf7\x979\xee\xf1\xad\xbd\xad\x9d\xedb\xce]\xfd~\xfa\xf4\xe4\xe1fs\xbf\xc2\x9fn\x07\xb9D\xfc\xee$\x83Q\x1a\xc2xf[\n\@\xe5p<\xeaxD#\x12\xe9\xf5{\xeaQU%\xb0[\xddg\\xd7\xc6\xb4\xe4&\xa8\x89\x81\x9a\xa3\x08\t\xd8\x84<6Q\xb1;\r\x1cIul\x94\x1e\xd4\xef\xc3\xd2\x03S\xa7\x86#u\xad\x99a\x86\x80$\x14\x9c5\x061\xb9\xa3H\xc4\xb1\xad\x98\xf9\xf5Y\x0f\xde\x1a\xbb9\x0cm#\x0bab\t\x9e\x02\x9b\x10\xa8\xbcf\xea\xb9\x06\x8exLC\xd6m\xe5$\x0e\xf3\xcd\x98\xde\xed\xb7\xabL\x8f\xcc"\x1b@\x01\x03\xaf\xae)L?\xab\xbaF\xa1W\xd6\x03\xaaSHQt(\xf7\xa2\xb6R\xec\x19\x06R\x03\x12\xc6\x13\xc7\xfe\x7f9z\xfdoN\xee\xb7\xc5I\xd0\x95\xfee\xd9\xf2\xb1W\xb7\x88\x9bXQ\xa9Q`\x03\x1bB\x8e\x15\x81\xfdg\x85L\x95\xfe\xf1\x9cd6\x8f\xef\x8d\x92\xc1\xccKj\x13\x8f\x94=\xce\xe0\xca\xe2\xfePG\x83y*Hq\x0bu\xa9\x14\xcc\x8di\xc78\x9e\x0f,J\xf5a\xdai\xf2Z\x98j\xe2\xdd\xa4Sw\xa7\x96\xd8j\xccZ\xadt\xc0\xaf\x87\xc22\xe9\xae\x81|M\xd6\xd0\x02\xc9-\xea\x0fql\xe8v\x9c\x02[\xba-\xeb2\xf7\x1b\x0c.X\x00n\x02\x00\x00')) from the websocket.
DEBUG:steam.gateway:Socket has received BeginAuthSessionViaCredentialsResponse(client_id=4122385265322696075, request_id=bytearray(b':m\xcb"7\x0c\xfc;\xc17\xe8\xec\xc2\xae\x0e\xd2'), interval=5.0, allowed_confirmations=[AllowedConfirmation(confirmation_type=3), AllowedConfirmation(confirmation_type=4)], steamid=76561198000860149, weak_token='eyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogImM6NDEyMjM4NTI2NTMyMjY5NjA3NSIsICJzdWIiOiAiNzY1NjExOTgwMDA4NjAxNDkiLCAiYXVkIjogWyAid2VhayIgXSwgImV4cCI6IDE2OTQyODU2NzgsICJuYmYiOiAwLCAiaWF0IjogMTY5NDI4NDc3OCwgImp0aSI6ICIwRDE4XzIzMjJBRjFCXzIwNDA5IiwgIm9hdCI6IDE2OTQyODQ3NzgsICJydF9leHAiOiAwLCAiaXBfc3ViamVjdCI6ICI5NS4yNC4xNDkuMTEzIiwgImlwX2NvbmZpcm1lciI6ICI5NS4yNC4xNDkuMTEzIiB9._QMZro4Ak8MHzAerSnGSfrZVzzQ_oG62OgoO9PmG3anV985p88oZ2x_4tmHxDB-BOMsMB8zd_NkSQXkoDXAKBQ') from the websocket.
DEBUG:steam.state:Got a UM 'Authentication.BeginAuthSessionViaCredentials#1' that we don't handle BeginAuthSessionViaCredentialsResponse(client_id=4122385265322696075, request_id=bytearray(b':m\xcb"7\x0c\xfc;\xc17\xe8\xec\xc2\xae\x0e\xd2'), interval=5.0, allowed_confirmations=[AllowedConfirmation(confirmation_type=3), AllowedConfirmation(confirmation_type=4)], steamid=76561198000860149, weak_token='eyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogImM6NDEyMjM4NTI2NTMyMjY5NjA3NSIsICJzdWIiOiAiNzY1NjExOTgwMDA4NjAxNDkiLCAiYXVkIjogWyAid2VhayIgXSwgImV4cCI6IDE2OTQyODU2NzgsICJuYmYiOiAwLCAiaWF0IjogMTY5NDI4NDc3OCwgImp0aSI6ICIwRDE4XzIzMjJBRjFCXzIwNDA5IiwgIm9hdCI6IDE2OTQyODQ3NzgsICJydF9leHAiOiAwLCAiaXBfc3ViamVjdCI6ICI5NS4yNC4xNDkuMTEzIiwgImlwX2NvbmZpcm1lciI6ICI5NS4yNC4xNDkuMTEzIiB9._QMZro4Ak8MHzAerSnGSfrZVzzQ_oG62OgoO9PmG3anV985p88oZ2x_4tmHxDB-BOMsMB8zd_NkSQXkoDXAKBQ')
Please enter a Steam guard code
Confirm login this on your device

DEBUG:steam.gateway:Socket has received CMsgMulti(message_body=bytearray(b'T\x00\x00\x00\x93\x00\x00\x80J\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x00\x10\xbe\xa5\xd3\xca\xf9\xff\xff\xff\xff\x01Y\x03\x00\x00\x00\x00\x00\x00\x00b&Authentication.PollAuthSessionStatus#1h\x01\xc0\x01\x01(\x00')) from the websocket.
DEBUG:steam.gateway:Socket has received PollAuthSessionStatusResponse(had_remote_interaction=False) from the websocket.
DEBUG:steam.state:Got a UM 'Authentication.PollAuthSessionStatus#1' that we don't handle PollAuthSessionStatusResponse(had_remote_interaction=False)
DEBUG:steam.gateway:Socket has received CMsgMulti(size_unzipped=1124, message_body=bytearray(b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa5\x92\xbb\x8e\xdbF\x14\x86)d\x9b\x00)R\xa7L\x80 M\x16\x14/\xdaUI\xf1"\rW3\xdc\x11\xc5\x9b\x1a\x87\xa4$j(\x0e\xa5\x15%\xf1R\xa5M\x9dg\xf0k\x18\xae\xdd\xfaA\\xbb\xb2g\xb8[\x19vc\x13$0\x1c\xfc\xf8\xffs\xcew\xfe\xb9\x11\x84\xff\x05\xe1_[\x10\x84\x9f\xd9\xd7\xbf\xbf\xbey\xfd\xfe\xdd\xc7O\xec\x19D7\xfd\x8d $\x7fj\x97\xf3nS\x9eI\x1a\x9f\xc9\xa1\xbc}<\x14\x05\xbfr7U\xc5\xfe\xdds|\xbeT\x7f\x0cw\x83\xb7\x83\xc1o\x1f~\xda\xb4\x1aY\xcf\x8a\x1a\xe4\x87\x0c\xec\x8f\xa1\xaf\x83\n\xe8\xf6.\x99\xa6\xc4!\x1aY\x04\x0b\xd3\x13M\x02f\xe2-\xd7\xc6!\xeazm\x89\xc4U\x9d\x01\xa93P\xa2aD\xc0\x08\xe8@F\xb9\'\xc1\xa5\xa9:\x86VC#\x93\xa0a\x8a\x8e\x0bz\xcfu\x80\x99\xe7$a\xfey2-\x8a\xa4\xc4d\xae\xb3|\xc9\'\xa0\xf7\xb1\x8b\x84\xfar\x7f\xa6\x8b"\xa5\x85\xb4rA\x16\xba,\x83\xfaJ\xaa\xb3\x0c\xc3\x94\xe1\x12t0\x87\xadcd\xdc\xf7\x12\xd1\x88\xf9j\r\xca\xb3!\xca\xb1\x88\xbaL\xe4\xbeq\x89\xbcV\xb8\x8cTd\x00\x05\x19\xa9\x82t\xeeu\x14c\x97y\xe9\xa0^\x18\xa6\x12v\xdc\xcf\x9e,rKg\xe7\x1a\x8a\xdeK\r\xe3\xdd\xfa9Sr\x96\x98\xe5a\xd910\xcf\xacW!\xe83\xfb\x9cp\xb2Me\x9f\xc4\xd4\xcf{\xbd\x0eT\xe4*-\xd2\x95\x06\x19\xfb\x0b\\x9a\xddsOE\x1dJ\xe8\x9a\xd0\xd51\xa5\xc3"%}\r_\xd1N\xc6\xb7\xe0(%\x89S\x03\xe9Qm\xd4kFG\xda\x9d\xa5\x89\xd5\x96\xc6\x9d\x85g\r\xc1\x93\xbf\x01\xba\xcftH\xafO\xf6\xab\x8b\xe9\x8e\x9eN\x10\x8a'\xc5\x83\xb6?\x9a\xb7A\xbd:\x18I|jG\xf6\xf4\xce\xbd\xb8\xbbY\xb1\x9b\xe0\xdf\xff\xbb\xe1\x14\xbf\x8f8\x18A\x137\x8eu\xdf\xc2\x0e\xb4\xd8\x8b\x1a\\xb0\xb3\x81,\xd4\xf6\x84\xbbu\x00\xf8T\x08\xea"F\xc2l\x9ceVCCSP\xce\xe8\x18\xfb\x9ev\x14\xfa{N%\x9b\x17I\xcdq\x15\xa8"\xe8\xe9\xaf\x0b\xb6E_\xd2\xe6\x93\xefPg*\x8e\xd1g\xfc m\xa02\xc2\x1d\xcc9mS\r\xc5\x95\x8eE\xef\x85\xce7i\xb7kk\\lf\x1a\xef\xada\xb5\xf0\xfe\x99G\xa6p\xfa\xe9\xd4oy?\xb0\xdf\xac\xa2\x0ee4\x8c\xe8\xb1\x88d\xcc\xf5\xc4Yz\x17\x98c\xb6\x05X\x9d\xe7f\x03\x9fguL\xadq\x9eH*\x8dC\xfb\xfc\xb2M_\xd3f[|\x1b\x84ru\n\x15Y\xdfF\xfb\xf1\xd3.Q\xe7\x06\xf5\x16m\xee_\xe5f\xd8Q\xednv\x9c\x9f\xbcQQ\xbb\xd3R\x1eW\xf6\x03V\x9a\xear\xbf{\xbcV\xcaI\x1cQ@\x1e\xe2RI\xcc\xd6\x9b\xbb\xd2\xa6|\xd8\x06\x0b:\xa9\xff\x1aH\xbf\xac\xe3\xf2\xbcy\xb5&WR\x1e>\x03\xa1V\x97Xd\x04\x00\x00')) from the websocket. DEBUG:steam.gateway:Socket has received PollAuthSessionStatusResponse(refresh_token='eyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogInN0ZWFtIiwgInN1YiI6ICI3NjU2MTE5ODAwMDg2MDE0OSIsICJhdWQiOiBbICJjbGllbnQiLCAid2ViIiwgInJlbmV3IiwgImRlcml2ZSIgXSwgImV4cCI6IDE3MTIzMjMyODgsICJuYmYiOiAxNjg1NjQ0Nzg0LCAiaWF0IjogMTY5NDI4NDc4NCwgImp0aSI6ICIwRDE4XzIzMjJBRjFCXzIwM0U3IiwgIm9hdCI6IDE2OTQyODQ3ODQsICJwZXIiOiAxLCAiaXBfc3ViamVjdCI6ICI5NS4yNC4xNDkuMTEzIiwgImlwX2NvbmZpcm1lciI6ICI5NS4yNC4xNDkuMTEzIiB9.Ip2bbOwI2P5x5vgm6A7FA0sfmazFQHxiQB-IN8gCMmvqJ_uES6qrMM0r4UMJV6LyWwZoDbary6JG7SuShHlhBQ', access_token='eyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogInI6MEQxOF8yMzIyQUYxQl8yMDNFNyIsICJzdWIiOiAiNzY1NjExOTgwMDA4NjAxNDkiLCAiYXVkIjogWyAiY2xpZW50IiwgIndlYiIgXSwgImV4cCI6IDE2OTQzNzE4ODIsICJuYmYiOiAxNjg1NjQ0Nzg0LCAiaWF0IjogMTY5NDI4NDc4NCwgImp0aSI6ICIwRDI5XzIzMjJBRjE5X0ZCQ0UzIiwgIm9hdCI6IDE2OTQyODQ3ODQsICJydF9leHAiOiAxNzEyMzIzMjg4LCAicGVyIjogMCwgImlwX3N1YmplY3QiOiAiOTUuMjQuMTQ5LjExMyIsICJpcF9jb25maXJtZXIiOiAiOTUuMjQuMTQ5LjExMyIgfQ.WX3srX43CfYk9qhb5LDmURyjVv3x1zmA7HpLrU6lwSGn39sJKQ4xsu8hPvs4r06mIiKan4bEyULS2enKfWRmBw', had_remote_interaction=True, account_name='dante_divino') from the websocket. DEBUG:steam.state:Got a UM 'Authentication.PollAuthSessionStatus#1' that we don't handle PollAuthSessionStatusResponse(refresh_token='eyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogInN0ZWFtIiwgInN1YiI6ICI3NjU2MTE5ODAwMDg2MDE0OSIsICJhdWQiOiBbICJjbGllbnQiLCAid2ViIiwgInJlbmV3IiwgImRlcml2ZSIgXSwgImV4cCI6IDE3MTIzMjMyODgsICJuYmYiOiAxNjg1NjQ0Nzg0LCAiaWF0IjogMTY5NDI4NDc4NCwgImp0aSI6ICIwRDE4XzIzMjJBRjFCXzIwM0U3IiwgIm9hdCI6IDE2OTQyODQ3ODQsICJwZXIiOiAxLCAiaXBfc3ViamVjdCI6ICI5NS4yNC4xNDkuMTEzIiwgImlwX2NvbmZpcm1lciI6ICI5NS4yNC4xNDkuMTEzIiB9.Ip2bbOwI2P5x5vgm6A7FA0sfmazFQHxiQB-IN8gCMmvqJ_uES6qrMM0r4UMJV6LyWwZoDbary6JG7SuShHlhBQ', access_token='eyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0.eyAiaXNzIjogInI6MEQxOF8yMzIyQUYxQl8yMDNFNyIsICJzdWIiOiAiNzY1NjExOTgwMDA4NjAxNDkiLCAiYXVkIjogWyAiY2xpZW50IiwgIndlYiIgXSwgImV4cCI6IDE2OTQzNzE4ODIsICJuYmYiOiAxNjg1NjQ0Nzg0LCAiaWF0IjogMTY5NDI4NDc4NCwgImp0aSI6ICIwRDI5XzIzMjJBRjE5X0ZCQ0UzIiwgIm9hdCI6IDE2OTQyODQ3ODQsICJydF9leHAiOiAxNzEyMzIzMjg4LCAicGVyIjogMCwgImlwX3N1YmplY3QiOiAiOTUuMjQuMTQ5LjExMyIsICJpcF9jb25maXJtZXIiOiAiOTUuMjQuMTQ5LjExMyIgfQ.WX3srX43CfYk9qhb5LDmURyjVv3x1zmA7HpLrU6lwSGn39sJKQ4xsu8hPvs4r06mIiKan4bEyULS2enKfWRmBw', had_remote_interaction=True, account_name='dante_divino') INFO:steam.gateway:Attempting to create a websocket connection to ext1-sto2.steamserver.net:443 (load: 137.723512) DEBUG:asyncio:Get address info ext1-sto2.steamserver.net:443, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32> DEBUG:asyncio:Getting address info ext1-sto2.steamserver.net:443, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32> took 54.272ms: [(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('155.133.252.39', 443))] DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb0e0f6d0> starts SSL handshake DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb0e0f6d0>: SSL handshake took 168.6 ms DEBUG:asyncio:<asyncio.TransportSocket fd=9, family=2, type=1, proto=6, laddr=('192.168.0.101', 35336), raddr=('155.133.252.39', 443)> connected to 155.133.252.39:443: (<asyncio.sslproto._SSLProtocolTransport object at 0x7f2cb01a97f0>, <aiohttp.client_proto.ResponseHandler object at 0x7f2cabfb3540>) DEBUG:steam.gateway:Connected to ext1-sto2.steamserver.net:443 DEBUG:steam.client:Dispatching event connect DEBUG:steam.gateway:Socket has received CMsgMulti(size_unzipped=1388, message_body=bytearray(b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xadToH\x13a\x1c~\xde\x9b\xa3\xdb2\xb9\xa6\x87\x0bjL\xd1X\x96\xba\xd2bL\x92\x90\xa8I\t\xa2\x0cbd\xa9\xf3/K-\x15\x13A\x98+\xc9\xc2\xd8\x87\xa5\xa8!%\x82\xa1\x94"\xc8\xa2\x82\x8cp\xa6\x1f\xecK\xa4\x11\x95Q\x81E\xc1TPTD{\xef\x85\x85g8\xfb\xd0\xcb\xddsw\x0f\xbf\xe7\x9e\xdf\xef\xf7\xfe\xa9\x01P/\xc2\x19A\x9f\xaa\x05\x87\x83#\x10\x88\xe0uO\xcd\xaf\xac\xd3A\xd4\x1c\xafP\x87\xf0\x07\x04P\x8cc\x18\xcdP\x14$&\x9e\xe1Q\x86)\x0c\xaf2\xdc\xcdPhf\x18\xc60Q \xf4?E\xd4\xc2\xfc\xcf\xce\x92\xe2\x7f8K\xf9\x16\t\x10\xcc\xb7\x00\xf8\xb9\xadk\xe6\x89\xa0\xd2\xaa\xf4s}_\x96\x94\xf1s\xcfV\x0b\x8c\x8d\rQ\xa6\x1d\xb6\xf0\x8c\xb3\x96R\x9b=\xab*=)1\xe3p\xf6\x91j\x8b\xcd\x91K\x9b\xb4\xbe\xa3\x12u\xca]WZ\xb4\x17]\x84\xb3fw\x91@#\xfb\x08\x97e}A0F\xf0\x8et,\xf5\xf6\xfb\x9a\x87\x8d\x9f\tf\xc9\xcc\x8d\xb1\xdb\x03\xbe\xe6\xc1\xe4\x04\xd0\xa1\xd8:\x1b\xb5\xf2d^yu\xa1\x86\xfe\xc9\xd4\xd8\x10\xd5DH\n\x15d\x8aA\x14bY^\xe9\xa5\x8a\xa2\x02Iw\xa2X\xfaH\xb0W\x94\tD\x0b=1\x10\x1d\x80\xf5\xe5C\x0f\xe0M\x10\x03\x1e\x02\xf6\x10 4H\xda<\xd1\xa4\xf2k\x1e\xbdxa\xdcf\xdf\x07:\xf40\xc0\xe8\xe4M\xce\x904Z\x8b\x85d\xe2\xdc\xf3_C\xca\xdc\x85\xa9G\xe1%\xb8\x8cZ8\t\x9a\xc8\xe2h\xef\xb7\xf6\xd6\xf9\x87I\x9a\xe3|\xc7K\x8d\xe8\xbd7Z \xd3\xe3\x8f\xfc\x8e\xffm\xc8fyow\xcbrO\xe7\xc4\xfb\n*o\x9e\xd9+\xb6\xe6On\x90s&\xaa\xb6f3\xf36\xcf\x03\xd5f\xf5\xc8\xe4\x8f\xe1k\xd3\x9e&\x1f\xd1\xa4\xf0\x10\xe3#\x9fXd\xde4w0\xf1\xcf\xf6\xbb\x7f\x89\x87\xba\xa6\xfa\x9d\x1f\xdd\xcb\x1eb\x04\xa0S\x001\x1c\xa4\xf5\xb1\xf1\xf6\x07\xd6\x86\xf7\x95\xb5\x9f\xd0\xb8\xc0\x15G_\xda\xb6i:\x9d@\x18\x84\x89\xac\x00\xd8\x19\xac\xfdjMDy\x8e\xbd\xce\x95\xd7\x93\x11p\x94\x96\xb2&\xa2F7\x98\xf6T\x1d\xda-g\xd7\n\xcd\xf5\x95\xe4S\xb2\x9c\x8d>=\xe2(w}\xc8\x97\xb3\xae\xf3\xc6\xfda\xb3\x91\xb5r\xf6\xcc\xf7\xd7\x87&\x96R\xddr\xd6\xdf\xb9\xaaN/u\xdf\x97\xb3\xe3\xbe\xca\xb2a\xdd\xc1Y9\x9b4\xfd\xf8Tl\xf8\xf5*9;Plq\xdc\xcc\xa9\x1a\xd9\xc8\xc6\xd0\xea\x8fm\xdf+b\xa6q%A\xe2\xe8Y\x04v.\x11\x86\x1cC\x05\xc3\x10\x01\xd26p\xc6n\xbd\xcf\x04ha\x00\x10\xa6\xd8\xa6i\x18~\x03\xc0\x8e\x060l\x05\x00\x00')) from the websocket.
DEBUG:steam.gateway:Socket has received CMsgClientServersAvailable(server_types_available=[CMsgClientServersAvailableServerTypesAvailable(server=3), CMsgClientServersAvailableServerTypesAvailable(server=41, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=42, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=34, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=21, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=45, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=53, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=59, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=119, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=17, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=16, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=58, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=14, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=47, changed=True), CMsgClientServersAvailableServerTypesAvailable(server=102, changed=True)], server_type_for_auth_services=58) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientServersAvailable(server_types_available=[CMsgClientServersAvailableServerTypesAvailable(server=3), CMsgClientServersAvailableServerTypesAvailable(server=41, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=42, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=34, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=21, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=45, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=53, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=59, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=119, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=17, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=16, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=58, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=14, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=47, changed=True), CMsgClientServersAvailableServerTypesAvailable(server=102, changed=True)], server_type_for_auth_services=58)
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientServersAvailable
DEBUG:steam.gateway:Socket has received CMsgClientServersAvailable(server_types_available=[CMsgClientServersAvailableServerTypesAvailable(server=3), CMsgClientServersAvailableServerTypesAvailable(server=41, changed=True), CMsgClientServersAvailableServerTypesAvailable(server=42, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=34, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=21, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=45, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=53, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=59, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=119, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=17, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=16, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=58, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=14, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=47, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=102, changed=False)], server_type_for_auth_services=58) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientServersAvailable(server_types_available=[CMsgClientServersAvailableServerTypesAvailable(server=3), CMsgClientServersAvailableServerTypesAvailable(server=41, changed=True), CMsgClientServersAvailableServerTypesAvailable(server=42, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=34, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=21, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=45, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=53, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=59, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=119, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=17, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=16, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=58, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=14, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=47, changed=False), CMsgClientServersAvailableServerTypesAvailable(server=102, changed=False)], server_type_for_auth_services=58)
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientServersAvailable
DEBUG:steam.gateway:Socket has received CMsgClientLogonResponse(eresult=1, heartbeat_seconds=9, deprecated_public_ip=1595446641, rtime32_server_time=1694284785, account_flags=540805, cell_id=7, webapi_authenticate_user_nonce='MLHiZcRsI3/M1S2tHZk', cell_id_ping_threshold=2147483647, vanity_url='', public_ip=CMsgIpAddress(v4=1595446641), client_supplied_steamid=76561198000860149, ip_country_code='RU', count_loginfailures_to_migrate=0, count_disconnects_to_migrate=0, client_instance_id=3494285520729078554, force_client_update_check=False, token_id=3774634597714887655) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientLogonResponse(eresult=1, heartbeat_seconds=9, deprecated_public_ip=1595446641, rtime32_server_time=1694284785, account_flags=540805, cell_id=7, webapi_authenticate_user_nonce='MLHiZcRsI3/M1S2tHZk', cell_id_ping_threshold=2147483647, vanity_url='', public_ip=CMsgIpAddress(v4=1595446641), client_supplied_steamid=76561198000860149, ip_country_code='RU', count_loginfailures_to_migrate=0, count_disconnects_to_migrate=0, client_instance_id=3494285520729078554, force_client_update_check=False, token_id=3774634597714887655)
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientLogOnResponse
DEBUG:steam.gateway:Socket has received CMsgClientAccountInfo(persona_name='Dante', ip_country='RU', account_flags=540805, two_factor_state=1) from the websocket.
DEBUG:steam.gateway:Socket has received CMsgClientEmailAddrInfo(email_address='[email protected]', email_is_validated=True, email_validation_changed=False, credential_change_requires_code=True, password_or_secretqa_change_requires_code=True) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientEmailAddrInfo(email_address='[email protected]', email_is_validated=True, email_validation_changed=False, credential_change_requires_code=True, password_or_secretqa_change_requires_code=True)
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientEmailAddrInfo
DEBUG:steam.gateway:Socket has received CMsgClientFriendsList(bincremental=False) from the websocket.
DEBUG:steam.protobufs.msg:Received an unknown EMsg.ClientPlayerNicknameList (bytearray(b'\x14\x00\x00\x00\t\xf5kk\x02\x01\x00\x10\x01\x10\xb6\x8f\xd7\xf2\xfa\xff\xff\xff\xff\x01\x08\x00\x10\x00'))
DEBUG:steam.gateway:Socket has received ProtobufMessage() from the websocket.
DEBUG:steam.gateway:Ignoring event ProtobufMessage()
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: NoMsg.NONE
DEBUG:steam.gateway:Socket has received CMsgClientLicenseList(eresult=1, licenses=[CMsgClientLicenseListLicense(package_id=526846, time_created=1666894174, time_next_process=0, minute_limit=0, minutes_used=0, payment_method=1024, flags=512, purchase_country_code='RU', license_type=1, territory_code=0, change_number=11351614, owner_id=40594421, initial_period=0, initial_time_unit=0, renewal_period=0, renewal_time_unit=0, access_token=3700209234022654838), CMsgClientLicenseListLicense(package_id=303386, time_created=1690738614, time_next_process=0, minute_limit=0, minutes_used=0, payment_method=1024, flags=0, purchase_country_code='RU', license_type=1, territory_code=0, change_number=9795476, owner_id=40594421, initial_period=0, initial_time_unit=0, renewal_period=0, renewal_time_unit=0, access_token=8049398090486337961), CMsgClientLicenseListLicense(package_id=471948, time_created=1691771542, time_next_process=0, minute_limit=0, minutes_used=0, payment_method=2, flags=0, purchase_country_code='US', license_type=1, territory_code=0, change_number=19515800, owner_id=40594421, initial_period=0, initial_time_unit=0, renewal_period=0, renewal_time_unit=0, access_token=14199936453097188164), CMsgClientLicenseListLicense(package_id=0, time_created=1220089645, time_next_process=0, minute_limit=0, minutes_used=0, payment_method=1024, flags=512, purchase_country_code='', license_type=1, territory_code=0, change_number=19320043, owner_id=40594421, initial_period=0, initial_time_unit=0, renewal_period=0, renewal_time_unit=0, access_token=10660652434190618804)]) from the websocket.
DEBUG:steam.protobufs.msg:Received an unknown EMsg.ClientUpdateGuestPassesList (bytearray(b'$\x02\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xef\xf5kk\x02\x01\x00\x10\x01\xb6\xc7U\xae\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'))
DEBUG:steam.gateway:Socket has received <steam.protobufs.msg.Message object at 0x7f2cb0567c50> from the websocket.
DEBUG:steam.gateway:Ignoring event <steam.protobufs.msg.Message object at 0x7f2cb0567c50>
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: NoMsg.NONE
DEBUG:steam.gateway:Socket has received CMsgClientWalletInfoUpdate(has_wallet=False, balance=0, currency=0, balance_delayed=0, balance64=0, balance64_delayed=0, realm=1) from the websocket.
DEBUG:steam.gateway:Socket has received CMsgClientGameConnectTokens(max_tokens_to_keep=10, tokens=[bytearray(b'n]cz\x82a\xa6M\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd'), bytearray(b'v\x1e\xb1B\xba\n\x0c\xa3\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd'), bytearray(b'\xfee:}r\x01\xde4\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd'), bytearray(b'"G\xc4kn\x82\xdcb\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd'), bytearray(b'\x82\0&\x0e\xf0\x17x\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd'), bytearray(b'K\xe8\xce,\xcd\xf8>\x8f\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd'), bytearray(b'\xef\x9d\xfc\nIi\x8f\xa0\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd'), bytearray(b'\xc9\xc5rm\xbf\x1e+\xf0\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd'), bytearray(b'3\xdf\xb7F%\x13\x84s\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd'), bytearray(b'\xafgHk\x89]s\xc4\xf5kk\x02\x01\x00\x10\x01\xf1\xbb\xfcd')]) from the websocket.
DEBUG:steam.gateway:Socket has received CMsgClientIsLimitedAccount(bis_limited_account=False, bis_community_banned=False, bis_locked_account=False, bis_limited_account_allowed_to_invite_friends=True) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientIsLimitedAccount(bis_limited_account=False, bis_community_banned=False, bis_locked_account=False, bis_limited_account_allowed_to_invite_friends=True)
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientIsLimitedAccount
DEBUG:steam.gateway:Socket has received CMsgClientRequestedClientStats(stats_to_send=[CMsgClientRequestedClientStatsStatsToSend(client_stat=0, stat_aggregate_method=0), CMsgClientRequestedClientStatsStatsToSend(client_stat=1, stat_aggregate_method=0), CMsgClientRequestedClientStatsStatsToSend(client_stat=2, stat_aggregate_method=0), CMsgClientRequestedClientStatsStatsToSend(client_stat=3, stat_aggregate_method=0), CMsgClientRequestedClientStatsStatsToSend(client_stat=4, stat_aggregate_method=0)]) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientRequestedClientStats(stats_to_send=[CMsgClientRequestedClientStatsStatsToSend(client_stat=0, stat_aggregate_method=0), CMsgClientRequestedClientStatsStatsToSend(client_stat=1, stat_aggregate_method=0), CMsgClientRequestedClientStatsStatsToSend(client_stat=2, stat_aggregate_method=0), CMsgClientRequestedClientStatsStatsToSend(client_stat=3, stat_aggregate_method=0), CMsgClientRequestedClientStatsStatsToSend(client_stat=4, stat_aggregate_method=0)])
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientRequestedClientStats
DEBUG:steam.gateway:Socket has received CMsgClientPlayingSessionState(playing_blocked=False, playing_app=0) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientPlayingSessionState(playing_blocked=False, playing_app=0)
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientPlayingSessionState
DEBUG:steam.protobufs.msg:Received an unknown EMsg.ClientVACBanStatus (bytearray(b'$\x02\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xef\xf5kk\x02\x01\x00\x10\x01\xb6\xc7U\xae\x00\x00\x00\x00'))
DEBUG:steam.gateway:Socket has received <steam.protobufs.msg.Message object at 0x7f2cb105b1d0> from the websocket.
DEBUG:steam.gateway:Ignoring event <steam.protobufs.msg.Message object at 0x7f2cb105b1d0>
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: NoMsg.NONE
DEBUG:steam.gateway:Socket has received CMsgMulti(message_body=bytearray(b'M\x00\x00\x00\x92\x00\x00\x80E\x00\x00\x00\t\xf5kk\x02\x01\x00\x10\x01\x10\xb6\x8f\xd7\xf2\xfa\xff\xff\xff\xff\x01b/SteamNotificationClient.NotificationsReceived#1')) from the websocket.
DEBUG:steam.protobufs.msg:Received an unknown UM 'SteamNotificationClient.NotificationsReceived#1' (bytearray(b'E\x00\x00\x00\t\xf5kk\x02\x01\x00\x10\x01\x10\xb6\x8f\xd7\xf2\xfa\xff\xff\xff\xff\x01b/SteamNotificationClient.NotificationsReceived#1'))
DEBUG:steam.gateway:Socket has received ProtobufMessage() from the websocket.
DEBUG:steam.gateway:Ignoring event ProtobufMessage()
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: NoMsg.NONE
DEBUG:steam.gateway:Socket has received CMsgMulti(message_body=bytearray(b' \x00\x00\x00\xb1\x15\x00\x80\x14\x00\x00\x00\t\xf5kk\x02\x01\x00\x10\x01\x10\xb6\x8f\xd7\xf2\xfa\xff\xff\xff\xff\x01\x08\x00\x10\x00')) from the websocket.
DEBUG:steam.gateway:Socket has received CMsgClientFriendsGroupsList(bremoval=False, bincremental=False) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientFriendsGroupsList(bremoval=False, bincremental=False)
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self.state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientFriendsGroupsList
INFO:steam.client:Attempting to connect to another CM in 12s
INFO:steam.gateway:Attempting to create a websocket connection to ext1-sto2.steamserver.net:27023 (load: 139.006429)
DEBUG:asyncio:Get address info ext1-sto2.steamserver.net:27023, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32>
DEBUG:asyncio:Getting address info ext1-sto2.steamserver.net:27023, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32> took 5.756ms: [(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('155.133.252.39', 27023))]
DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb045a810> starts SSL handshake
DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb045a810>: SSL handshake took 82.5 ms
DEBUG:asyncio:<asyncio.TransportSocket fd=7, family=2, type=1, proto=6, laddr=('192.168.0.101', 35824), raddr=('155.133.252.39', 27023)> connected to 155.133.252.39:27023: (<asyncio.sslproto.SSLProtocolTransport object at 0x7f2cabfdf2f0>, <aiohttp.client_proto.ResponseHandler object at 0x7f2cb0e7d2b0>)
DEBUG:steam.gateway:Connected to ext1-sto2.steamserver.net:27023
DEBUG:steam.client:Dispatching event connect
DEBUG:steam.gateway:Socket has received CMsgMulti(size_unzipped=613, message_body=bytearray(b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x1dP;j\x95Q\x10\xfe\xaf\xf8@+\xb1\xb2\xb7\xb1\x923g\xce\x993SZ\xa5\xb0\tZY\xce\x93\x04$\x01s\x83\xd8\x05\B\xd6\xa0\xb5K\x10\x17\xe0"\xc4\x85\xf8'0S\xcc\xc0\xf7\xd4\x07\xdbv\xbbm7'\xdb\xb6=\xdd\xf7~\x9e\xff\xfe\xf7\xe3\xef\xa3\x8f\x87\xfbc\xdb\xec\xf5\xdb\xeb\xe3Y^\x1c\xcf]\x8f\xe7\x97\x17oN\xf2x\xaaWW
.?\xc7\xfb\x0foO\xaf\xed\xd3\xb9\xbf\xcb\xaf\xaf\xe0\xec\xf0\xebpxv\xf3P\xb3A
\xa0\xach\x04\r\xb9\x13%4\x06\x15M\x8a"\x18\x12X\xe2\xbd\x0b\x00B\xa0PV\x98\x12\x19\x177\xb1\xd9\xca\nJ\x15hBKf\r\xc8>h\x92F\x9f\x86r\x87\xebM\x08x\xbac\xdb\xb1\xcb\x95\x19\x18\x97\x96\x94QZ\xe0\x9a3\xccq\xaeA!\x82\xaa\x99\xa4\x85\xb4f\x01P\x84\x05\x98u\xac\xd1W/\x1b\x10;5\xe1\xb2pD+\xea\xbb7\x1e(\\\x9em\xa4\x95\xf6\x98\x8c\x19\x9d\x1d\xc9{\xael\xa4$\xe4N:\x98<\xc5\x83\xb1\xa3\x0c\xc9\x05\xecSw\x93\xda\xc1\xbc\xc8\xad\xb7FR\xe99\xe7l\xbbd\xdf\xf9\xb4t\xa1\xc1\xee\x19t\x7f\xb5\x01\x05b\x91BCj6\x19\x90\x9d8z\xe4j \xe8\xdc\x9d\xcag\x1b{V\xafP\xf26\x14l9\x00s\x90tQ\xdfE\xbc<0e\x8d*\x0c\x99\x02\xa1\x91#K\x1aR\xd0\xd2\xc5\xb3&0\xf5j\x80\x8aS\x99Ec\xc7\x88k[\xb1P9}R\xb7\x18xW\xbf\x8f\x9c\xaeL\xdc\xf6j\x02a-2\x8a\x1e\x96\xa6\xa9\xd5\xb2\xa9\xb7\xb2\x17\x8f\x1b\xb4\xd6\xe0\xe5\xcf\xdb?\xdf\xbf=\xf9\x0f\x9f\xfd3\xa4e\x02\x00\x00')) from the websocket.
DEBUG:steam.gateway:Socket has received GetPasswordRsaPublicKeyResponse(publickey_mod='ae01271a8a3b61038266e1081a918ae6df6149d3f1b9c2291131d396efdba66b8f809b50fbf1faa16510e88ad1e24656ad25b3991132096185cc30dba7ca881837af9fb6ebd3755dbc35746d993aaee6af3675f116ddbd1bb23f4272fb41b1db39637bdc33bf6231d84398fce04ebfa2d583ed28c36c2e7e06a696cc6a486ce9cd8323949e718c5a209a21bcf6cb20069fece555072f2fa2afa73b1f9f1a72f041f19bde9649f50941e268d15cde70193c82c6fc504837cfda6c04a1b7c1188d6929acfeccfcd3e974ff3d9591dade4ef9036d67a785f51862f013a35a889adcd39ca07d73a8ec562bd438ad1c4e5ca868033bd31776b6d2dbebaeaf0e0ac0fb', publickey_exp='010001', timestamp=241402350000) from the websocket.
DEBUG:steam.state:Got a UM 'Authentication.GetPasswordRSAPublicKey#1' that we don't handle GetPasswordRsaPublicKeyResponse(publickey_mod='ae01271a8a3b61038266e1081a918ae6df6149d3f1b9c2291131d396efdba66b8f809b50fbf1faa16510e88ad1e24656ad25b3991132096185cc30dba7ca881837af9fb6ebd3755dbc35746d993aaee6af3675f116ddbd1bb23f4272fb41b1db39637bdc33bf6231d84398fce04ebfa2d583ed28c36c2e7e06a696cc6a486ce9cd8323949e718c5a209a21bcf6cb20069fece555072f2fa2afa73b1f9f1a72f041f19bde9649f50941e268d15cde70193c82c6fc504837cfda6c04a1b7c1188d6929acfeccfcd3e974ff3d9591dade4ef9036d67a785f51862f013a35a889adcd39ca07d73a8ec562bd438ad1c4e5ca868033bd31776b6d2dbebaeaf0e0ac0fb', publickey_exp='010001', timestamp=241402350000)
DEBUG:steam.gateway:Received WSMessage(type=<WSMsgType.CLOSE: 8>, data=1000, extra='')
INFO:steam.state:Websocket closed, cannot reconnect.
DEBUG:asyncio:<_SelectorSocketTransport fd=9 read=polling write=<idle, bufsize=0>>: Fatal read error on socket transport
Traceback (most recent call last):
File "/home/user/mambaforge/envs/csgo/lib/python3.11/asyncio/selector_events.py", line 970, in _read_ready__get_buffer
nbytes = self._sock.recv_into(buf)
^^^^^^^^^^^^^^^^^^^^^^^^^
ConnectionResetError: [Errno 104] Connection reset by peer
INFO:steam.client:Attempting to connect to another CM in 12s
DEBUG:steam.gateway:Socket has received CMsgClientLogonResponse(eresult=48) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientLogonResponse(eresult=48)
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientLogOnResponse
DEBUG:steam.gateway:Received WSMessage(type=<WSMsgType.CLOSE: 8>, data=1000, extra='')
INFO:steam.state:Websocket closed, cannot reconnect.
INFO:steam.gateway:Attempting to create a websocket connection to ext1-sto2.steamserver.net:27032 (load: 140.317818)
DEBUG:asyncio:Get address info ext1-sto2.steamserver.net:27032, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32>
DEBUG:asyncio:Getting address info ext1-sto2.steamserver.net:27032, type=<SocketKind.SOCK_STREAM: 1>, flags=<AddressInfo.AI_ADDRCONFIG: 32> took 4.402ms: [(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('155.133.252.39', 27032))]
DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb01e4150> starts SSL handshake
DEBUG:asyncio:<asyncio.sslproto.SSLProtocol object at 0x7f2cb01e4150>: SSL handshake took 71.2 ms
DEBUG:asyncio:<asyncio.TransportSocket fd=7, family=2, type=1, proto=6, laddr=('192.168.0.101', 33792), raddr=('155.133.252.39', 27032)> connected to 155.133.252.39:27032: (<asyncio.sslproto.SSLProtocolTransport object at 0x7f2cb01a9bb0>, <aiohttp.client_proto.ResponseHandler object at 0x7f2cabfb3620>)
DEBUG:steam.gateway:Connected to ext1-sto2.steamserver.net:27032
DEBUG:steam.client:Dispatching event connect
DEBUG:steam.gateway:Socket has received CMsgMulti(size_unzipped=618, message_body=bytearray(b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x1dP\xbbj\x96A\x10\xfd~\x11E+\xb1\xb2\xb7\xb1\x92\x9d\x9d\xdd\xd9\x992\x95\x85\x16A+\xcb\xb9\x92\x80$\x12\xc4.\xe0#\xe4\x11\xc4V|\x04K+\xdf\xc5\xceN\xbfd\x98i\x0e\x9c\xcb\x9c\xba\xb7m7\xdbv\xfdf\xdb\xb6G\xfb\xdd\xed\x93\xaf\xdf\x7f\xfd\xf9\xfbo\x9f\xc3\xfb\xc3\x1d\xb2m\xf6\xe2\xe8\xea\xf2$\xcf.O]/O\xcf\xcf^\xbe\xca\xcbc\xbd\xb8\xf8t\xfe1\xde\xbe;:\xbe\xb2\x0f\xa7\xfe:??\x87\x93\xc3\xcf\xc3\xe1\xf1\xf5}\xcd\x06}\x81\xb2\xa2\x114\xe4N\x94\xd0\x18T\x805)\x8aH\x81\x89\xf7.\x00\x08\x81BYaJd\\\xdc\xc4f++(U\xa0\t-\x995 \xfb\xa0I\x1a}\x1a\xca-\xaf7!\xe0\xe9\x8em\xe7.Wf\ZRFi\x81k\xce0\xc7\xb9\x06\x85\x08\xaaf\x92\x16\xd2\x9a\x05@\x11\x16\xd6\xb1F_\xbdl\x80A\xec\xd2\x84\xcb\xc2\x11\xad\xa8\xef\xd9x\xa0py\xb6\x91V\xdac2ftv$\xef\xb9\xb2\x91\x92\x90;\xe9\xf2\x14\x0f\xc6\x8e2$\x17\xb0O\xddCj\x07\xf3"\xb7\xde\x1aI\xa5\xe7\x9c\xb3\xed\x96}\xd7\xd3\xd2\x85\x06{f\xd0\x1dj\x03\n\xc4"\x85\x86\xd4l2 ;q\xc0\xf4\xc8\xd5@\xd0\xb9;\x95\xcf6\xf6
\xbdB\xc9\xdbP\xb0\xe5\x00\xccA\xd2E}7\xf1\xf2\xc0\x945\xaa0d\n\x84F\x8e,iHAK\x17\xcf\x9a\xc0\xd4\xab\x01*Ne\x16\x8d\x9d#\xaem\xc5B\xe5\xf4I\xddb\xe0m\xfd>r\xba2q\xdb\xab\t\x84\xb5\xc8(zX\x9a\xa6V\xcb\xa6\xde\xca\x9e>h\xd0Z\x83g?n~\x7f\xfb\xf2\xf0?\xe8\xc4\x0f\xdaj\x02\x00\x00')) from the websocket.
DEBUG:steam.gateway:Socket has received GetPasswordRsaPublicKeyResponse(publickey_mod='ae01271a8a3b61038266e1081a918ae6df6149d3f1b9c2291131d396efdba66b8f809b50fbf1faa16510e88ad1e24656ad25b3991132096185cc30dba7ca881837af9fb6ebd3755dbc35746d993aaee6af3675f116ddbd1bb23f4272fb41b1db39637bdc33bf6231d84398fce04ebfa2d583ed28c36c2e7e06a696cc6a486ce9cd8323949e718c5a209a21bcf6cb20069fece555072f2fa2afa73b1f9f1a72f041f19bde9649f50941e268d15cde70193c82c6fc504837cfda6c04a1b7c1188d6929acfeccfcd3e974ff3d9591dade4ef9036d67a785f51862f013a35a889adcd39ca07d73a8ec562bd438ad1c4e5ca868033bd31776b6d2dbebaeaf0e0ac0fb', publickey_exp='010001', timestamp=241402350000) from the websocket.
DEBUG:steam.state:Got a UM 'Authentication.GetPasswordRSAPublicKey#1' that we don't handle GetPasswordRsaPublicKeyResponse(publickey_mod='ae01271a8a3b61038266e1081a918ae6df6149d3f1b9c2291131d396efdba66b8f809b50fbf1faa16510e88ad1e24656ad25b3991132096185cc30dba7ca881837af9fb6ebd3755dbc35746d993aaee6af3675f116ddbd1bb23f4272fb41b1db39637bdc33bf6231d84398fce04ebfa2d583ed28c36c2e7e06a696cc6a486ce9cd8323949e718c5a209a21bcf6cb20069fece555072f2fa2afa73b1f9f1a72f041f19bde9649f50941e268d15cde70193c82c6fc504837cfda6c04a1b7c1188d6929acfeccfcd3e974ff3d9591dade4ef9036d67a785f51862f013a35a889adcd39ca07d73a8ec562bd438ad1c4e5ca868033bd31776b6d2dbebaeaf0e0ac0fb', publickey_exp='010001', timestamp=241402350000)
INFO:steam.client:Attempting to connect to another CM in 12s
DEBUG:steam.gateway:Socket has received CMsgClientLogonResponse(eresult=48) from the websocket.
DEBUG:steam.gateway:Ignoring event CMsgClientLogonResponse(eresult=48)
Traceback (most recent call last):
File "/home/user/.cache/pypoetry/virtualenvs/unicorn-wwDJ2Lcl-py3.11/lib/python3.11/site-packages/steam/gateway.py", line 737, in receive
event_parser = self._state.parsers[msg.MSG]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: EMsg.ClientLogOnResponse
DEBUG:steam.gateway:Received WSMessage(type=<WSMsgType.CLOSE: 8>, data=1000, extra='')
INFO:steam.state:Websocket closed, cannot reconnect.

System Information

python version: 3.11.5
steam.py version: 1.0.0a2963+g4f0c3f94
aiohttp version: 3.8.5
betterproto version: 2.0.0b6
operating system info: Linux-6.4.12-zen1-1-zen-x86_64-with-glibc2.38

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

ext.csgo.Client.inspect_item raise AttributeError

Summary

Attempt to inspect csgo item raise AttributeError: 'BaseInspectedItem' object has no attribute 'id' exception.

Reproduction Steps

Title really self-describing

Expected Results

Expect inspect item result to return.

Actual Results

Exception happened.

return BaseInspectedItem(
File "<string>", line 3, in __init__
AttributeError: 'BaseInspectedItem' object has no attribute 'id'

System Information

python version: 3.10.5
steam.py version: 1.0.0rc13084+gaaa08e17
aiohttp version: 3.8.6
betterproto version: 2.0.0b6
operating system info: Windows-10-10.0.22621-SP0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

can not run example casket.py

Summary

can not run example casket.py

Reproduction Steps

https://raw.githubusercontent.com/Gobot1234/steam.py/main/examples/csgo/casket.py

OS:Mac OS 13.2.1 M1
Python Version: 3.11 and 3.12
steamio Version: 1.0.0

Expected Results

OK

Actual Results

/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 casket.py
Traceback (most recent call last):
File "xxxx/casket_move/casket.py", line 26, in
class MyBot(csgo.Bot):
File "xxxx/casket_move/casket.py", line 41, in MyBot
@casket.command
^^^^^^^^^^^^^^
AttributeError: 'Command' object has no attribute 'command'

System Information

OS:Mac OS 13.2.1 M1
Python Version: 3.11 and 3.12
steamio Version: 1.0.0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

can't start Quick Example

When start Quick Example have error:
from .enums import EInstanceFlag, EPersonaState, EPersonaStateFlag, EResult, EType, ETypeChar, EUniverse
ImportError: cannot import name 'ETypeChar' from 'steam.enums'

win10

redeem_package doesn't work

Summary

redeem_package has stuck after call it

Reproduction Steps


import steam

class MyClient(steam.Client):
    async def on_ready(self) -> None:
        print("Logged in as", self.user)
        retid = await self.redeem_package(1018587)
        print(retid)


if __name__ == "__main__":
    client = MyClient()
    client.run("username", "password")

Expected Results

User redeem free license successful and received correct response

Actual Results

stuck after call redeem_package and no output

System Information

python version: 3.11.4
steam.py version: 1.0.1
aiohttp version: 3.9.3
betterproto version: 2.0.0b6
operating system info: Windows-10-10.0.22631-SP0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Item.price() errors with BadRequest

Summary

Price fetch gives 400 as it is doing a POST with payload in Body instead of a GET with URL Parameters.

Reproduction Steps

Using await price() on an item will give the same result

Expected Results

get the price

Actual Results

File "/usr/local/lib/python3.12/dist-packages/steam/ext/commands/bot.py", line 512, in invoke
|     await ctx.command.invoke(ctx)
|   File "/usr/local/lib/python3.12/dist-packages/steam/ext/commands/commands.py", line 365, in invoke
|     await self(ctx, *ctx.args, **ctx.kwargs)
|   File "/usr/local/lib/python3.12/dist-packages/steam/ext/commands/commands.py", line 304, in __call__
|     return await self.callback(ctx, *args, **kwargs)  # type: ignore
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File "/opt/frontend/frontend/management/commands/run_worker.py", line 637, in update
|     oItem.market_info = self.slotsjson(await item.price())
|                                        ^^^^^^^^^^^^^^^^^^
|   File "/usr/local/lib/python3.12/dist-packages/steam/models.py", line 419, in price
|     price = await self._state.http.get_price(self._app_id, self.market_hash_name, currency)
|             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File "/usr/local/lib/python3.12/dist-packages/steam/http.py", line 147, in request
|     raise errors.HTTPException(r, data)
| steam.errors.HTTPException: 400 Bad Request(error code: Invalid)

System Information

version 1.0.1, python3.12

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Task exception was never retrieved

Summary

A message is constantly being spammed

Reproduction Steps

.

Expected Results

No spamming at all.

Actual Results

The console is being spammed.

Task exception was never retrieved
future: <Task finished name='steam.py GC 730: parse_gc_client_connect' coro=<GCState.parse_gc_client_connect() done, defined at /usr/local/lib/python3.11/site-packages/steam/ext/csgo/state.py:95> exception=TypeError("a bytes-like object is required, not 'NoneType'")>
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/steam/ext/csgo/state.py", line 100, in parse_gc_client_connect
    await self.update_backpack(*(base.Item().parse(item_data) for item_data in cache.object_data))
  File "/usr/local/lib/python3.11/site-packages/steam/ext/csgo/state.py", line 173, in update_backpack
    slot=READ_U32(utils.get(gc_item.attribute, def_index=290 + i)),  # type: ignore
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/steam/_const.py", line 130, in READ_U32
    (u32,) = unpacker(s)
             ^^^^^^^^^^^
TypeError: a bytes-like object is required, not 'NoneType

### System Information

python version: 3.11.1
steam.py version: 1.0.1
aiohttp version: 3.9.3
betterproto version: 2.0.0b6
operating system info: Linux-5.15.0-101-generic-x86_64-with-glibc2.31```

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

utils.ainput doesn't work in jupyter since commit e0cee3923a8809e3d182f3d7651d3ba51641a38b

Summary

Replacing builtin input() for asyncio.StreamReader() broke interactivity in notebooks.

Reproduction Steps

In a Kaggle notebook running Python 3.10, I run this to install steam.py:

%pip install -U "steamio @ git+https://github.com/Gobot1234/steam.py@main"

Then I run this code, replacing my user and password:

import steam

class MyClient(steam.Client):
    async def on_ready(self) -> None:
        print(f"We have logged in as {self.user}")

client = MyClient()

await client.login("<my username>", "<my password>")

Expected Results

Actually let me type in the code and continue execution flow.

Please enter a Steam guard code
>>>  *****
We have logged in as <user>

Actual Results

After printing the prompt for the Steam guard code, it immediately raised an Exception before I had the chance to type in the code, then it hung up forever as if it was still waiting for an input.

Please enter a Steam guard code
>>> 
Exception in thread Thread-5 (_read_line_from_stdin):
Traceback (most recent call last):
  File "/opt/conda/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/opt/conda/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/conda/lib/python3.10/site-packages/steam/utils.py", line 274, in _read_line_from_stdin
    raise EOFError
EOFError

System Information

python version: 3.10.12
steam.py version: 1.0.0a2876+gbb5463b
aiohttp version: 3.8.4
betterproto version: 2.0.0b6
operating system info: Linux-5.15.120+-x86_64-with-glibc2.31

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Looking to decrypt encrypted application tickets

Hi,

I'm looking for help decrypting encrypted application tickets.

Using ValvePython's Steam library (pip install steam)

` data = "CAEQ8IrOxw0YBCA+KnAsX1ZReXWSFz1IHPQ6sBSTBK3hj2co79vrystWUrqUyOz9ueLpMy59R0WAirzid93gVGyT7wb3Ptwmdtqhb+UtqIupxHQ7n5k6HCCAh4Us3jC3a64hhJ9XjEEzorxzciVbSgQmMASYBGCtBjRV7f1R"
data = base64.b64decode(data)
keyx = key.encode()
decrypted_data = crypto.symmetric_decrypt(crypto.pad(data), keyx)

import struct
s = struct.unpack_from("IIQIIIINNhIhhhxx", decrypted_data[:64])`

I wonder if your library can accomplish it instead as I've hit a wall using Py Steam, probably have the struct all wrong. How can I contact you by the way? Do you do consultations?

Not Getting New Asset_ids After A Successful Trade Offer

Summary

Cannot get the changed asset_ids of traded items with fetch_trade method after a successful trade

Reproduction Steps

I create and offer send it. It triggers the event listener on_trade_accept and I try to get changed asset_ids by fetch_trade() the sent offer and getting items_to_receive and items_to_send objects:

async def send_trade_offer():
    #Getting my and other_side's inventory ...
    print(basket)
    trade = steam.TradeOffer(token = trade_token, items_to_send=None, items_to_receive=basket, message = "")
    await other_side.send( trade = trade)

class MyClient(steam.Client):
    async def on_trade_accept(self, trade: steam.TradeOffer):
        print(trade.id)
        trade_offer = await self.fetch_trade(trade.id)
        print(trade_offer.items_to_receive)
        print(trade_offer.items_to_send)

    async def on_ready(self):
        print("Logged in as", self.user)
        await send_trade_offer()

Expected Results

I expect to see changes in asset_ids of items involved in trading process after a successful (accepted) trade offer.

Actual Results

The outputs from the both print functions are the same. Both print functions gives Item objects. The asset_ids stays same even though they actually change. The trade offer is successfully sent.

System Information

Output of the command "python3 -m steam":

python version: 3.8.12
steam.py version: 0.8.3
aiohttp version: 3.8.1
betterproto version: 2.0.0b3
operating system info: Linux-5.4.0-1049-gke-x86_64-with-glibc2.29

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

Attempting to connect to another cm not connecting

Summary

The steam client keeps spamming that it is trying to reconnect but nothing happens.

Reproduction Steps

                    try:
                        await bot.start(discord_token, username, password)
                    except KeyboardInterrupt:
                        await bot.close()
                    except steam.gateway.ConnectionClosed:
                        logger.error("[-] Steam gateway error. Reconnecting...")
                        while True:
                            try:
                                await asyncio.sleep(10)
                                await bot.start(discord_token, username, password)
                            except steam.gateway.ConnectionClosed:
                                logger.error("[-] Steam gateway error. Reconnecting...")
                            else:
                                break

Using this code and blocking the network connection from my server, the bot can't reconnect after unblocking the connection.
It just keeps spamming Attempting to connect to another CM in 12s, even after the network connection is reestablished.

Expected Results

I expected the client to resume the connection, after the network is back.

Actual Results

The bot hangs in a Attempting to connect state.

System Information

python version: 3.11.0
steam.py version: 1.0.0
aiohttp version: 3.8.5
betterproto version: 2.0.0b6
operating system info: Windows-10-10.0.22621-SP0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Ready is not being re-dispatched after disconnects

Summary

After (forcefully) disconnecting from the WS we fail to dispatch the ready event

Reproduction Steps

Disconnect and reconnect to a CM, wait 60s and then the bot will crash after timing out fetching the friends list causing ready to not be redispatched

Expected Results

No crashing to occur

Actual Results

It crashes in SteamWebsocket.fetch_users after timing out waiting for a refresh.

System Information

v1.0.0 on 82e7482

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

`KeyError: 'transfer_urls'` Unable to login with Client.run() method

Summary

Unable to login with client.Client.run() method

Reproduction Steps

Trying to login with vaild username and password using run(USERNAME, PASSWORD) method of client.Client instance.

Expected Results

Successful login after providing valid username and password

Actual Results

KeyError observed during executing run(USERNAME, PASSWORD) method:

Traceback (most recent call last):
  File "C:\user_mrpst\PycharmProjects\SteamPrices\steam_price_getter.py", line 265, in <module>
    temp.run(USERNAME, PASSWORD)
  File "C:\user_mrpst\PycharmProjects\SteamPrices\venv\Lib\site-packages\steam\client.py", line 372, in run
    asyncio.run(runner())
  File "C:\Python\Python3.11\Lib\asyncio\runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "C:\Python\Python3.11\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Python3.11\Lib\asyncio\base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\user_mrpst\PycharmProjects\SteamPrices\venv\Lib\site-packages\steam\client.py", line 363, in runner
    await self.start(*args, **kwargs)
  File "C:\user_mrpst\PycharmProjects\SteamPrices\venv\Lib\site-packages\steam\client.py", line 465, in start
    await self.login(username, password, shared_secret=shared_secret)
  File "C:\user_mrpst\PycharmProjects\SteamPrices\venv\Lib\site-packages\steam\client.py", line 403, in login
    await self.http.login(username, password, shared_secret=shared_secret)
  File "C:\user_mrpst\PycharmProjects\SteamPrices\venv\Lib\site-packages\steam\http.py", line 189, in login
    for url in resp["transfer_urls"]:
               ~~~~^^^^^^^^^^^^^^^^^
KeyError: 'transfer_urls'

Script was working fine few hours ago.

System Information

python version: 3.11.2
steam.py version: 0.9.9
aiohttp version: 3.8.4
betterproto version: 2.0.0b4
operating system info: Windows-10-10.0.19045-SP0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

DeprecationWarning

Summary

DeprecationWarning

Reproduction Steps

Use this library on python 3.10 or above

Expected Results

run the program with no such warning

Actual Results

图片

System Information

python version: 3.10.9
steam.py version: 0.9.9
aiohttp version: 3.8.3
betterproto version: 2.0.0b4
operating system info: Windows-10-10.0.22621-SP0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

0.8.7 update crashes with "AttributeError: module 'weakref' has no attribute 'WeakValueDict'"

Summary

After updating to version 0.8.7 program crashes with "AttributeError: module 'weakref' has no attribute 'WeakValueDict'"

Reproduction Steps

Update steamio to version 0.8.7
Launch program
Get exception "AttributeError: module 'weakref' has no attribute 'WeakValueDict'"

Code:

import json
import steam

bot = steam.Client(state=steam.PersonaState.Online)

@bot.event
async def on_ready():
    print('Client is ready!')

@bot.event
async def on_trade_receive(trade: steam.TradeOffer):
    print('New trade offer received')

@bot.event
async def on_trade_accept(trade: steam.TradeOffer):
    print('Trade offer accepted')

@bot.event
async def on_trade_decline(trade: steam.TradeOffer):
    print('Trade offer declined')

with open('credentials.json') as f:
    credentials = json.load(f)

bot.run(**credentials)

File "credentials.json" contains valid username, password, secret and shared keys

Expected Results

Normal program behavior

Actual Results

Error. Full stacktrace:

Traceback (most recent call last):
  File "error.py", line 4, in <module>
    bot = steam.Client(state=steam.PersonaState.Online)
  File "C:\Users\lnfecteD\miniconda3\envs\tfgc_updated\lib\site-packages\steam\client.py", line 145, in __init__
    self._connection = self._get_state(**options)
  File "C:\Users\lnfecteD\miniconda3\envs\tfgc_updated\lib\site-packages\steam\client.py", line 159, in _get_state
    return ConnectionState(client=self, **options)
  File "C:\Users\lnfecteD\miniconda3\envs\tfgc_updated\lib\site-packages\steam\state.py", line 144, in __init__
    self.clear()
  File "C:\Users\lnfecteD\miniconda3\envs\tfgc_updated\lib\site-packages\steam\state.py", line 147, in clear
    self._users: weakref.WeakValueDict[int, User] = weakref.WeakValueDict()
AttributeError: module 'weakref' has no attribute 'WeakValueDict'

System Information

python version: 3.8.12
steam.py version: 0.8.7
aiohttp version: 3.8.1
betterproto version: 2.0.0b4
operating system info: Windows-10-10.0.19044-SP0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

Exiting due to Result.InvalidPassword when logging in without enterering a 2FA code

Summary

When you log in without passing a shared_secret and attempt to confirm login using the app it fails

Reproduction Steps

@type.__call__
class client(steam.Client):
	async def code(self):
		await asyncio.sleep(10)  # confirm using the app
		return ""

client.run("username", "password")

Expected Results

No error

Actual Results

You get a ConnectionClosed. Interestingly the refresh_token produced is still valid to login with.

System Information

I don't get paid enough for this

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Logging error - "possible formatting error"

Summary

When logging enabled, on every action 'logging error' is printed. I'm getting this error when using GC client.

Reproduction Steps

import json
import logging
import steam
from steam.ext import tf2

logger = logging.getLogger('steam')
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s:%(levelname)s:%(name)s: %(message)s')
handler = logging.FileHandler(filename='steam.log', encoding='utf-8', mode='w')
handler.setFormatter(formatter)
logger.addHandler(handler)

with open('credentials.json', 'r') as f:
    credentials = json.load(f)
bot = tf2.Client(state=steam.PersonaState.Online)
bot.run(**credentials)

Expected Results

Nothing

Actual Results

--- Logging error ---
Traceback (most recent call last):
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\logging_init_.py", line 1085, in emit
msg = self.format(record)
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\logging_init_.py", line 929, in format
return fmt.format(record)
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\logging_init_.py", line 668, in format
record.message = record.getMessage()
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\logging_init_.py", line 373, in getMessage
msg = msg % self.args
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\site-packages\steam\protobufs_init_.py", line 87, in repr
resolved.extend(f"{k}={v!r}" for k, v in self.body.to_dict(do_nothing_case).items())
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\site-packages\steam\protobufs\struct_messages.py", line 35, in to_dict
return {key: getattr(self, key) for key in self.annotations}
AttributeError: 'CacheSubscribedCheck' object has no attribute 'annotations'
Call stack:
File "d:/Workspace/Python/tf_crafting/issue_thread/craft_logging.py", line 16, in
bot.run(**credentials)
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\site-packages\steam\client.py", line 367, in run
asyncio.run(runner())
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\asyncio\base_events.py", line 603, in run_until_complete
self.run_forever()
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\asyncio\windows_events.py", line 316, in run_forever
super().run_forever()
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\asyncio\base_events.py", line 570, in run_forever
self._run_once()
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\asyncio\base_events.py", line 1859, in _run_once
handle._run()
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\asyncio\events.py", line 81, in _run
self._context.run(self._callback, *self._args)
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\site-packages\steam\utils.py", line 765, in maybe_coroutine
return await value
File "C:\Users\lnfecteD\miniconda3\envs\tfgc\lib\site-packages\steam\ext_gc\state.py", line 60, in parse_gc_message
log.debug("Socket has received GC message %r from the websocket.", gc_msg)
Unable to print the message and arguments - possible formatting error.
Use the traceback above to help find the error.

System Information

python version: 3.8.13
steam.py version: 0.9.0a2178+g7721597
aiohttp version: 3.8.1
betterproto version: 2.0.0b4
operating system info: Windows-10-10.0.19044-SP0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

Unable to login to Steam using username and password

Summary

Unable to login to Steam

Reproduction Steps

  1. Attempt to login using the steam.login() function with shared_secret.
  2. Receive a prompt for steam guard code even though shared_secret was provided.
  3. Enter the steam guard code.
  4. Observe that the program hangs indefinitely.

Here is the code snippet:

logger.info("正在登录...")
asyncio.run(
    client.login(
        acc.get("steam_username"),
        acc.get("steam_password"),
        shared_secret=acc.get("steam_shared_secret"),
        identity_secret=acc.get("steam_identity_secret"),
    )
)

Expected Results

The program should login successfully without prompting for steam guard code when shared_secret is provided.

Actual Results

The program prompts for steam guard code even with shared_secret and hangs indefinitely after entering the code.

System Information

root@jiajiaxd-do-us-sf:~/Steamauto# python3 -m steam
python version: 3.10.12
steam.py version: 1.0.0a2898+g56e9ca3
aiohttp version: 3.8.5
betterproto version: 2.0.0b6
operating system info: Linux-5.15.120-bbrplus-x86_64-with-glibc2.35

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

AppInfo Init function throws error for app 1133290

Summary

Client fetch_product_info is failing for certain apps (namely app 1133290)

Reproduction Steps

Call fetch_product_info on the steam app 1133290

Expected Results

Get the serialized AppInfo object related to that app

Actual Results

Get this error - the depot object it expects is an empty string rather than a dictionary:

Screenshot 2023-09-11 at 14 01 26

here is a memory snapshot through the debugger (try statement was added manually by myself):
Screenshot 2023-09-11 at 14 09 16

System Information

python version: 3.11.1
steam.py version: 1.0.0a2809+g372f918
aiohttp version: 3.8.4
betterproto version: 2.0.0b6
operating system info: macOS-12.2-x86_64-i386-64bit

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Trades take far too long to finialise

Summary

Trades can take an arbitrarily long amount of time, in this case it took ~7 minutes

Reproduction Steps

Code for now is unconfirmed (sorry future me)

Expected Results

Trades should only take as long as they do in the steam mobile app

Actual Results

image

System Information

version: 0.9.7

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

Need some help

Hello. First of first, you created an awesome bot. Very easy to start.

But I'm need some help. I tried your examples and got errors.

  • Mac OS
  • Python 3.8.2

1. comment_monitor.py
comment

And doesn't delete a comments with URL (not from friend).

2. trade.py
Everything is good, but when i got a trade (as gift), script doesn't accept trade automatically.

trade

Maybe I'm doing something wrong.

3. Send trade
Just a question. Can you write example how get my (cs:go) inventory list and send trade (with some item) to user?

Thank you.

Copyright year bump

The Problem

The copyright year being behind

The Ideal Solution

Incrementing the copyright year

The Current Solution

Complaining to Gobot in this issue

Summary

Pls fix.

WSException when trying to add an emoticon to a message

Summary

Cannot add emoticon reaction

Reproduction Steps

Call add_emoticon() on a message, eg:

class client(steam.Client):
    async def on_message(self, message: steam.Message):
        await message.add_emoticon(self.emoticons[0])

Expected Results

steam.py should add an emoji to the message

Actual Results

DEBUG:steam.gateway:Socket has received CMsgMulti(message_body=bytearray(b'U\x00\x00\x00\x93\x00\x00\x80M\x00\x00\x00\t \xa9H\x05\x01\x00\x10\x01\x10\xcb\x95\xce\x9d\xff\xff\xff\xff\xff\x01Y\x05\x00\x00\x00\x00\x00\x00\x00b&FriendMessages.UpdateMessageReaction#1h\x0f\x88\x01\x01\xc0\x01\x01')) from the websocket.
DEBUG:steam.client:Dispatching event socket_receive
DEBUG:steam.gateway:Received a multi
DEBUG:steam.gateway:Socket has received UpdateMessageReactionResponse() from the websocket.
DEBUG:steam.client:Dispatching event socket_receive
DEBUG:steam.state:Got a UM 'FriendMessages.UpdateMessageReaction#1' that we don't handle UpdateMessageReactionResponse()
Ignoring exception in on_message
Traceback (most recent call last):
  File "/venv/lib/python3.11/site-packages/steam/client.py", line 290, in _run_event
    await coro(*args, **kwargs)
  File "/venv/lib/python3.11/site-packages/slidge/plugins/steam/client.py", line 67, in on_message
    await message.add_emoticon(self.emoticons[0])
  File "/venv/lib/python3.11/site-packages/steam/message.py", line 49, in add_emoticon
    await self._state.react_to_user_message(
  File "/venv/lib/python3.11/site-packages/steam/state.py", line 602, in react_to_user_message
    raise WSException(msg)
steam.errors.WSException: The request FriendMessages.UpdateMessageReaction#1 failed. (error code: Result.AccessDenied)

System Information

Using e74f397

nicoco@hummp ~/s/p/x/slidge (steamio)> python3 -m steam
Traceback (most recent call last):
  File "/home/nicoco/dl/Python-3.10.11/Lib/runpy.py", line 187, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/home/nicoco/dl/Python-3.10.11/Lib/runpy.py", line 146, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/home/nicoco/dl/Python-3.10.11/Lib/runpy.py", line 110, in _get_module_details
    __import__(pkg_name)
  File "/home/nicoco/.cache/pypoetry/virtualenvs/slidge-AjQFdees-py3.10/lib/python3.10/site-packages/steam/__init__.py", line 10, in <module>
    from . import abc as abc, guard as guard, utils as utils
  File "/home/nicoco/.cache/pypoetry/virtualenvs/slidge-AjQFdees-py3.10/lib/python3.10/site-packages/steam/abc.py", line 18, in <module>
    from . import utils
  File "/home/nicoco/.cache/pypoetry/virtualenvs/slidge-AjQFdees-py3.10/lib/python3.10/site-packages/steam/utils.py", line 47, in <module>
    from ._const import JSON_LOADS, MISSING, URL
  File "/home/nicoco/.cache/pypoetry/virtualenvs/slidge-AjQFdees-py3.10/lib/python3.10/site-packages/steam/_const.py", line 107, in <module>
    from taskgroup import TaskGroup as TaskGroup, timeout as timeout
ModuleNotFoundError: No module named 'taskgroup'


### Checklist

- [X] I have searched the issues for duplicates.
- [X] I have shown the entire traceback, if possible.
- [X] I have removed my username/password/secrets from display, if visible.

Empty reactions in group channel messages

Summary

Empty reactions in group channel messages

Reproduction Steps

Fetch the reactions for a group message.

Expected Results

The list of emojis should be in there.

Actual Results

It's empty.

System Information

Here's the output from my laptop, but it's probably irrelevant to the issue.

python version: 3.11.4
steam.py version: 1.0.0a2658+g1bcecabc
aiohttp version: 3.8.4
betterproto version: 2.0.0b5
operating system info: macOS-13.5.2-arm64-arm-64bit

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Spray in inventory raises None Type Error

Summary

Spray in inventory raises None Type Error

Reproduction Steps

Have the Spray 1734 (Sorry spray_std_sorry) in your inventory.

Expected Results

No None Type Error

Actual Results

Task exception was never retrieved
future: <Task finished name='steam.py GC 730: parse_gc_client_connect' coro=<GCState.parse_gc_client_connect() done, defined at /home/ubuntu/discordbots/python/csgo-xp-bot/env/lib/python3.11/site-packages/steam/ext/csgo/state.py:95> exception=TypeError("a bytes-like object is required, not 'NoneType'")>
Traceback (most recent call last):
  File "/home/ubuntu/discordbots/python/csgo-xp-bot/env/lib/python3.11/site-packages/steam/ext/csgo/state.py", line 100, in parse_gc_client_connect
    await self.update_backpack(*(base.Item().parse(item_data) for item_data in cache.object_data))
  File "/home/ubuntu/discordbots/python/csgo-xp-bot/env/lib/python3.11/site-packages/steam/ext/csgo/state.py", line 175, in update_backpack
    slot=READ_U32(utils.get(gc_item.attribute, def_index=290 + i)),  # type: ignore
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/discordbots/python/csgo-xp-bot/env/lib/python3.11/site-packages/steam/_const.py", line 130, in READ_U32
    (u32,) = unpacker(s)
             ^^^^^^^^^^^
TypeError: a bytes-like object is required, not 'NoneType

System Information

python version: 3.11.0rc1
steam.py version: 1.0.1
aiohttp version: 3.8.5
betterproto version: 2.0.0b6
operating system info: Linux-5.15.0-94-generic-x86_64-with-glibc2.35

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Client.craft doesn't ever return

Summary

The method only ever raises TimeoutError

Reproduction Steps

Run autocraft example

Expected Results

Code to execute completely without errors

Actual Results

It errors

System Information

python version: 3.11.1
steam.py version: 1.0.0a2911+gbae29326
aiohttp version: 3.8.5
betterproto version: 2.0.0b6
operating system info: macOS-13.4.1-arm64-arm-64bit

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Implement more of the API

The Problem

Currently there are large feature sets still to implement, this is somewhat in order:

  • Clans (everything after getAllGroupAnnouncements).
  • User profiles (everything after postProfileStatus).
  • Invites in chats.
  • Roles and Permissions.

The Ideal Solution

It would be nice to see these implemented at some point, I have a few ideas for some of them mainly the Clan and User posts API but these should be discussed in the discord guild.

Summary

I am now much happier to see feature implementation PRs as things are finally at a point where the library is stable. I also plan to add more of these as I find them. I should be work on these at some point but they will be going on the back burner for now.

Occassionally getting 401s when interacting with the API

Summary

user.send(trade=trade) result in an error

Reproduction Steps

  1. Fetch a user from steam id 64
  2. Fetch bot inventory
  3. Get item from class_id
  4. Construct a trade from this item and trade token
  5. Send a trade to the user
  6. Decline the trade on the client side
  7. Repeat 2, 3, 4, 5 steps
  8. Got an error 401 Unauthorized
    image

Expected Results

Successfully sent trade offet

Actual Results

Error 401

System Information

python 3.8
Ubuntu 20
Version of the library 0.8.5

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

Result.DuplicateRequest when trying to remove emoticon reaction

Summary

In 1:1 messages, I can add_emoticon(), but not remove_emoticon()

Reproduction Steps

# msg: steam.Message, emoticon: steam.Emoticon
await msg.add_emoticon(emoticon)
await asyncio.sleep(1)
await msg.remove_emoticon(emoticon)

Expected Results

Add, then remove an emoticon to the message in steam chat.

Actual Results

I can an emoticon, but removing it fails:

  File "/venv/lib/python3.11/site-packages/legacy_module/client.py", line 129, in remove_emoticon
2023-06-17T12:47:18.371513307Z     await msg.remove_emoticon(emoticon)
2023-06-17T12:47:18.371517147Z   File "/venv/lib/python3.11/site-packages/steam/abc.py", line 1002, in remove_emoticon
2023-06-17T12:47:18.371521397Z     await self._react(emoticon, False)
2023-06-17T12:47:18.371524717Z   File "/venv/lib/python3.11/site-packages/steam/message.py", line 49, in _react
2023-06-17T12:47:18.371528237Z     await self._state.react_to_user_message(
2023-06-17T12:47:18.371531597Z   File "/venv/lib/python3.11/site-packages/steam/state.py", line 619, in react_to_user_message
2023-06-17T12:47:18.371535467Z     raise WSException(msg)
2023-06-17T12:47:18.371539327Z steam.errors.WSException: The request FriendMessages.UpdateMessageReaction#1 failed. (error code: Result.DuplicateRequest)

System Information

python version: 3.11.3
steam.py version: 1.0.0a2668+gabfc40bf
aiohttp version: 3.8.4
betterproto version: 2.0.0b5
operating system info: Linux-5.10.0-23-amd64-x86_64-with-glibc2.31

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

Sometimes trade events are not triggered

Summary

Trade events are not triggered sometimes

Reproduction Steps

import json
import steam

bot = steam.Client(state=steam.PersonaState.Invisible)

@bot.event
async def on_ready():
    print('Client is ready!')

@bot.event
async def on_trade_receive(trade: steam.TradeOffer):
    print('New trade offer received')

@bot.event
async def on_trade_accept(trade: steam.TradeOffer):
    print('Trade offer accepted')

@bot.event
async def on_trade_decline(trade: steam.TradeOffer):
    print('Trade offer declined')

with open('credentials.json') as f:
    credentials = json.load(f)

bot.run(**credentials)

File "credentials.json" contains valid username, password, secret and shared keys

Expected Results

New trade offer received
or
Trade offer accepted
or
Trade offer declined

Actual Results

Nothing

System Information

python version: 3.8.12
steam.py version: 0.8.6
aiohttp version: 3.8.1
betterproto version: 2.0.0b4
operating system info: Windows-10-10.0.19044-SP0

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

500 Server Internal Error on trade send

Summary

Sending a trade offer to a user results in an error

Reproduction Steps

I have just updated the library to the version of 0.8.5. And now I can't send trades =)

  1. Fetch a user from steam id64 e. g. await client.fetch_user(id)
  2. Create a steam.TradeOffer object from token and an item (I used only one item that was taken from inventory directly)
    trade_offer = steam.TradeOffer(token=trade_token, items_to_send=[item])
  3. await user.send(trade=trade_offer)
  4. user.send method raises exception
  5. I've tried to send a trade to a non-friend (errors) and then add a partner to the friend list (didn't help me)

Expected Results

Successfully sent trade offer as it was in the previous versions of the library

Actual Results

Exception

System Information

Python 3.8
Library version 0.8.5 (from github)

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

example for sending a trade offer to friend or tradeurl

Summary

example of sending trade

What is the feature request for?

The core library

The Problem

I can not figure out how to send a trade offer to a URL link and print trade sent

The Ideal Solution

a simple example could give me the idea

The Current Solution

looking for solutions.

KeyError: account_id in _get_partial_member

Summary

A KeyError is occasionally raised in _get_partial_member when the member isn't present in cache

Reproduction Steps

Log in to my account for a while and wait 😎

Expected Results

Nothing

Actual Results

A KeyError is raised in console pointing to

return PartialMember(self._state, clan=self, member=self._partial_members[id])
.

Partial members should be added to the cache if possible to prevent this, further invesitgation is needed

System Information

latest-latest or something IDK 😉

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username, password, shared/identity secrets and refresh/access tokens from display, if visible.

Error with WS after running for long time

Summary

My bot runs 24/7 and around 6 hours after having started it threw the AttributeError seen below

Reproduction Steps

Default steam Bot class, with multiple prefixes, a owner_id and the shared_secret in the start() method to auto generate the 2FA codes. The issue probably is that the WS connection was closed, i guess.

Expected Results

Catching the error if its inevitable and reconnecting

Actual Results

...
  File "/usr/local/lib/python3.8/site-packages/steam/client.py", line 453, in start
    await self.connect()
  File "/usr/local/lib/python3.8/site-packages/steam/client.py", line 472, in connect
    await self._connect()
  File "/usr/local/lib/python3.8/site-packages/steam/client.py", line 464, in _connect
    await self.ws.poll_event()
AttributeError: 'NoneType' object has no attribute 'poll_event'

Checklist

  • I have searched the open issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password from display, if visible.

System Information

Python 3.8.4
Steam.py Version 0.3.0
Running inside of Docker, with python:3.8 image

on_trade_accept

Summary

on_trade_accept is not called when partner accepts the trade. So its called only when client accepts the trade and when it accepts some trade, it fires this event for the trade that was accepted by the partner and then for the trade accepted by the client

Reproduction Steps

  1. Send trade on client side
  2. Accept it on partner side
  3. No on_trade_accept event after partner accept the trade
  4. Send a trade to client from partner side
  5. Accept the trade on client side
  6. See the message about client accepted the trade and the message about partner accepted the previous trade

Expected Results

on_trade_accept should be fired when partnter accepts the trade sent by client

Actual Results

No on_trade_accept is fired after partner trade accept

System Information

Started a steam client using bot.run like in examples

Checklist

  • I have searched the issues for duplicates.
  • I have shown the entire traceback, if possible.
  • I have removed my username/password/secrets from display, if visible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.