Varken/Legacy/ombi.py

88 lines
2.7 KiB
Python
Raw Normal View History

# Do not edit this script. Edit configuration.py
2018-08-06 01:11:56 -07:00
import sys
2018-02-09 22:40:32 -08:00
import requests
from datetime import datetime, timezone
from influxdb import InfluxDBClient
2018-08-06 01:11:56 -07:00
import argparse
from argparse import RawTextHelpFormatter
2018-12-01 15:46:56 -08:00
from Legacy import configuration
2018-02-09 22:40:32 -08:00
headers = {'Apikey': configuration.ombi_api_key}
2018-02-09 22:40:32 -08:00
2018-08-06 01:11:56 -07:00
def now_iso():
now_iso = datetime.now(timezone.utc).astimezone().isoformat()
return now_iso
def influx_sender(influx_payload):
influx = InfluxDBClient(configuration.influxdb_url, configuration.influxdb_port, configuration.influxdb_username,
configuration.influxdb_password, configuration.ombi_influxdb_db_name)
influx.write_points(influx_payload)
def get_total_requests():
get_tv_requests = requests.get('{}/api/v1/Request/tv'.format(configuration.ombi_url), headers=headers).json()
get_movie_requests = requests.get('{}/api/v1/Request/movie'.format(configuration.ombi_url), headers=headers).json()
count_movie_requests = 0
count_tv_requests = 0
for show in get_tv_requests:
count_tv_requests += 1
for movie in get_movie_requests:
count_movie_requests += 1
2018-02-09 22:40:32 -08:00
2018-08-06 01:11:56 -07:00
influx_payload = [
{
"measurement": "Ombi",
"tags": {
"type": "Request_Total"
},
"time": now_iso(),
"fields": {
"total": count_movie_requests + count_tv_requests
}
}
]
return influx_payload
def get_request_counts():
get_request_counts = requests.get('{}/api/v1/Request/count'.format(configuration.ombi_url), headers=headers).json()
2018-02-09 22:40:32 -08:00
2018-08-06 01:11:56 -07:00
influx_payload = [
{
2018-02-09 23:46:58 -08:00
"measurement": "Ombi",
2018-08-06 01:11:56 -07:00
"tags": {
"type": "Request_Counts"
},
"time": now_iso(),
"fields": {
"pending": int(get_request_counts['pending']),
"approved": int(get_request_counts['approved']),
"available": int(get_request_counts['available'])
}
2018-02-09 22:40:32 -08:00
}
2018-08-06 01:11:56 -07:00
]
return influx_payload
if __name__ == "__main__":
parser = argparse.ArgumentParser(prog='Ombi stats operations',
description='Script to aid in data gathering from Ombi', formatter_class=RawTextHelpFormatter)
parser.add_argument("--total", action='store_true',
help='Get the total count of all requests')
parser.add_argument("--counts", action='store_true',
help='Get the count of pending, approved, and available requests')
opts = parser.parse_args()
if opts.total:
influx_sender(get_total_requests())
2018-02-09 22:40:32 -08:00
2018-08-06 01:11:56 -07:00
elif opts.counts:
influx_sender(get_request_counts())
2018-02-09 22:40:32 -08:00
2018-08-06 01:11:56 -07:00
elif len(sys.argv) == 1:
parser.print_help(sys.stderr)
sys.exit(1)