new market

This commit is contained in:
2026-04-25 16:01:15 +03:00
parent 8a64a7b4fc
commit a143345831
6 changed files with 282 additions and 8 deletions

View File

@@ -101,6 +101,8 @@ def get_pending_command():
farm_cmd = _fetch_pending_of_type(c, 'farm_loot', player_id)
farm_upgrade_cmd = _fetch_pending_of_type(c, 'farm_upgrade', player_id)
research_cmd = _fetch_pending_of_type(c, 'research', player_id)
scan_market_cmd = _fetch_pending_of_type(c, 'scan_market', player_id)
accept_market_offer_cmd = _fetch_pending_of_type(c, 'accept_market_offer', player_id)
sync_req = _check_and_reset_sync(c, player_id)
# Also return current farm settings so TM knows loot_option
@@ -119,6 +121,8 @@ def get_pending_command():
'build': build_cmd,
'recruit': recruit_cmd,
'market': market_cmd,
'scan_market': scan_market_cmd,
'accept_market_offer': accept_market_offer_cmd,
'research': research_cmd,
'farm': farm_cmd,
'farm_upgrade': farm_upgrade_cmd,
@@ -202,3 +206,28 @@ def captcha_alert():
conn.commit()
conn.close()
return jsonify({'ok': True})
# ------------------------------------------------------------------
# POST /api/market_data
# Tampermonkey uploads the market scan data.
# ------------------------------------------------------------------
@api.route('/api/market_data', methods=['POST'])
def upload_market_data():
player_id = request.args.get('player_id')
if not player_id:
return jsonify({'error': 'no player_id provided'}), 400
data = request.get_json(silent=True) or {}
kv_key = f'market_data_{player_id}'
conn = get_db()
conn.execute('''
INSERT INTO kv_store (key, value, updated_at)
VALUES (?, ?, ?)
ON CONFLICT(key) DO UPDATE SET
value = excluded.value,
updated_at = excluded.updated_at
''', (kv_key, json.dumps(data), datetime.utcnow().isoformat()))
conn.commit()
conn.close()
return jsonify({'ok': True})