attempt to fix usernames
This commit is contained in:
parent
1b1d066d07
commit
4220ff285e
1 changed files with 22 additions and 10 deletions
32
views_api.py
32
views_api.py
|
|
@ -532,29 +532,41 @@ async def _get_username_from_user_id(user_id: str) -> str:
|
||||||
logger.info(f"[USERNAME] Case 1 result: '{result}'")
|
logger.info(f"[USERNAME] Case 1 result: '{result}'")
|
||||||
return result
|
return result
|
||||||
|
|
||||||
# Case 2: Dashless 32-char UUID - lookup via Castle user settings
|
# Case 2: Dashless 32-char UUID - lookup via Castle user settings, fallback to LNbits
|
||||||
elif len(user_id) == 32 and '-' not in user_id:
|
elif len(user_id) == 32 and '-' not in user_id:
|
||||||
logger.info(f"[USERNAME] Case 2: Dashless UUID format - looking up in Castle user settings")
|
logger.info(f"[USERNAME] Case 2: Dashless UUID format - looking up in Castle user settings")
|
||||||
try:
|
try:
|
||||||
# Get all Castle users (which have full user_ids)
|
# Convert dashless to dashed format
|
||||||
user_settings = await get_all_user_wallet_settings()
|
|
||||||
|
|
||||||
# Convert dashless to dashed format for comparison
|
|
||||||
user_id_with_dashes = f"{user_id[0:8]}-{user_id[8:12]}-{user_id[12:16]}-{user_id[16:20]}-{user_id[20:32]}"
|
user_id_with_dashes = f"{user_id[0:8]}-{user_id[8:12]}-{user_id[12:16]}-{user_id[16:20]}-{user_id[20:32]}"
|
||||||
logger.info(f"[USERNAME] Converted to dashed format: {user_id_with_dashes}")
|
logger.info(f"[USERNAME] Converted to dashed format: {user_id_with_dashes}")
|
||||||
|
|
||||||
# Find matching user
|
# Try Castle settings first
|
||||||
|
user_settings = await get_all_user_wallet_settings()
|
||||||
for setting in user_settings:
|
for setting in user_settings:
|
||||||
if setting.id == user_id_with_dashes:
|
if setting.id == user_id_with_dashes:
|
||||||
logger.info(f"[USERNAME] Found matching user in Castle settings")
|
logger.info(f"[USERNAME] Found matching user in Castle settings")
|
||||||
# Get username from LNbits
|
|
||||||
user = await get_user(setting.id)
|
user = await get_user(setting.id)
|
||||||
result = user.username if user and user.username else f"User-{user_id[:8]}"
|
result = user.username if user and user.username else f"User-{user_id[:8]}"
|
||||||
logger.info(f"[USERNAME] Case 2 result (found): '{result}'")
|
logger.info(f"[USERNAME] Case 2 result (from Castle): '{result}'")
|
||||||
return result
|
return result
|
||||||
|
|
||||||
# No matching user found
|
# Not in Castle settings - try LNbits database directly
|
||||||
logger.info(f"[USERNAME] No matching user found in Castle settings")
|
logger.info(f"[USERNAME] Not in Castle settings, querying LNbits database directly")
|
||||||
|
from lnbits.db import Database
|
||||||
|
db = Database("database")
|
||||||
|
async with db.connect() as conn:
|
||||||
|
row = await conn.fetchone(
|
||||||
|
"SELECT id, username FROM accounts WHERE id = :user_id LIMIT 1",
|
||||||
|
{"user_id": user_id_with_dashes}
|
||||||
|
)
|
||||||
|
logger.info(f"[USERNAME] Database query result: {row}")
|
||||||
|
if row and row["username"]:
|
||||||
|
result = row["username"]
|
||||||
|
logger.info(f"[USERNAME] Case 2 result (from LNbits DB): '{result}'")
|
||||||
|
return result
|
||||||
|
|
||||||
|
# User doesn't exist anywhere
|
||||||
|
logger.info(f"[USERNAME] User not found in LNbits database either")
|
||||||
result = f"User-{user_id[:8]}"
|
result = f"User-{user_id[:8]}"
|
||||||
logger.info(f"[USERNAME] Case 2 result (not found): '{result}'")
|
logger.info(f"[USERNAME] Case 2 result (not found): '{result}'")
|
||||||
return result
|
return result
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue