- Finsihed Jellyfin integration with auto-add and auto-remove - Integration toggle in config task: none
138 lines
3.6 KiB
Python
138 lines
3.6 KiB
Python
import configparser
|
|
import os
|
|
from os import environ, path
|
|
from dotenv import load_dotenv
|
|
CONFIG_PATH = 'app/config/config.ini'
|
|
BOT_SECTION = 'bot_envs'
|
|
config = configparser.ConfigParser()
|
|
|
|
CONFIG_KEYS = ['username', 'password', 'discord_bot_token', 'plex_user', 'plex_pass',
|
|
'plex_roles', 'plex_server_name', 'plex_libs', 'owner_id', 'channel_id',
|
|
'auto_remove_user', 'jellyfin_api_key', 'jellyfin_server_url', 'jellyfin_roles',
|
|
'jellyfin_libs', 'plex_enabled', 'jellyfin_enabled']
|
|
|
|
# settings
|
|
Discord_bot_token = ""
|
|
plex_roles = None
|
|
PLEXUSER = ""
|
|
PLEXPASS = ""
|
|
PLEX_SERVER_NAME = ""
|
|
Plex_LIBS = None
|
|
JELLYFIN_SERVER_URL = ""
|
|
JELLYFIN_API_KEY = ""
|
|
jellyfin_libs = ""
|
|
jellyfin_roles = None
|
|
|
|
switch = 0
|
|
|
|
|
|
if(path.exists('bot.env')):
|
|
try:
|
|
load_dotenv(dotenv_path='bot.env')
|
|
# settings
|
|
Discord_bot_token = environ.get('discord_bot_token')
|
|
switch = 1
|
|
|
|
except Exception as e:
|
|
pass
|
|
|
|
try:
|
|
Discord_bot_token = str(os.environ['token'])
|
|
switch = 1
|
|
except Exception as e:
|
|
pass
|
|
|
|
if(path.exists(CONFIG_PATH)):
|
|
config = configparser.ConfigParser()
|
|
config.read(CONFIG_PATH)
|
|
|
|
# Get Plex config
|
|
try:
|
|
PLEXUSER = config.get(BOT_SECTION, 'plex_user')
|
|
PLEXPASS = config.get(BOT_SECTION, 'plex_pass')
|
|
PLEX_SERVER_NAME = config.get(BOT_SECTION, 'plex_server_name')
|
|
except:
|
|
print("Could not load plex config")
|
|
|
|
# Get Plex roles config
|
|
try:
|
|
plex_roles = config.get(BOT_SECTION, 'plex_roles')
|
|
except:
|
|
print("Could not get Plex roles config")
|
|
|
|
# Get Plex libs config
|
|
try:
|
|
Plex_LIBS = config.get(BOT_SECTION, 'plex_libs')
|
|
except:
|
|
print("Could not get Plex libs config")
|
|
|
|
|
|
# Get Jellyfin config
|
|
try:
|
|
JELLYFIN_SERVER_URL = config.get(BOT_SECTION, 'jellyfin_server_url')
|
|
JELLYFIN_API_KEY = config.get(BOT_SECTION, "jellyfin_api_key")
|
|
except:
|
|
print("Could not load Jellyfin config")
|
|
|
|
# Get Jellyfin roles config
|
|
try:
|
|
jellyfin_roles = config.get(BOT_SECTION, 'jellyfin_roles')
|
|
except:
|
|
print("Could not get Jellyfin roles config")
|
|
|
|
# Get Jellyfin libs config
|
|
try:
|
|
jellyfin_libs = config.get(BOT_SECTION, 'jellyfin_libs')
|
|
except:
|
|
print("Could not get Jellyfin libs config")
|
|
|
|
# Get Enable config
|
|
try:
|
|
USE_JELLYFIN = config.get(BOT_SECTION, 'jellyfin_enabled')
|
|
except:
|
|
print("Could not get Jellyfin enable config. Defaulting to False")
|
|
USE_Jellyfin = False
|
|
|
|
try:
|
|
USE_PLEX = config.get(BOT_SECTION, "plex_enabled")
|
|
except:
|
|
print("Could not get Plex enable config. Defaulting to False")
|
|
USE_PLEX = False
|
|
|
|
def get_config():
|
|
"""
|
|
Function to return current config
|
|
"""
|
|
try:
|
|
config.read(CONFIG_PATH)
|
|
return config
|
|
except Exception as e:
|
|
print(e)
|
|
print('error in reading config')
|
|
return None
|
|
|
|
|
|
def change_config(key, value):
|
|
"""
|
|
Function to change the key, value pair in config
|
|
"""
|
|
try:
|
|
config = configparser.ConfigParser()
|
|
config.read(CONFIG_PATH)
|
|
except Exception as e:
|
|
print(e)
|
|
print("Cannot Read config.")
|
|
|
|
try:
|
|
config.set(BOT_SECTION, key, str(value))
|
|
except Exception as e:
|
|
config.add_section(BOT_SECTION)
|
|
config.set(BOT_SECTION, key, str(value))
|
|
|
|
try:
|
|
with open(CONFIG_PATH, 'w') as configfile:
|
|
config.write(configfile)
|
|
except Exception as e:
|
|
print(e)
|
|
print("Cannot write to config.")
|