- Added Gravatar Integration

- Realtime Notify & Notify API
- Some bugs fixed
This commit is contained in:
2025-11-22 23:49:00 +01:00
parent 858c98412f
commit 2ef98ce897
17 changed files with 465 additions and 310 deletions

View File

@@ -1,6 +1,6 @@
from flask import Blueprint, redirect, url_for, flash, render_template
from flask import Blueprint, jsonify, redirect, request, url_for, flash, render_template
from flask_login import login_required, current_user
from models import db, Notification
from models import User, db, Notification
from flask_babel import gettext as _
from datetime import datetime, timedelta
@@ -30,4 +30,21 @@ def notifications():
db.session.query(Notification).filter(Notification.created_at < expire_time).delete()
db.session.commit()
notifications = db.session.query(Notification).filter_by(user_id=current_user.id).order_by(Notification.created_at.desc()).all()
return render_template('notifications.html', notifications=notifications)
return render_template('notifications.html', notifications=notifications)
@noti_bp.route('/notifications_api')
@login_required
def notifications_api():
expire_time = datetime.now() - timedelta(days=3)
db.session.query(Notification).filter(Notification.created_at < expire_time).delete()
db.session.commit()
notifications = db.session.query(Notification).filter_by(user_id=current_user.id).order_by(Notification.created_at.desc()).all()
return jsonify(
[
{
'name': User.query.get(n.user_id).username,
'data': n.message,
'timestamp': n.created_at
} for n in notifications
]
)

View File

@@ -101,4 +101,13 @@ def delete_account():
@login_required
def users():
all_users = db.session.query(User).filter(User.id != current_user.id).all()
return render_template('users.html', users=all_users)
return render_template('users.html', users=all_users)
@user_bp.route('/use_gravatar', methods=['POST'])
@login_required
def gravatar():
avatar_url = current_user.avatar()
current_user.profile_pic = avatar_url
db.session.commit()
flash(_('Added Gravatar profile picture.'), 'success')
return redirect(url_for('profil.profile'))