# retoor from molodetz import config from molodetz.services.base import BaseService from molodetz.utils.presence import compute_roster class PresenceService(BaseService): name = "presence" title = "Presence" description = "Publishes the online set from recent account activity." default_interval = 5 min_interval = 2 metrics_interval = 5 def __init__(self): super().__init__() self.roster = [] async def run_once(self): self.roster = compute_roster() def collect_metrics(self): return { "roster": self.roster, "cards": [ {"label": "Online", "value": len(self.roster[: config.PRESENCE_ONLINE_LIMIT])}, {"label": "Tracked", "value": len(self.roster)}, ], "table": None, }