Skip to content

Commit 1b745e4

Browse files
committed
fix: gamepasses and devproducts not having icons
1 parent b400aba commit 1b745e4

3 files changed

Lines changed: 23 additions & 0 deletions

File tree

Source/assets/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ def resolve_asset_query(self, query: dict[str, str]) -> int | str | None:
112112
(query.get('id'), self.resolve_asset_id),
113113
(query.get('aid'), self.resolve_asset_id),
114114
(query.get('AssetID'), self.resolve_asset_id),
115+
(query.get('assetid'), self.resolve_asset_id),
116+
(query.get('assetId'), self.resolve_asset_id),
115117
(query.get('assetversionid'), self.resolve_asset_version_id),
116118
]
117119

Source/assets/thumbnail.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from . import const, extractor
22
import json
3+
import game_config
34

45
def transform_to_id_num(asset_id: str) -> int:
56
asset_sub = asset_id[len(const.THUMB_PREFIX):-4] # strip .png
@@ -16,6 +17,25 @@ def load_asset(asset_id: str) -> bytes | None:
1617
id = transform_to_id_num(asset_id)
1718
if id == 0:
1819
return None
20+
21+
config = game_config.get_cached_config()
22+
passes = config.remote_data.gamepasses
23+
for gamepass in passes.values():
24+
if gamepass.id_num == id:
25+
if gamepass.icon is None:
26+
# technically we could fetch it from the thumbnails api,
27+
# but gamepass.id_num is usually the product_id, not
28+
# the gamepass_id (which is different)
29+
return None
30+
return gamepass.icon.extract()
31+
32+
products = config.remote_data.devproducts
33+
for product in products.values():
34+
if product.id_num == id:
35+
# same case as gamepasses
36+
if product.icon is None:
37+
return None
38+
return product.icon.extract()
1939

2040
# technically we could also download the decal and parse its contents
2141
# to extract the thumbnail, but that might be overkill

Source/web_server/endpoints/assets.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def _(self: web_server_handler) -> bool:
6161

6262
@server_path('/Game/Tools/ThumbnailAsset.ashx')
6363
@server_path('/Thumbs/Asset.ashx') # we can pass this too since we're calling rbx api regardless
64+
@server_path('/thumbs/asset.ashx')
6465
def _(self: web_server_handler) -> bool:
6566
asset_cache = self.game_config.asset_cache
6667
asset_id = asset_cache.resolve_asset_query(self.query)

0 commit comments

Comments
 (0)