refactor: optimize structure, stability and runtime performance
This commit is contained in:
27
db/email.py
27
db/email.py
@@ -5,6 +5,27 @@ from __future__ import annotations
|
||||
import db_pool
|
||||
|
||||
|
||||
def _to_bool_with_default(value, default: bool = True) -> bool:
|
||||
if value is None:
|
||||
return default
|
||||
try:
|
||||
return bool(int(value))
|
||||
except Exception:
|
||||
try:
|
||||
return bool(value)
|
||||
except Exception:
|
||||
return default
|
||||
|
||||
|
||||
def _normalize_notify_enabled(enabled) -> int:
|
||||
if isinstance(enabled, bool):
|
||||
return 1 if enabled else 0
|
||||
try:
|
||||
return 1 if int(enabled) else 0
|
||||
except Exception:
|
||||
return 1
|
||||
|
||||
|
||||
def get_user_by_email(email):
|
||||
"""根据邮箱获取用户"""
|
||||
with db_pool.get_db() as conn:
|
||||
@@ -25,7 +46,7 @@ def update_user_email(user_id, email, verified=False):
|
||||
SET email = ?, email_verified = ?
|
||||
WHERE id = ?
|
||||
""",
|
||||
(email, int(verified), user_id),
|
||||
(email, 1 if verified else 0, user_id),
|
||||
)
|
||||
conn.commit()
|
||||
return cursor.rowcount > 0
|
||||
@@ -42,7 +63,7 @@ def update_user_email_notify(user_id, enabled):
|
||||
SET email_notify_enabled = ?
|
||||
WHERE id = ?
|
||||
""",
|
||||
(int(enabled), user_id),
|
||||
(_normalize_notify_enabled(enabled), user_id),
|
||||
)
|
||||
conn.commit()
|
||||
return cursor.rowcount > 0
|
||||
@@ -57,6 +78,6 @@ def get_user_email_notify(user_id):
|
||||
row = cursor.fetchone()
|
||||
if row is None:
|
||||
return True
|
||||
return bool(row[0]) if row[0] is not None else True
|
||||
return _to_bool_with_default(row[0], default=True)
|
||||
except Exception:
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user