updated to receive player message

This commit is contained in:
DigiServer Developer
2025-09-09 15:24:35 +03:00
parent a5ef5749b1
commit 0f34a47fa9
9 changed files with 343 additions and 34 deletions

View File

@@ -1,25 +1,10 @@
# ...existing code...
# Player feedback API
from models.player_feedback import PlayerFeedback
# --- API route to receive player feedback ---
@app.route('/api/player-feedback', methods=['POST'])
def api_player_feedback():
data = request.get_json()
required_fields = ['player_name', 'quickconnect_code', 'message', 'status', 'timestamp']
if not all(field in data for field in required_fields):
return jsonify({'error': 'Missing required fields'}), 400
feedback = PlayerFeedback(
player_name=data['player_name'],
quickconnect_code=data['quickconnect_code'],
message=data['message'],
status=data['status'],
timestamp=data['timestamp'],
playlist_version=data.get('playlist_version'),
error_details=data.get('error_details')
)
db.session.add(feedback)
db.session.commit()
return jsonify({'success': True, 'feedback_id': feedback.id}), 200
# --- API route to receive player feedback ---
import os
import click
import psutil
@@ -121,6 +106,38 @@ login_manager.login_view = 'login'
migrate = Migrate(app, db)
@app.route('/api/player-feedback', methods=['POST'])
def api_player_feedback():
from datetime import datetime
import dateutil.parser
data = request.get_json()
required_fields = ['player_name', 'quickconnect_code', 'message', 'status', 'timestamp']
if not all(field in data for field in required_fields):
return jsonify({'error': 'Missing required fields'}), 400
# Convert timestamp string to datetime object
try:
if isinstance(data['timestamp'], str):
timestamp = dateutil.parser.parse(data['timestamp'])
else:
timestamp = data['timestamp']
except (ValueError, TypeError):
return jsonify({'error': 'Invalid timestamp format'}), 400
feedback = PlayerFeedback(
player_name=data['player_name'],
quickconnect_code=data['quickconnect_code'],
message=data['message'],
status=data['status'],
timestamp=timestamp,
playlist_version=data.get('playlist_version'),
error_details=data.get('error_details')
)
db.session.add(feedback)
db.session.commit()
return jsonify({'success': True, 'feedback_id': feedback.id}), 200
# Add error handlers for better user experience
@app.errorhandler(413)
def request_entity_too_large(error):
@@ -352,7 +369,13 @@ def create_user():
def player_page(player_id):
player = db.session.get(Player, player_id)
content = get_player_content(player_id)
return render_template('player_page.html', player=player, content=content)
# Get last 5 feedback entries for this player
player_feedback = PlayerFeedback.query.filter_by(
player_name=player.username
).order_by(PlayerFeedback.timestamp.desc()).limit(5).all()
return render_template('player_page.html', player=player, content=content, player_feedback=player_feedback)
@app.route('/player/<int:player_id>/upload', methods=['POST'])
@login_required