31 lines
852 B
Python
31 lines
852 B
Python
# retoor <retoor@molodetz.nl>
|
|
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,
|
|
}
|