45 lines
1.8 KiB
Python
45 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Description: Sync Tautulli friendly names with Ombi aliases (Tautulli as master)
|
|
Author: DirtyCajunRice
|
|
Requires: requests, python3.6+
|
|
"""
|
|
from requests import Session
|
|
from plexapi.server import CONFIG
|
|
from urllib3 import disable_warnings
|
|
from urllib3.exceptions import InsecureRequestWarning
|
|
|
|
OMBI_BASEURL = ''
|
|
OMBI_APIKEY = ''
|
|
|
|
TAUTULLI_BASEURL = ''
|
|
TAUTULLI_APIKEY = ''
|
|
|
|
# Dont Edit Below #
|
|
TAUTULLI_BASEURL = TAUTULLI_BASEURL or CONFIG.data['auth'].get('tautulli_baseurl')
|
|
TAUTULLI_APIKEY = TAUTULLI_APIKEY or CONFIG.data['auth'].get('tautulli_apikey')
|
|
OMBI_BASEURL = OMBI_BASEURL or CONFIG.data['auth'].get('ombi_baseurl')
|
|
OMBI_APIKEY = OMBI_APIKEY or CONFIG.data['auth'].get('ombi_apikey')
|
|
|
|
disable_warnings(InsecureRequestWarning)
|
|
SESSION = Session()
|
|
SESSION.verify = False
|
|
|
|
HEADERS = {'apiKey': OMBI_APIKEY}
|
|
PARAMS = {'apikey': TAUTULLI_APIKEY, 'cmd': 'get_users'}
|
|
|
|
TAUTULLI_USERS = SESSION.get('{}/api/v2'.format(TAUTULLI_BASEURL.rstrip('/')), params=PARAMS).json()['response']['data']
|
|
TAUTULLI_MAPPED = {user['username']: user['friendly_name'] for user in TAUTULLI_USERS
|
|
if user['user_id'] != 0 and user['friendly_name']}
|
|
OMBI_USERS = SESSION.get('{}/api/v1/Identity/Users'.format(OMBI_BASEURL.rstrip('/')), headers=HEADERS).json()
|
|
|
|
for user in OMBI_USERS:
|
|
if user['userName'] in TAUTULLI_MAPPED and user['alias'] != TAUTULLI_MAPPED[user['userName']]:
|
|
print("{}'s alias in Tautulli ({}) is being updated in Ombi from {}".format(
|
|
user['userName'], TAUTULLI_MAPPED[user['userName']], user['alias'] or 'empty'
|
|
))
|
|
user['alias'] = TAUTULLI_MAPPED[user['userName']]
|
|
put = SESSION.put('{}/api/v1/Identity'.format(OMBI_BASEURL.rstrip('/')), json=user, headers=HEADERS)
|
|
if put.status_code != 200:
|
|
print('Error updating {}'.format(user['userName']))
|