Files
Yodmon/app/yodeck.py
Christoph Gasser 9fc3e97546 Initial commit: Yodmon Yodeck→Zabbix bridge
- Yodeck API poller (every 10 min, paginated, 310 players)
- SQLite persistence (players + activity logs)
- SNMP v2c agent via net-snmp pass_persist
- Zabbix API auto host creation/update (6.0+)
- Flask web dashboard with live player status and log
- Docker deployment with persistent volume
- dev_server.py for local testing without Docker

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 09:31:00 +02:00

26 lines
708 B
Python

import logging
import requests
from app.config import YODECK_API_TOKEN, YODECK_API_BASE
log = logging.getLogger(__name__)
def get_all_screens():
"""Fetch all screens/players from the Yodeck API (handles pagination)."""
if not YODECK_API_TOKEN:
raise RuntimeError("YODECK_API_TOKEN is not configured")
headers = {'Authorization': f'Token {YODECK_API_TOKEN}'}
players = []
url = f'{YODECK_API_BASE}/screens/'
while url:
log.debug("GET %s", url)
resp = requests.get(url, headers=headers, timeout=30)
resp.raise_for_status()
data = resp.json()
players.extend(data.get('results', []))
url = data.get('next')
return players