blueprint function
This commit is contained in:
@@ -178,11 +178,13 @@ def get_towns():
|
||||
player_id = request.args.get('player_id')
|
||||
conn = get_db()
|
||||
rows = conn.execute('''
|
||||
SELECT town_id, town_name, player, player_id, alliance_id,
|
||||
world_id, x, y, sea, data, updated_at
|
||||
FROM town_state
|
||||
WHERE player_id = ?
|
||||
ORDER BY town_name ASC
|
||||
SELECT ts.town_id, ts.town_name, ts.player, ts.player_id, ts.alliance_id,
|
||||
ts.world_id, ts.x, ts.y, ts.sea, ts.data, ts.updated_at,
|
||||
tb.blueprint_name, tb.is_active as blueprint_active
|
||||
FROM town_state ts
|
||||
LEFT JOIN town_blueprints tb ON ts.town_id = tb.town_id AND tb.is_active = 1
|
||||
WHERE ts.player_id = ?
|
||||
ORDER BY ts.town_name ASC
|
||||
''', (player_id, )).fetchall()
|
||||
conn.close()
|
||||
|
||||
@@ -220,11 +222,51 @@ def get_towns():
|
||||
'bonuses': d.get('bonuses', {}),
|
||||
'wonder_points': d.get('wonder_points', 0),
|
||||
'total_points': d.get('total_points', 0),
|
||||
'alliance_name': d.get('alliance_name', None)
|
||||
'alliance_name': d.get('alliance_name', None),
|
||||
'blueprint_name': row['blueprint_name'],
|
||||
'blueprint_active': bool(row['blueprint_active'])
|
||||
})
|
||||
return jsonify(towns)
|
||||
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# POST /dashboard/blueprints
|
||||
# Toggle a blueprint for a specific town
|
||||
# ------------------------------------------------------------------
|
||||
@dashboard.route('/dashboard/blueprints', methods=['POST'])
|
||||
@login_required
|
||||
def toggle_blueprint():
|
||||
data = request.get_json(silent=True) or {}
|
||||
town_id = data.get('town_id')
|
||||
blueprint_name = data.get('blueprint_name', 'Standard Growth')
|
||||
|
||||
if not town_id:
|
||||
return jsonify({'error': 'missing town_id'}), 400
|
||||
|
||||
conn = get_db()
|
||||
|
||||
# Check if currently active
|
||||
row = conn.execute('SELECT is_active FROM town_blueprints WHERE town_id = ?', (town_id,)).fetchone()
|
||||
|
||||
new_state = 1
|
||||
if row and row['is_active'] == 1:
|
||||
new_state = 0 # Toggle off
|
||||
|
||||
conn.execute('''
|
||||
INSERT INTO town_blueprints (town_id, blueprint_name, is_active, updated_at)
|
||||
VALUES (?, ?, ?, ?)
|
||||
ON CONFLICT(town_id) DO UPDATE SET
|
||||
blueprint_name = excluded.blueprint_name,
|
||||
is_active = excluded.is_active,
|
||||
updated_at = excluded.updated_at
|
||||
''', (town_id, blueprint_name, new_state, datetime.utcnow().isoformat()))
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
return jsonify({'ok': True, 'is_active': bool(new_state), 'blueprint_name': blueprint_name})
|
||||
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# GET /dashboard/client-status
|
||||
# Returns whether the Tampermonkey client is considered online.
|
||||
|
||||
Reference in New Issue
Block a user