You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.1 KiB
67 lines
2.1 KiB
from get_argv import config_dir
|
|
|
|
import sqlite3
|
|
import os
|
|
from subliminal import provider_manager
|
|
import collections
|
|
|
|
def load_providers():
|
|
# Get providers list from subliminal
|
|
providers_list = sorted(provider_manager.names())
|
|
|
|
# Open database connection
|
|
db = sqlite3.connect(os.path.join(config_dir, 'db/bazarr.db'), timeout=30)
|
|
c = db.cursor()
|
|
|
|
# Remove unsupported providers
|
|
providers_in_db = c.execute('SELECT name FROM table_settings_providers').fetchall()
|
|
for provider_in_db in providers_in_db:
|
|
if provider_in_db[0] not in providers_list:
|
|
c.execute('DELETE FROM table_settings_providers WHERE name = ?', (provider_in_db[0], ))
|
|
|
|
# Commit changes to database table
|
|
db.commit()
|
|
|
|
# Insert providers in database table
|
|
for provider_name in providers_list:
|
|
c.execute('''INSERT OR IGNORE INTO table_settings_providers(name) VALUES(?)''', (provider_name, ))
|
|
|
|
# Commit changes to database table
|
|
db.commit()
|
|
|
|
# Close database connection
|
|
db.close()
|
|
|
|
|
|
def get_providers():
|
|
db = sqlite3.connect(os.path.join(config_dir, 'db/bazarr.db'), timeout=30)
|
|
c = db.cursor()
|
|
enabled_providers = c.execute("SELECT * FROM table_settings_providers WHERE enabled = 1").fetchall()
|
|
c.close()
|
|
|
|
providers_list = []
|
|
if len(enabled_providers) > 0:
|
|
for provider in enabled_providers:
|
|
providers_list.append(provider[0])
|
|
else:
|
|
providers_list = None
|
|
|
|
return providers_list
|
|
|
|
|
|
def get_providers_auth():
|
|
db = sqlite3.connect(os.path.join(config_dir, 'db/bazarr.db'), timeout=30)
|
|
c = db.cursor()
|
|
enabled_providers = c.execute("SELECT * FROM table_settings_providers WHERE enabled = 1 AND username is not NULL AND password is not NULL").fetchall()
|
|
c.close()
|
|
|
|
providers_auth = collections.defaultdict(dict)
|
|
if len(enabled_providers) > 0:
|
|
for provider in enabled_providers:
|
|
providers_auth[provider[0]] = {}
|
|
providers_auth[provider[0]]['username'] = provider[2]
|
|
providers_auth[provider[0]]['password'] = provider[3]
|
|
else:
|
|
providers_auth = None
|
|
|
|
return providers_auth |