Откатили выбор рандомной записи

This commit is contained in:
MpakobecEx 2026-05-28 00:10:49 +05:00
parent bd42af67aa
commit effc32baab
1 changed files with 7 additions and 10 deletions

View File

@ -50,11 +50,10 @@ def add_record(record_type: str, phone: str = None, qr_code: str = None, qr_data
def get_random_record():
"""Возвращает случайную запись из тех, у кого минимальный usage_count (с ограничением выборки)"""
"""Возвращает случайную запись из 10 самых старых по created_at или used_at"""
with sqlite3.connect(DB_NAME) as conn:
conn.row_factory = sqlite3.Row
# Общее количество записей
total_count = conn.execute("SELECT COUNT(*) as count FROM records").fetchone()["count"]
if total_count == 0:
@ -66,20 +65,18 @@ def get_random_record():
else:
limit = max(10, min(50, int(total_count * 0.2)))
# Находим минимальный usage_count
min_usage = conn.execute("SELECT MIN(usage_count) as min_usage FROM records").fetchone()["min_usage"]
# Берём записи с минимальным usage_count, но не больше limit
# Берём limit самых старых (по дате создания или последнего использования)
candidates = conn.execute("""
SELECT * FROM records
WHERE usage_count = ?
SELECT *, COALESCE(used_at, created_at) as sort_date
FROM records
ORDER BY sort_date ASC
LIMIT ?
""", (min_usage, limit)).fetchall()
""", (limit,)).fetchall()
if not candidates:
return None
# Из них выбираем случайную
# Из них выбираем случайный
selected = random.choice(candidates)
# Обновляем счётчик и дату использования