75 lines
1.9 KiB
Python
Executable File
75 lines
1.9 KiB
Python
Executable File
#! /usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# Imports
|
|
import os
|
|
import sys
|
|
import requests
|
|
import time
|
|
import datetime
|
|
import argparse
|
|
|
|
# Constantes
|
|
api_url = 'http://localhost:8080/colibri/stats'
|
|
|
|
# Classes
|
|
class JitsiStats:
|
|
def __init__(self):
|
|
self.datas = requests.get(api_url,timeout=1)
|
|
|
|
def getTimestamp(self):
|
|
return self.datas.json()['current_timestamp']
|
|
|
|
def getVal(self,index):
|
|
for (key,value) in self.datas.json().items():
|
|
if key.lower() == index.lower():
|
|
return value
|
|
|
|
def getStatsList(self):
|
|
liste = []
|
|
for (key,value) in self.datas.json().items():
|
|
t = (key,value)
|
|
liste.append(t)
|
|
return liste
|
|
|
|
# Fonctions
|
|
def runMain():
|
|
retStatus = 3
|
|
restString = 'UNKNOWN serveur jitsi meet, champs inconnu(s)'
|
|
parser = argparse.ArgumentParser( prog = 'getJistiStats', description = 'Sonde pour les salons jitsi-meet',)
|
|
parser.add_argument('-l,--liste', dest="liste", action='store_true')
|
|
parser.add_argument('-f,--field', dest='fields', action='append')
|
|
args = parser.parse_args()
|
|
|
|
stats = JitsiStats()
|
|
|
|
if args.liste is True:
|
|
champs = stats.getStatsList()
|
|
for c in champs:
|
|
print(c)
|
|
sys.exit(0)
|
|
|
|
perfs = ''
|
|
if len(args.fields) == 1:
|
|
fields = []
|
|
for f in args.fields[0].split(','):
|
|
fields.append(f)
|
|
else:
|
|
fields = args.fields
|
|
for field in fields:
|
|
if stats.getVal(field) is not None:
|
|
#print(f"{field}: {stats.getVal(field)}")
|
|
perfs = f"{perfs} {field}={stats.getVal(field)}"
|
|
if perfs != '':
|
|
#perfs = perfs.replace(' ',';')
|
|
restString = f"OK statistiques jitsi-meet {perfs} | {perfs}"
|
|
retStatus = 0
|
|
|
|
return (retStatus,restString)
|
|
|
|
# Principal
|
|
if __name__ == '__main__':
|
|
retStatus,restString = runMain()
|
|
print(restString)
|
|
sys.exit(retStatus)
|