feat: Cleanup function layouts for alerts
All checks were successful
Tests and Linting / Tests-Linting (3.11) (push) Successful in 35s
Tests and Linting / Tests-Linting (3.10) (push) Successful in 40s
Tests and Linting / Tests-Linting (3.13) (push) Successful in 37s
Build Docker / Build Images (map[dockerfile:Dockerfile tag_suffix: target:default]) (push) Successful in 51s
Build Docker / Build Images (map[dockerfile:Dockerfile.hsd tag_suffix:-hsd target:hsd]) (push) Successful in 50s
All checks were successful
Tests and Linting / Tests-Linting (3.11) (push) Successful in 35s
Tests and Linting / Tests-Linting (3.10) (push) Successful in 40s
Tests and Linting / Tests-Linting (3.13) (push) Successful in 37s
Build Docker / Build Images (map[dockerfile:Dockerfile tag_suffix: target:default]) (push) Successful in 51s
Build Docker / Build Images (map[dockerfile:Dockerfile.hsd tag_suffix:-hsd target:hsd]) (push) Successful in 50s
This commit is contained in:
42
main.py
42
main.py
@@ -1927,6 +1927,10 @@ def get_alerts(account:str) -> list:
|
|||||||
def add_alert(name:str,output:str,account:str="all"):
|
def add_alert(name:str,output:str,account:str="all"):
|
||||||
"""
|
"""
|
||||||
Add an alert to the notifications database.
|
Add an alert to the notifications database.
|
||||||
|
|
||||||
|
name: Name of the alert
|
||||||
|
output: Message of the alert
|
||||||
|
account: Account to add the alert for (default: all)
|
||||||
"""
|
"""
|
||||||
if not os.path.exists("user_data/notifications.db"):
|
if not os.path.exists("user_data/notifications.db"):
|
||||||
conn = sqlite3.connect("user_data/notifications.db")
|
conn = sqlite3.connect("user_data/notifications.db")
|
||||||
@@ -1945,9 +1949,29 @@ def add_alert(name:str,output:str,account:str="all"):
|
|||||||
print(f"Error adding notification: {e}",flush=True)
|
print(f"Error adding notification: {e}",flush=True)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def dismiss_alert(alert_id:int,account:str="all"):
|
||||||
|
"""
|
||||||
|
Mark an alert as read.
|
||||||
|
|
||||||
|
alert_id: ID of the alert to dismiss
|
||||||
|
account: Account to dismiss the alert for (default: all)
|
||||||
|
"""
|
||||||
|
if not os.path.exists("user_data/notifications.db"):
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
conn = sqlite3.connect("user_data/notifications.db")
|
||||||
|
c = conn.cursor()
|
||||||
|
c.execute("UPDATE notifications SET read=1 WHERE id=?", (alert_id,))
|
||||||
|
conn.commit()
|
||||||
|
conn.close()
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error dismissing notification: {e}",flush=True)
|
||||||
|
pass
|
||||||
|
|
||||||
@app.route('/dismiss/<int:alert_id>')
|
@app.route('/dismiss/<int:alert_id>')
|
||||||
@app.route('/api/v1/dismiss/<int:alert_id>')
|
@app.route('/api/v1/dismiss/<int:alert_id>')
|
||||||
def dismiss_alert(alert_id):
|
def dismiss_alert_route(alert_id):
|
||||||
# Check if the user is logged in
|
# Check if the user is logged in
|
||||||
if request.cookies.get("account") is None:
|
if request.cookies.get("account") is None:
|
||||||
return redirect("/login")
|
return redirect("/login")
|
||||||
@@ -1956,20 +1980,8 @@ def dismiss_alert(alert_id):
|
|||||||
if not account:
|
if not account:
|
||||||
return redirect("/logout")
|
return redirect("/logout")
|
||||||
|
|
||||||
if not os.path.exists("user_data/notifications.db"):
|
dismiss_alert(alert_id,account)
|
||||||
return redirect("/")
|
return redirect(request.referrer or "/")
|
||||||
|
|
||||||
try:
|
|
||||||
conn = sqlite3.connect("user_data/notifications.db")
|
|
||||||
c = conn.cursor()
|
|
||||||
c.execute("UPDATE notifications SET read=1 WHERE id=? AND (account=? OR account='all')", (alert_id,account))
|
|
||||||
conn.commit()
|
|
||||||
conn.close()
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error dismissing notification: {e}",flush=True)
|
|
||||||
pass
|
|
||||||
|
|
||||||
return redirect("/")
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user