Premier commit
This commit is contained in:
commit
3062472c97
5 changed files with 816 additions and 0 deletions
77
config.py
Normal file
77
config.py
Normal file
|
@ -0,0 +1,77 @@
|
|||
from configobj import ConfigObj
|
||||
import shutil
|
||||
import posixpath
|
||||
|
||||
|
||||
class ConfigError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class Config:
|
||||
"""
|
||||
Gère le fichier de configuration
|
||||
"""
|
||||
def __init__(self):
|
||||
|
||||
try:
|
||||
self.obj = ConfigObj('config.conf', file_error=True)
|
||||
except:
|
||||
# pas de fichier: config par défaut
|
||||
print('creating config file')
|
||||
shutil.copyfile('default.conf', 'config.conf')
|
||||
self.obj = ConfigObj('config.conf')
|
||||
|
||||
self.check_config()
|
||||
print('config loaded')
|
||||
|
||||
@property
|
||||
def domains(self):
|
||||
return list(self.obj['domains'].keys())
|
||||
|
||||
@property
|
||||
def app(self):
|
||||
return self.obj['api']['app']
|
||||
|
||||
@property
|
||||
def token(self):
|
||||
return self.obj['api']['token']
|
||||
|
||||
@property
|
||||
def server(self):
|
||||
return self.obj['api']['server']
|
||||
|
||||
def check_config(self):
|
||||
if not 'api' in self.obj:
|
||||
raise ConfigError("no 'api' section in config file")
|
||||
for k in ['app', 'token', 'extensions', 'server']:
|
||||
if not k in self.obj['api']:
|
||||
raise ConfigError("no '"+k+"' value in config file, subsection 'api'")
|
||||
if not 'domains' in self.obj:
|
||||
raise ConfigError("no 'domains' section in config file")
|
||||
if len(self.obj['domains']) == 0:
|
||||
raise ConfigError("no domains in config file, subsection domains")
|
||||
for d in self.obj['domains']:
|
||||
print('check dom:', d)
|
||||
for k in ['movies', 'series']:
|
||||
if not k in self.obj['domains'][d]:
|
||||
raise ConfigError("no '"+k+"' value in config file, subsection 'domains/"+d+"'")
|
||||
|
||||
def get_serie_dir(self, domain):
|
||||
return self.obj['domains'][domain]['series']
|
||||
|
||||
def get_excluded_serie_dir(self, domain):
|
||||
return self.obj['domains'][domain]['no_series']
|
||||
|
||||
def get_movie_dir(self, domain):
|
||||
return self.obj['domains'][domain]['movies']
|
||||
|
||||
def get_excluded_movie_dir(self, domain):
|
||||
return self.obj['domains'][domain]['no_movies']
|
||||
|
||||
def get_domain(self, domain):
|
||||
return self.obj['domains'][domain]['domain']
|
||||
|
||||
def is_valid_file(self, name):
|
||||
_, ext = posixpath.splitext(name)
|
||||
return ext[1:] in self.obj['api']['extensions']
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue