Add streak display to overview window

This commit is contained in:
Al Ali 2025-06-16 20:31:59 +02:00
parent 9cbe27f9db
commit bf77c0b974

View file

@ -1,29 +0,0 @@
from datetime import datetime, timedelta
def analyze_activity(col) -> dict:
"""Analysiert die Aktivität der letzten 30 Tage anhand des Revlogs."""
cutoff = (col.sched.day_cutoff - 86400 * 30) * 1000
# Hol alle Review-Einträge der letzten 30 Tage
rows = col.db.all("""
SELECT id FROM revlog
WHERE id > ? AND type IN (0, 1, 2, 3, 4)
""", cutoff)
# Extrahiere das Datum aus den IDs (ms seit Unix-Zeit)
dates = [datetime.fromtimestamp(row[0] / 1000).date() for row in rows]
# Zähle, an wie vielen Tagen es Aktivität gab
day_counts = {}
for date in dates:
day_counts[date] = day_counts.get(date, 0) + 1
active_days = len(day_counts)
total_reviews = sum(day_counts.values())
average = total_reviews / 30
low_days = sum(1 for v in day_counts.values() if v < 20)
return {
"active_days": active_days,
"average_per_day": round(average, 1),
"low_days": low_days,
}