Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
|
@@ -1395,22 +1395,42 @@ def admin_suspend_user(uid):
|
|
| 1395 |
@app.route('/api/admin/stories', methods=['GET'])
|
| 1396 |
def admin_list_stories():
|
| 1397 |
try:
|
| 1398 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1399 |
|
| 1400 |
stories_ref = db.reference('stories')
|
| 1401 |
all_stories = stories_ref.get() or {}
|
| 1402 |
total_stories = len(all_stories)
|
| 1403 |
|
| 1404 |
-
|
| 1405 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1406 |
for sid, sdata in all_stories.items():
|
| 1407 |
user_id = sdata.get('uid')
|
| 1408 |
if user_id:
|
| 1409 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1410 |
|
| 1411 |
return jsonify({
|
| 1412 |
'total_stories': total_stories,
|
| 1413 |
-
'stories_per_user':
|
| 1414 |
}), 200
|
| 1415 |
except Exception as e:
|
| 1416 |
return jsonify({'error': str(e)}), 500
|
|
|
|
| 1395 |
@app.route('/api/admin/stories', methods=['GET'])
|
| 1396 |
def admin_list_stories():
|
| 1397 |
try:
|
| 1398 |
+
# Replace with your actual admin verification logic
|
| 1399 |
+
# verify_admin(request.headers.get('Authorization', ''))
|
| 1400 |
+
auth_header = request.headers.get('Authorization', '')
|
| 1401 |
+
# Basic check for demonstration purposes - replace with actual admin verification
|
| 1402 |
+
if not auth_header == "Bearer your_admin_token":
|
| 1403 |
+
return jsonify({'error': 'Unauthorized'}), 401
|
| 1404 |
|
| 1405 |
stories_ref = db.reference('stories')
|
| 1406 |
all_stories = stories_ref.get() or {}
|
| 1407 |
total_stories = len(all_stories)
|
| 1408 |
|
| 1409 |
+
stories_per_user_with_email = {}
|
| 1410 |
+
user_ids = set()
|
| 1411 |
+
for sid, sdata in all_stories.items():
|
| 1412 |
+
user_id = sdata.get('uid')
|
| 1413 |
+
if user_id:
|
| 1414 |
+
user_ids.add(user_id)
|
| 1415 |
+
|
| 1416 |
+
# Fetch user emails in bulk for efficiency
|
| 1417 |
+
users_data = db.reference('users').get() or {}
|
| 1418 |
+
user_emails = {uid: data.get('email') for uid, data in users_data.items() if uid in user_ids}
|
| 1419 |
+
|
| 1420 |
+
# Count stories per user and add email
|
| 1421 |
+
stories_per_user_count = {}
|
| 1422 |
for sid, sdata in all_stories.items():
|
| 1423 |
user_id = sdata.get('uid')
|
| 1424 |
if user_id:
|
| 1425 |
+
stories_per_user_count[user_id] = stories_per_user_count.get(user_id, 0) + 1
|
| 1426 |
+
|
| 1427 |
+
for user_id, count in stories_per_user_count.items():
|
| 1428 |
+
email = user_emails.get(user_id)
|
| 1429 |
+
stories_per_user_with_email[user_id] = {'story_count': count, 'email': email}
|
| 1430 |
|
| 1431 |
return jsonify({
|
| 1432 |
'total_stories': total_stories,
|
| 1433 |
+
'stories_per_user': stories_per_user_with_email
|
| 1434 |
}), 200
|
| 1435 |
except Exception as e:
|
| 1436 |
return jsonify({'error': str(e)}), 500
|