הראה קוד מקור ל activity_reporter

"""
קובץ פשוט לדיווח פעילות - העתק את הקובץ הזה לכל בוט
"""
from pymongo import MongoClient
from datetime import datetime, timezone


[תיעוד] class SimpleActivityReporter:
[תיעוד] def __init__(self, mongodb_uri, service_id, service_name=None): """ mongodb_uri: חיבור למונגו (אותו מהבוט המרכזי) service_id: מזהה השירות ב-Render service_name: שם הבוט (אופציונלי) """ try: self.client = MongoClient(mongodb_uri, tz_aware=True, tzinfo=timezone.utc) self.db = self.client["render_bot_monitor"] self.service_id = service_id self.service_name = service_name or service_id self.connected = True except Exception: self.connected = False print("⚠️ לא ניתן להתחבר למונגו - פעילות לא תירשם")
[תיעוד] def report_activity(self, user_id): """דיווח פעילות פשוט""" if not self.connected: return try: now = datetime.now(timezone.utc) # עדכון אינטראקציית המשתמש self.db.user_interactions.update_one( {"service_id": self.service_id, "user_id": user_id}, { "$set": {"last_interaction": now}, "$inc": {"interaction_count": 1}, "$setOnInsert": {"created_at": now} }, upsert=True ) # עדכון פעילות השירות self.db.service_activity.update_one( {"_id": self.service_id}, { "$set": { "last_user_activity": now, "service_name": self.service_name, "updated_at": now }, "$setOnInsert": { "created_at": now, "status": "active", "total_users": 0, "suspend_count": 0 } }, upsert=True ) except Exception: # שקט - אל תיכשל את הבוט אם יש בעיה pass
# דוגמה לשימוש קל
[תיעוד] def create_reporter(mongodb_uri, service_id, service_name=None): """יצירת reporter פשוט""" return SimpleActivityReporter(mongodb_uri, service_id, service_name)