ba44a15891
Code cosmetics #75: - More debug infos for kindlegen and sending e-mail. - Button for sending test e-mail. - timeout of 5min for sending e-mail
97 lines
3.5 KiB
Python
Executable file
97 lines
3.5 KiB
Python
Executable file
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import sys
|
|
from configobj import ConfigObj
|
|
|
|
CONFIG_FILE = os.path.join(os.path.normpath(os.path.dirname(os.path.realpath(__file__))+os.sep+".."+os.sep), "config.ini")
|
|
CFG = ConfigObj(CONFIG_FILE)
|
|
CFG.encoding = 'UTF-8'
|
|
|
|
|
|
def CheckSection(sec):
|
|
""" Check if INI section exists, if not create it """
|
|
try:
|
|
CFG[sec]
|
|
return True
|
|
except:
|
|
CFG[sec] = {}
|
|
return False
|
|
|
|
|
|
def check_setting_str(config, cfg_name, item_name, def_val, log=True):
|
|
try:
|
|
my_val = config[cfg_name][item_name].decode('UTF-8')
|
|
if my_val == u"":
|
|
my_val = def_val
|
|
config[cfg_name][item_name] = my_val
|
|
except:
|
|
my_val = def_val
|
|
try:
|
|
config[cfg_name][item_name] = my_val
|
|
except:
|
|
config[cfg_name] = {}
|
|
config[cfg_name][item_name] = my_val
|
|
return my_val
|
|
|
|
|
|
def check_setting_int(config, cfg_name, item_name, def_val):
|
|
try:
|
|
my_val = int(config[cfg_name][item_name])
|
|
except:
|
|
my_val = def_val
|
|
try:
|
|
config[cfg_name][item_name] = my_val
|
|
except:
|
|
config[cfg_name] = {}
|
|
config[cfg_name][item_name] = my_val
|
|
return my_val
|
|
|
|
CheckSection('General')
|
|
DB_ROOT = check_setting_str(CFG, 'General', 'DB_ROOT', "")
|
|
APP_DB_ROOT = check_setting_str(CFG, 'General', 'APP_DB_ROOT', os.getcwd())
|
|
MAIN_DIR = check_setting_str(CFG, 'General', 'MAIN_DIR', os.getcwd())
|
|
LOG_DIR = check_setting_str(CFG, 'General', 'LOG_DIR', os.getcwd())
|
|
PORT = check_setting_int(CFG, 'General', 'PORT', 8083)
|
|
NEWEST_BOOKS = check_setting_str(CFG, 'General', 'NEWEST_BOOKS', 60)
|
|
RANDOM_BOOKS = check_setting_int(CFG, 'General', 'RANDOM_BOOKS', 4)
|
|
|
|
CheckSection('Advanced')
|
|
TITLE_REGEX = check_setting_str(CFG, 'Advanced', 'TITLE_REGEX', '^(A|The|An|Der|Die|Das|Den|Ein|Eine|Einen|Dem|Des|Einem|Eines)\s+')
|
|
DEVELOPMENT = bool(check_setting_int(CFG, 'Advanced', 'DEVELOPMENT', 0))
|
|
PUBLIC_REG = bool(check_setting_int(CFG, 'Advanced', 'PUBLIC_REG', 0))
|
|
UPLOADING = bool(check_setting_int(CFG, 'Advanced', 'UPLOADING', 0))
|
|
ANON_BROWSE = bool(check_setting_int(CFG, 'Advanced', 'ANON_BROWSE', 0))
|
|
|
|
SYS_ENCODING = "UTF-8"
|
|
|
|
if DB_ROOT == "":
|
|
print "Calibre database directory (DB_ROOT) is not configured"
|
|
sys.exit(1)
|
|
|
|
configval = {"DB_ROOT": DB_ROOT, "APP_DB_ROOT": APP_DB_ROOT, "MAIN_DIR": MAIN_DIR, "LOG_DIR": LOG_DIR, "PORT": PORT,
|
|
"NEWEST_BOOKS": NEWEST_BOOKS, "DEVELOPMENT": DEVELOPMENT, "TITLE_REGEX": TITLE_REGEX,
|
|
"PUBLIC_REG": PUBLIC_REG, "UPLOADING": UPLOADING, "ANON_BROWSE": ANON_BROWSE}
|
|
|
|
|
|
def save_config(configval):
|
|
new_config = ConfigObj(encoding='UTF-8')
|
|
new_config.filename = CONFIG_FILE
|
|
new_config['General'] = {}
|
|
new_config['General']['DB_ROOT'] = configval["DB_ROOT"]
|
|
new_config['General']['APP_DB_ROOT'] = configval["APP_DB_ROOT"]
|
|
new_config['General']['MAIN_DIR'] = configval["MAIN_DIR"]
|
|
new_config['General']['LOG_DIR'] = configval["LOG_DIR"]
|
|
new_config['General']['PORT'] = configval["PORT"]
|
|
new_config['General']['NEWEST_BOOKS'] = configval["NEWEST_BOOKS"]
|
|
new_config['Advanced'] = {}
|
|
new_config['Advanced']['TITLE_REGEX'] = configval["TITLE_REGEX"]
|
|
new_config['Advanced']['DEVELOPMENT'] = int(configval["DEVELOPMENT"])
|
|
new_config['Advanced']['PUBLIC_REG'] = int(configval["PUBLIC_REG"])
|
|
new_config['Advanced']['UPLOADING'] = int(configval["UPLOADING"])
|
|
new_config['Advanced']['ANON_BROWSE'] = int(configval["ANON_BROWSE"])
|
|
new_config.write()
|
|
return "Saved"
|
|
|
|
save_config(configval)
|