mirror of
https://github.com/Dictionarry-Hub/profilarr.git
synced 2026-01-22 10:51:02 +01:00
- add database setting for language score on imports - add settings container on general tab to let user update the value - improved styling of general settings page to be more like media management page
112 lines
3.7 KiB
Python
112 lines
3.7 KiB
Python
# backend/app/db/queries/settings.py
|
|
from ..connection import get_db
|
|
import logging
|
|
import os
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def get_settings():
|
|
with get_db() as conn:
|
|
result = conn.execute(
|
|
'SELECT key, value FROM settings WHERE key NOT IN ("secret_key")'
|
|
).fetchall()
|
|
settings = {row['key']: row['value'] for row in result}
|
|
return settings if 'gitRepo' in settings else None
|
|
|
|
|
|
def get_secret_key():
|
|
with get_db() as conn:
|
|
result = conn.execute(
|
|
'SELECT value FROM settings WHERE key = "secret_key"').fetchone()
|
|
return result['value'] if result else None
|
|
|
|
|
|
def save_settings(settings_dict):
|
|
with get_db() as conn:
|
|
for key, value in settings_dict.items():
|
|
conn.execute(
|
|
'''
|
|
INSERT INTO settings (key, value, updated_at)
|
|
VALUES (?, ?, CURRENT_TIMESTAMP)
|
|
ON CONFLICT(key) DO UPDATE SET
|
|
value = excluded.value,
|
|
updated_at = CURRENT_TIMESTAMP
|
|
''', (key, value))
|
|
conn.commit()
|
|
|
|
|
|
def update_pat_status():
|
|
"""Update the has_profilarr_pat setting based on current environment."""
|
|
with get_db() as conn:
|
|
profilarr_pat = os.environ.get('PROFILARR_PAT')
|
|
pat_exists = str(bool(profilarr_pat)).lower()
|
|
|
|
# Get current value
|
|
current = conn.execute('SELECT value FROM settings WHERE key = ?',
|
|
('has_profilarr_pat', )).fetchone()
|
|
|
|
conn.execute(
|
|
'''
|
|
INSERT INTO settings (key, value, updated_at)
|
|
VALUES ('has_profilarr_pat', ?, CURRENT_TIMESTAMP)
|
|
ON CONFLICT(key) DO UPDATE SET
|
|
value = ?,
|
|
updated_at = CURRENT_TIMESTAMP
|
|
''', (pat_exists, pat_exists))
|
|
conn.commit()
|
|
|
|
if current is None:
|
|
logger.info(f"PAT status created: {pat_exists}")
|
|
elif current[0] != pat_exists:
|
|
logger.info(
|
|
f"PAT status updated from {current[0]} to {pat_exists}")
|
|
else:
|
|
logger.debug("PAT status unchanged")
|
|
|
|
|
|
def get_language_import_score():
|
|
"""Get the current language import score."""
|
|
with get_db() as conn:
|
|
result = conn.execute(
|
|
'SELECT score FROM language_import_config ORDER BY id DESC LIMIT 1'
|
|
).fetchone()
|
|
return result['score'] if result else -99999
|
|
|
|
|
|
def update_language_import_score(score):
|
|
"""Update the language import score."""
|
|
with get_db() as conn:
|
|
# Get current score first
|
|
current = conn.execute(
|
|
'SELECT score FROM language_import_config ORDER BY id DESC LIMIT 1'
|
|
).fetchone()
|
|
current_score = current['score'] if current else None
|
|
|
|
# Check if record exists
|
|
existing = conn.execute(
|
|
'SELECT id FROM language_import_config ORDER BY id DESC LIMIT 1'
|
|
).fetchone()
|
|
|
|
if existing:
|
|
# Update existing record
|
|
conn.execute(
|
|
'''
|
|
UPDATE language_import_config
|
|
SET score = ?, updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = ?
|
|
''', (score, existing['id']))
|
|
else:
|
|
# Insert new record
|
|
conn.execute(
|
|
'''
|
|
INSERT INTO language_import_config (score, updated_at)
|
|
VALUES (?, CURRENT_TIMESTAMP)
|
|
''', (score,))
|
|
|
|
conn.commit()
|
|
if current_score is not None:
|
|
logger.info(f"Language import score updated from {current_score} to {score}")
|
|
else:
|
|
logger.info(f"Language import score set to: {score}")
|