42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
import asyncio
|
|
from sqlalchemy import select, func
|
|
from app.db.session import SessionLocal
|
|
from app.models.audit import ProcessLog
|
|
from datetime import datetime, timedelta
|
|
|
|
async def generate_morning_report():
|
|
async with SessionLocal() as db:
|
|
# Az elmúlt 24 óra logjai
|
|
yesterday = datetime.now() - timedelta(days=1)
|
|
stmt = select(ProcessLog).where(ProcessLog.start_time >= yesterday)
|
|
res = await db.execute(stmt)
|
|
logs = res.scalars().all()
|
|
|
|
report = f"📊 REGGELI ROBOT JELENTÉS - {datetime.now().date()}\n"
|
|
report += "="*40 + "\n"
|
|
|
|
total_proc = 0
|
|
total_fail = 0
|
|
cleaned_list = []
|
|
|
|
for log in logs:
|
|
total_proc += log.items_processed
|
|
total_fail += log.items_failed
|
|
if "cleaned" in log.details:
|
|
cleaned_list.extend(log.details["cleaned"])
|
|
|
|
report += f"✅ Feldolgozott modellek: {total_proc}\n"
|
|
report += f"❌ Hibás/Sikertelen: {total_fail}\n"
|
|
report += f"🧹 AI névtisztítások száma: {len(cleaned_list)}\n\n"
|
|
|
|
if cleaned_list:
|
|
report += "Példák a tisztított nevekre:\n"
|
|
for item in cleaned_list[:10]: # Csak az első 10-et listázzuk
|
|
report += f" - {item}\n"
|
|
|
|
print(report)
|
|
# Itt hívható az EmailManager.send(...)
|
|
return report
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(generate_morning_report()) |