diff options
Diffstat (limited to 'nextcloud_users')
-rw-r--r-- | nextcloud_users | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/nextcloud_users b/nextcloud_users new file mode 100644 index 0000000..fce9c73 --- /dev/null +++ b/nextcloud_users @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import requests +import sys + +URL = 'https://URL.TO.YOUR.NEXTCLOUD.tld/ocs/v2.php/apps/serverinfo/api/v1/info' +auth = ('username', 'password or logintoken') + + +class NextcloudUsers: + if (sys.argv.__len__() == 2) and (sys.argv[1] == "config"): + print('graph_title Nextcloud User Activity') + print('graph_args --base 1024 -l 0') + print('graph_vlabel connected users') + print('graph_info graph showing the number of connected user') + print('graph_category nextcloud') + + print('last5minutes.label last 5 minutes') + print('last1hour.label last hour') + print('last24hours.label last 24 hours') + else: + # init requests session with specific header and credentials + s = requests.Session() + s.auth = auth + s.headers.update({'Accept': 'application/json'}) + + # request data from api + r = s.get(URL) + + # if status code is successful continue + if r.status_code == 200: + api_response = r.json() + users = api_response['ocs']['data']['activeUsers'] + + result = list() + for key in users.keys(): + result.append(str(key) + ".value " + str(users[key])) + print("\n".join(result)) + + elif r.status_code == 996: + print('server error') + elif r.status_code == 997: + print('not authorized') + elif r.status_code == 998: + print('not found') + else: + print('unknown error') + + +if __name__ == "__main__": + NextcloudUsers() + quit(0) |