Sockets#

BackpackTF Example#

from tf2_utils import BackpackTFSocket


def my_function(data: list[dict]):
    print("got listings")

    for listing in data:
        print("listing", listing)

    # your logic here


socket = BackpackTFSocket(my_function, solo_entries=False)
# if solo_entries is True, you'll get a single dict instead of a list of dicts

socket.listen()

PricesTF Example#

from tf2_utils import PricesTFSocket


def my_function(data: dict):
    print("got data!", data)

    data_type = data["type"]  # "PRICE_CHANGED","PRICE_UPDATED" etc.
    sku = data["data"]["sku"]  # 30035;6
    buy_half_scrap = data["data"]["buyHalfScrap"]  # 264
    # etc. your logic goes here


socket = PricesTFSocket(my_function)

socket.listen()

# flake8: noqa
class src.tf2_utils.sockets.BackpackTFSocket(callback: Callable[[dict | list[dict]], None], solo_entries: bool = True, headers: dict = {'batch-test': True}, max_size: int | None = None, settings: dict = {})#
URL = 'wss://ws.backpack.tf/events'#
process_messages(data: str) None#
listen() None#

Listen for messages from BackpackTF

class src.tf2_utils.sockets.PricesTFSocket(callback: Callable[[dict], None], settings: dict = {})#
URL = 'wss://ws.prices.tf'#
process_message(ws: websockets.sync.client.ClientConnection, message: str) None#
listen() None#

Listen for messages from PricesTF.