mirror of
https://github.com/ankitects/anki.git
synced 2026-01-13 22:13:58 -05:00
Add streak display to overview window
This commit is contained in:
parent
9cbe27f9db
commit
bf77c0b974
1 changed files with 0 additions and 29 deletions
|
|
@ -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,
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue