KI-Tracking vollständig, Cloud-Limit 20/Woche, Statusmail täglich 06:00 — SW by-v434, APP_VER 413
- ki.complete() zählt sich selbst (user_id-Parameter, _track_usage) - CLOUD_WEEKLY_LIMIT=20, geprüft vor jedem Cloud-Call - user_id durchgereicht in health, diary, knigge, notes, ki-route - Admin-Panel: 7-Tage-Ansicht, Limit-Info, Top-Cloud-User-Tabelle - Statusmail täglich 06:00 CEST statt alle 2h
This commit is contained in:
parent
85836e4e6e
commit
570dcd4e93
11 changed files with 135 additions and 78 deletions
|
|
@ -149,41 +149,45 @@ async def stats(user=Depends(require_mod)):
|
|||
).fetchall()
|
||||
}
|
||||
|
||||
# KI-Trainer Nutzung
|
||||
# KI-Nutzung
|
||||
try:
|
||||
from ki import CLOUD_WEEKLY_LIMIT
|
||||
ki_today = conn.execute(
|
||||
"SELECT COALESCE(SUM(count),0) FROM ki_daily_calls WHERE date=DATE('now')"
|
||||
).fetchone()[0]
|
||||
ki_week = conn.execute(
|
||||
"SELECT COALESCE(SUM(count),0) FROM ki_daily_calls WHERE date>=DATE('now','-6 days')"
|
||||
).fetchone()[0]
|
||||
ki_month = conn.execute(
|
||||
"SELECT COALESCE(SUM(count),0) FROM ki_daily_calls WHERE date>=DATE('now','start of month')"
|
||||
).fetchone()[0]
|
||||
ki_users_today = conn.execute(
|
||||
"SELECT COUNT(DISTINCT user_id) FROM ki_daily_calls WHERE date=DATE('now')"
|
||||
).fetchone()[0]
|
||||
# Aufschlüsselung nach Quelle (heute)
|
||||
_src_today = {
|
||||
# Aufschlüsselung nach Quelle (diese Woche)
|
||||
_src_week = {
|
||||
r[0]: r[1] for r in conn.execute(
|
||||
"SELECT source, COALESCE(SUM(count),0) FROM ki_daily_calls "
|
||||
"WHERE date=DATE('now') GROUP BY source"
|
||||
"WHERE date>=DATE('now','-6 days') GROUP BY source"
|
||||
).fetchall()
|
||||
}
|
||||
ki_cloud_today = _src_today.get("cloud", 0)
|
||||
ki_local_today = _src_today.get("local", 0)
|
||||
ki_luna_today = _src_today.get("luna", 0)
|
||||
# Aufschlüsselung nach Quelle (Monat)
|
||||
_src_month = {
|
||||
r[0]: r[1] for r in conn.execute(
|
||||
"SELECT source, COALESCE(SUM(count),0) FROM ki_daily_calls "
|
||||
"WHERE date>=DATE('now','start of month') GROUP BY source"
|
||||
ki_cloud_week = _src_week.get("cloud", 0)
|
||||
ki_local_week = _src_week.get("local", 0)
|
||||
ki_luna_week = _src_week.get("luna", 0)
|
||||
# Top-User Cloud diese Woche
|
||||
ki_top_users = [
|
||||
{"user_id": r[0], "name": r[1], "cloud_calls": r[2]} for r in conn.execute(
|
||||
"""SELECT k.user_id, u.name, SUM(k.count) as n
|
||||
FROM ki_daily_calls k JOIN users u ON u.id=k.user_id
|
||||
WHERE k.source='cloud' AND k.date>=DATE('now','-6 days')
|
||||
GROUP BY k.user_id ORDER BY n DESC LIMIT 10"""
|
||||
).fetchall()
|
||||
}
|
||||
ki_cloud_month = _src_month.get("cloud", 0)
|
||||
ki_local_month = _src_month.get("local", 0)
|
||||
ki_luna_month = _src_month.get("luna", 0)
|
||||
]
|
||||
except Exception:
|
||||
ki_today = ki_month = ki_users_today = 0
|
||||
ki_cloud_today = ki_local_today = ki_luna_today = 0
|
||||
ki_cloud_month = ki_local_month = ki_luna_month = 0
|
||||
from ki import CLOUD_WEEKLY_LIMIT
|
||||
ki_today = ki_week = ki_month = ki_users_today = 0
|
||||
ki_cloud_week = ki_local_week = ki_luna_week = 0
|
||||
ki_top_users = []
|
||||
|
||||
# Ausstehende Wiki-Foto-Einreichungen
|
||||
try:
|
||||
|
|
@ -245,15 +249,15 @@ async def stats(user=Depends(require_mod)):
|
|||
"osm_total": osm_total,
|
||||
"osm_tiles": osm_tiles,
|
||||
"osm_by_type": osm_by_type,
|
||||
"ki_today": ki_today,
|
||||
"ki_month": ki_month,
|
||||
"ki_users_today": ki_users_today,
|
||||
"ki_cloud_today": ki_cloud_today,
|
||||
"ki_local_today": ki_local_today,
|
||||
"ki_luna_today": ki_luna_today,
|
||||
"ki_cloud_month": ki_cloud_month,
|
||||
"ki_local_month": ki_local_month,
|
||||
"ki_luna_month": ki_luna_month,
|
||||
"ki_today": ki_today,
|
||||
"ki_week": ki_week,
|
||||
"ki_month": ki_month,
|
||||
"ki_users_today": ki_users_today,
|
||||
"ki_cloud_week": ki_cloud_week,
|
||||
"ki_local_week": ki_local_week,
|
||||
"ki_luna_week": ki_luna_week,
|
||||
"ki_cloud_weekly_limit": CLOUD_WEEKLY_LIMIT,
|
||||
"ki_top_users": ki_top_users,
|
||||
"social_total": social_total,
|
||||
"social_published": social_published,
|
||||
"social_scheduled": social_scheduled,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue