解决超话签到中选择性签到的逻辑问题

This commit is contained in:
2026-04-08 08:34:59 +08:00
parent 31d862dfa0
commit 9e69d34f81
8 changed files with 167 additions and 32 deletions

View File

@@ -1085,7 +1085,9 @@ def account_topics(account_id):
try:
resp = api_request('GET', f'{API_BASE_URL}/api/v1/accounts/{account_id}/topics')
data = resp.json()
topics = data.get('data', {}).get('topics', []) if data.get('success') else []
payload = data.get('data', {}) if data.get('success') else {}
topics = payload.get('topics', [])
selected_topics = payload.get('selected_topics') or []
# 获取账号信息
acc_resp = api_request('GET', f'{API_BASE_URL}/api/v1/accounts/{account_id}')
@@ -1096,12 +1098,32 @@ def account_topics(account_id):
flash('账号不存在', 'danger')
return redirect(url_for('dashboard'))
return render_template('topics.html', account=account, topics=topics, user=session.get('user'))
return render_template('topics.html', account=account, topics=topics, selected_topics=selected_topics, user=session.get('user'))
except Exception as e:
flash(f'获取超话列表失败: {str(e)}', 'danger')
return redirect(url_for('account_detail', account_id=account_id))
@app.route('/accounts/<account_id>/topics/save', methods=['POST'])
@login_required
def save_topics(account_id):
"""保存用户选择的签到超话"""
try:
body = request.json
resp = api_request(
'PUT',
f'{API_BASE_URL}/api/v1/accounts/{account_id}/topics',
json=body,
)
data = resp.json()
if data.get('success'):
return jsonify({'success': True, 'message': data.get('message', '保存成功')})
else:
return jsonify({'success': False, 'message': data.get('message', '保存失败')}), 400
except Exception as e:
return jsonify({'success': False, 'message': str(e)}), 500
@app.route('/accounts/<account_id>/signin-selected', methods=['POST'])
@login_required
def signin_selected(account_id):