Skip to content

Commit 18ed52f

Browse files
committed
Add lookup maps for groups market and inventory
1 parent 3afe327 commit 18ed52f

6 files changed

Lines changed: 954 additions & 2 deletions

File tree

examples/smoke_test.py

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,16 @@ def run_no_key_public_suite(client: SteamClient, args) -> None:
691691
)
692692
),
693693
)
694+
run_check(
695+
"Market Listings Map",
696+
lambda: _format_market_listings_map(
697+
client.get_market_item_listings_map(
698+
args.market_app_id,
699+
args.market_hash_name,
700+
count=10,
701+
)
702+
),
703+
)
694704
run_check(
695705
"Market Listings Multi-Page",
696706
lambda: _format_market_listings_summary(
@@ -703,6 +713,18 @@ def run_no_key_public_suite(client: SteamClient, args) -> None:
703713
)
704714
),
705715
)
716+
run_check(
717+
"Market Listings Multi-Page Map",
718+
lambda: _format_market_listings_map(
719+
client.get_all_market_item_listings_map(
720+
args.market_app_id,
721+
args.market_hash_name,
722+
count=10,
723+
max_pages=2,
724+
max_listings=15,
725+
)
726+
),
727+
)
706728
run_check(
707729
"Market Listings Multi-Page By URL",
708730
lambda: _format_market_listings_summary(
@@ -714,6 +736,14 @@ def run_no_key_public_suite(client: SteamClient, args) -> None:
714736
)
715737
),
716738
)
739+
run_check(
740+
"Get Market Listing By ID",
741+
lambda: _format_market_listing_lookup(client, args),
742+
)
743+
run_check(
744+
"Get Market Listing By ID From URL",
745+
lambda: _format_market_listing_lookup_by_url(client, args),
746+
)
717747
run_check(
718748
"Find Market Listings",
719749
lambda: _format_found_market_listings(
@@ -822,6 +852,10 @@ def run_community_suite(client: SteamClient, args) -> None:
822852
"Get Group Member Summaries",
823853
lambda: _format_group_member_summaries(client.get_group_member_summaries(args.group_url, limit=5)),
824854
)
855+
run_check(
856+
"Get Group Member Summaries Map",
857+
lambda: _format_group_member_summaries_map(client.get_group_member_summaries_map(args.group_url, limit=5)),
858+
)
825859
if client.api_key:
826860
run_check(
827861
"Get Friend Bans",
@@ -1177,6 +1211,20 @@ def _format_group_member_summaries(payload: dict) -> str:
11771211
return "members={0} first={1}".format(len(members), first_name)
11781212

11791213

1214+
def _format_group_member_summaries_map(payload: dict) -> str:
1215+
members = payload.get("members", [])
1216+
members_by_steam_id = payload.get("members_by_steam_id", {})
1217+
first_id = next(iter(members_by_steam_id), "<none>")
1218+
first_name = members[0].get("personaname") if members else "<none>"
1219+
first_name = _safe_console_text(first_name)
1220+
return "members={0} indexed={1} first_id={2} first={3}".format(
1221+
len(members),
1222+
len(members_by_steam_id),
1223+
first_id,
1224+
first_name,
1225+
)
1226+
1227+
11801228
def _format_group_details(payload: dict) -> str:
11811229
return "group={0} members={1} online={2}".format(
11821230
_safe_console_text(payload.get("group_name") or "<none>"),
@@ -1221,6 +1269,16 @@ def _format_market_listings_summary(payload: dict) -> str:
12211269
)
12221270

12231271

1272+
def _format_market_listings_map(payload: dict) -> str:
1273+
listings_by_id = payload.get("listings_by_id", {})
1274+
first_listing_id = next(iter(listings_by_id), "<none>")
1275+
return "listings={0} indexed={1} first_listing_id={2}".format(
1276+
len(payload.get("listings", [])),
1277+
len(listings_by_id),
1278+
first_listing_id,
1279+
)
1280+
1281+
12241282
def _format_found_market_listings(payload: dict) -> str:
12251283
listings = payload.get("listings", [])
12261284
first_price = None
@@ -1251,6 +1309,43 @@ def _format_market_find(payload: dict) -> str:
12511309
)
12521310

12531311

1312+
def _format_market_listing_lookup(client: SteamClient, args) -> str:
1313+
listings_map = client.get_market_item_listings_map(
1314+
args.market_app_id,
1315+
args.market_hash_name,
1316+
count=10,
1317+
)
1318+
listing_id = next(iter(listings_map.get("listings_by_id", {})), None)
1319+
if listing_id is None:
1320+
return "skipped: no market listings returned"
1321+
listing = client.get_market_listing_by_id(
1322+
args.market_app_id,
1323+
args.market_hash_name,
1324+
listing_id,
1325+
count=10,
1326+
)
1327+
price = listing.get("converted_price") or listing.get("price")
1328+
return "listing_id={0} price={1}".format(listing.get("listing_id"), price)
1329+
1330+
1331+
def _format_market_listing_lookup_by_url(client: SteamClient, args) -> str:
1332+
market_url = build_market_listing_url(args.market_app_id, args.market_hash_name)
1333+
listings_map = client.get_market_item_listings_map_by_url(
1334+
market_url,
1335+
count=10,
1336+
)
1337+
listing_id = next(iter(listings_map.get("listings_by_id", {})), None)
1338+
if listing_id is None:
1339+
return "skipped: no market listings returned"
1340+
listing = client.get_market_listing_by_id_by_url(
1341+
market_url,
1342+
listing_id,
1343+
count=10,
1344+
)
1345+
price = listing.get("converted_price") or listing.get("price")
1346+
return "listing_id={0} price={1}".format(listing.get("listing_id"), price)
1347+
1348+
12541349
def _format_inventory_items(payload: dict) -> str:
12551350
return "items={0} total_inventory_count={1} pages={2}".format(
12561351
len(payload.get("items", [])),

0 commit comments

Comments
 (0)