fix: onsale now uses collectible_item_id via PATCH; add collectible_item_id to queue

This commit is contained in:
2026-03-07 12:57:21 -05:00
parent 51a920abd4
commit 9ba1f7e7f0
2 changed files with 13 additions and 15 deletions
+8 -3
View File
@@ -66,10 +66,15 @@ def init_db():
description TEXT NOT NULL,
group_id INTEGER NOT NULL,
asset_type TEXT NOT NULL,
collectible_item_id TEXT,
retry_count INTEGER DEFAULT 0,
next_retry DATETIME DEFAULT CURRENT_TIMESTAMP
)
""")
try:
cursor.execute("ALTER TABLE onsale_queue ADD COLUMN collectible_item_id TEXT")
except sqlite3.OperationalError:
pass
conn.commit()
def get_uploaded_asset(image_hash: str, asset_type: int) -> Optional[int]:
@@ -96,13 +101,13 @@ def save_uploaded_asset(image_hash: str, asset_type: int, original_asset_id: int
)
conn.commit()
def add_to_onsale_queue(asset_id: int, original_asset_id: int, name: str, description: str, group_id: int, asset_type: str):
def add_to_onsale_queue(asset_id: int, original_asset_id: int, name: str, description: str, group_id: int, asset_type: str, collectible_item_id: str | None = None):
"""Adds an asset to the onsale retry queue."""
with sqlite3.connect(DB_PATH) as conn:
cursor = conn.cursor()
cursor.execute(
"INSERT INTO onsale_queue (asset_id, original_asset_id, name, description, group_id, asset_type) VALUES (?, ?, ?, ?, ?, ?)",
(asset_id, original_asset_id, name, description, group_id, asset_type)
"INSERT INTO onsale_queue (asset_id, original_asset_id, name, description, group_id, asset_type, collectible_item_id) VALUES (?, ?, ?, ?, ?, ?, ?)",
(asset_id, original_asset_id, name, description, group_id, asset_type, collectible_item_id)
)
conn.commit()
+5 -12
View File
@@ -97,12 +97,8 @@ async def process_onsale_queue():
f"Retrying onsale for asset {item['asset_id']} (Attempt {item['retry_count'] + 1})"
)
try:
await roblox_onsale.onsale_asset(
item["asset_id"],
item["name"],
item["description"],
item["group_id"],
)
collectible_item_id = item["collectible_item_id"] or await roblox_onsale.get_collectible_item_id(item["asset_id"])
await roblox_onsale.onsale_asset(collectible_item_id)
database.remove_from_onsale_queue(item["id"])
print(
f"Successfully put asset {item['asset_id']} on sale via queue."
@@ -206,13 +202,9 @@ async def reupload_asset(asset_id: int, _: str = Depends(verify_api_key)):
)
await asyncio.sleep(5)
collectible_item_id = await roblox_onsale.get_collectible_item_id(new_asset_id)
try:
await roblox_onsale.onsale_asset(
new_asset_id,
asset.name,
new_description,
int(TARGET),
)
await roblox_onsale.onsale_asset(collectible_item_id)
except RateLimitError:
print(
f"Rate limit hit for asset {new_asset_id}, adding to retry queue."
@@ -227,6 +219,7 @@ async def reupload_asset(asset_id: int, _: str = Depends(verify_api_key)):
new_description,
int(TARGET),
asset_type_name,
collectible_item_id,
)
return {
"uploaded": uploaded,