mirror of
https://github.com/janeczku/calibre-web
synced 2024-12-25 09:30:31 +00:00
Added additional config options
This commit is contained in:
parent
9bc085a23e
commit
0138ff9e16
@ -90,6 +90,6 @@ def stats():
|
|||||||
categorys = db.session.query(db.Tags).count()
|
categorys = db.session.query(db.Tags).count()
|
||||||
series = db.session.query(db.Series).count()
|
series = db.session.query(db.Series).count()
|
||||||
_VERSIONS['ebook converter'] = _(converter.get_calibre_version())
|
_VERSIONS['ebook converter'] = _(converter.get_calibre_version())
|
||||||
_VERSIONS['unrar'] = _(converter.get_version())
|
_VERSIONS['unrar'] = _(converter.get_unrar_version())
|
||||||
return render_title_template('stats.html', bookcounter=counter, authorcounter=authors, versions=_VERSIONS,
|
return render_title_template('stats.html', bookcounter=counter, authorcounter=authors, versions=_VERSIONS,
|
||||||
categorycounter=categorys, seriecounter=series, title=_(u"Statistics"), page="stat")
|
categorycounter=categorys, seriecounter=series, title=_(u"Statistics"), page="stat")
|
||||||
|
@ -534,10 +534,9 @@ def _configuration_update_helper():
|
|||||||
reboot_required |= _config_checkbox_int("config_kobo_sync")
|
reboot_required |= _config_checkbox_int("config_kobo_sync")
|
||||||
_config_checkbox_int("config_kobo_proxy")
|
_config_checkbox_int("config_kobo_proxy")
|
||||||
|
|
||||||
|
|
||||||
_config_int("config_ebookconverter")
|
|
||||||
_config_string("config_calibre")
|
_config_string("config_calibre")
|
||||||
_config_string("config_converterpath")
|
_config_string("config_converterpath")
|
||||||
|
_config_string("config_kepubifypath")
|
||||||
|
|
||||||
reboot_required |= _config_int("config_login_type")
|
reboot_required |= _config_int("config_login_type")
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ class _Settings(_Base):
|
|||||||
config_use_goodreads = Column(Boolean, default=False)
|
config_use_goodreads = Column(Boolean, default=False)
|
||||||
config_goodreads_api_key = Column(String)
|
config_goodreads_api_key = Column(String)
|
||||||
config_goodreads_api_secret = Column(String)
|
config_goodreads_api_secret = Column(String)
|
||||||
|
config_register_email = Column(Boolean, default=False)
|
||||||
config_login_type = Column(Integer, default=0)
|
config_login_type = Column(Integer, default=0)
|
||||||
|
|
||||||
config_kobo_proxy = Column(Boolean, default=False)
|
config_kobo_proxy = Column(Boolean, default=False)
|
||||||
@ -107,10 +107,12 @@ class _Settings(_Base):
|
|||||||
config_ldap_group_members_field = Column(String, default='memberUid')
|
config_ldap_group_members_field = Column(String, default='memberUid')
|
||||||
config_ldap_group_name = Column(String, default='calibreweb')
|
config_ldap_group_name = Column(String, default='calibreweb')
|
||||||
|
|
||||||
config_ebookconverter = Column(Integer, default=0)
|
# config_ebookconverter = Column(Integer, default=0)
|
||||||
|
config_kepubifypath = Column(String)
|
||||||
config_converterpath = Column(String)
|
config_converterpath = Column(String)
|
||||||
config_calibre = Column(String)
|
config_calibre = Column(String)
|
||||||
config_rarfile_location = Column(String)
|
config_rarfile_location = Column(String)
|
||||||
|
config_upload_formats = Column(String)
|
||||||
|
|
||||||
config_updatechannel = Column(Integer, default=constants.UPDATE_STABLE)
|
config_updatechannel = Column(Integer, default=constants.UPDATE_STABLE)
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ log = logger.create()
|
|||||||
|
|
||||||
# _() necessary to make babel aware of string for translation
|
# _() necessary to make babel aware of string for translation
|
||||||
_NOT_CONFIGURED = _('not configured')
|
_NOT_CONFIGURED = _('not configured')
|
||||||
_NOT_INSTALLED = 'not installed'
|
_NOT_INSTALLED = _('not installed')
|
||||||
_EXECUTION_ERROR = 'Execution permissions missing'
|
_EXECUTION_ERROR = _('Execution permissions missing')
|
||||||
|
|
||||||
|
|
||||||
def _get_command_version(path, pattern, argument=None):
|
def _get_command_version(path, pattern, argument=None):
|
||||||
@ -49,14 +49,11 @@ def _get_command_version(path, pattern, argument=None):
|
|||||||
|
|
||||||
|
|
||||||
def get_calibre_version():
|
def get_calibre_version():
|
||||||
version = None
|
# version = None
|
||||||
if config.config_ebookconverter == 2:
|
# if config.config_ebookconverter == 2:
|
||||||
version = _get_command_version(config.config_converterpath, r'ebook-convert.*\(calibre', '--version')
|
return _get_command_version(config.config_converterpath, r'ebook-convert.*\(calibre', '--version') \
|
||||||
return version or _NOT_CONFIGURED
|
or _NOT_CONFIGURED
|
||||||
|
|
||||||
|
|
||||||
def get_unrar_version():
|
def get_unrar_version():
|
||||||
version = None
|
return _get_command_version(config.config_rarfile_location, r'UNRAR.*\d') or _NOT_CONFIGURED
|
||||||
if config.config_ebookconverter == 2:
|
|
||||||
version = _get_command_version(config.config_converterpath, r'ebook-convert.*\(calibre', '--version')
|
|
||||||
return version or _NOT_CONFIGURED
|
|
||||||
|
@ -264,7 +264,7 @@ def render_edit_book(book_id):
|
|||||||
|
|
||||||
# Option for showing convertbook button
|
# Option for showing convertbook button
|
||||||
valid_source_formats=list()
|
valid_source_formats=list()
|
||||||
if config.config_ebookconverter == 2:
|
if config.config_converterpath:
|
||||||
for file in book.data:
|
for file in book.data:
|
||||||
if file.format.lower() in constants.EXTENSIONS_CONVERT:
|
if file.format.lower() in constants.EXTENSIONS_CONVERT:
|
||||||
valid_source_formats.append(file.format.lower())
|
valid_source_formats.append(file.format.lower())
|
||||||
|
@ -142,7 +142,7 @@ def check_send_to_kindle(entry):
|
|||||||
"""
|
"""
|
||||||
if len(entry.data):
|
if len(entry.data):
|
||||||
bookformats = list()
|
bookformats = list()
|
||||||
if config.config_ebookconverter == 0:
|
if not config.config_converterpath:
|
||||||
# no converter - only for mobi and pdf formats
|
# no converter - only for mobi and pdf formats
|
||||||
for ele in iter(entry.data):
|
for ele in iter(entry.data):
|
||||||
if 'MOBI' in ele.format:
|
if 'MOBI' in ele.format:
|
||||||
@ -173,7 +173,7 @@ def check_send_to_kindle(entry):
|
|||||||
bookformats.append({'format': 'Pdf',
|
bookformats.append({'format': 'Pdf',
|
||||||
'convert': 0,
|
'convert': 0,
|
||||||
'text': _('Send %(format)s to Kindle', format='Pdf')})
|
'text': _('Send %(format)s to Kindle', format='Pdf')})
|
||||||
if config.config_ebookconverter == 2:
|
if config.config_converterpath:
|
||||||
if 'EPUB' in formats and not 'MOBI' in formats:
|
if 'EPUB' in formats and not 'MOBI' in formats:
|
||||||
bookformats.append({'format': 'Mobi',
|
bookformats.append({'format': 'Mobi',
|
||||||
'convert':1,
|
'convert':1,
|
||||||
|
@ -154,17 +154,29 @@
|
|||||||
<div id="collapsefive" class="panel-collapse collapse">
|
<div id="collapsefive" class="panel-collapse collapse">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="checkbox" id="config_uploading" name="config_uploading" {% if config.config_uploading %}checked{% endif %}>
|
<input type="checkbox" id="config_uploading" data-control="upload_settings" name="config_uploading" {% if config.config_uploading %}checked{% endif %}>
|
||||||
<label for="config_uploading">{{_('Enable Uploads')}}</label>
|
<label for="config_uploading">{{_('Enable Uploads')}}</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div data-related="upload_settings">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="config_upload_formats">{{_('Allowed Upload Fileformats')}}</label>
|
||||||
|
<input type="text" class="form-control" name="config_upload_formats" id="config_upload_formats" value="{% if config.config_upload_formats != None %}{{ config.config_upload_formats }}{% endif %}" autocomplete="off">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="checkbox" id="config_anonbrowse" name="config_anonbrowse" {% if config.config_anonbrowse %}checked{% endif %}>
|
<input type="checkbox" id="config_anonbrowse" name="config_anonbrowse" {% if config.config_anonbrowse %}checked{% endif %}>
|
||||||
<label for="config_anonbrowse">{{_('Enable Anonymous Browsing')}}</label>
|
<label for="config_anonbrowse">{{_('Enable Anonymous Browsing')}}</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="checkbox" id="config_public_reg" name="config_public_reg" {% if config.config_public_reg %}checked{% endif %}>
|
<input type="checkbox" id="config_public_reg" data-control="register_settings" name="config_public_reg" {% if config.config_public_reg %}checked{% endif %}>
|
||||||
<label for="config_public_reg">{{_('Enable Public Registration')}}</label>
|
<label for="config_public_reg">{{_('Enable Public Registration')}}</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div data-related="register_settings">
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="checkbox" id="config_register_email" name="config_register_email" {% if config.config_register_email %}checked{% endif %}>
|
||||||
|
<label for="config_register_email">{{_('Use E-Mail as Username')}}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="checkbox" id="config_remote_login" name="config_remote_login" {% if config.config_remote_login %}checked{% endif %}>
|
<input type="checkbox" id="config_remote_login" name="config_remote_login" {% if config.config_remote_login %}checked{% endif %}>
|
||||||
<label for="config_remote_login">{{_('Enable Magic Link Remote Login')}}</label>
|
<label for="config_remote_login">{{_('Enable Magic Link Remote Login')}}</label>
|
||||||
@ -327,27 +339,23 @@
|
|||||||
<div id="collapseeight" class="panel-collapse collapse">
|
<div id="collapseeight" class="panel-collapse collapse">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div><input type="radio" name="config_ebookconverter" id="converter0" value="0" {% if config.config_ebookconverter == 0 %}checked{% endif %}>
|
<label for="config_calibre">{{_('Calibre E-Book Converter Settings')}}</label>
|
||||||
<label for="converter0">{{_('No Converter')}}</label></div>
|
<input type="text" class="form-control" id="config_calibre" name="config_calibre" value="{% if config.config_calibre != None %}{{ config.config_calibre }}{% endif %}" autocomplete="off">
|
||||||
<div><input type="radio" name="config_ebookconverter" id="converter2" value="2" {% if config.config_ebookconverter == 2 %}checked{% endif %}>
|
|
||||||
<label for="converter2">{{_('Use calibre\'s ebook converter')}}</label></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div data-related="calibre">
|
<div class="form-group">
|
||||||
<div class="form-group">
|
<label for="config_converterpath">{{_('Path to Calibre E-Book Converter')}}</label>
|
||||||
<label for="config_calibre">{{_('E-Book converter settings')}}</label>
|
<input type="text" class="form-control" id="config_converterpath" name="config_converterpath" value="{% if config.config_converterpath != None %}{{ config.config_converterpath }}{% endif %}" autocomplete="off">
|
||||||
<input type="text" class="form-control" id="config_calibre" name="config_calibre" value="{% if config.config_calibre != None %}{{ config.config_calibre }}{% endif %}" autocomplete="off">
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="config_calibre">{{_('Path to convertertool')}}</label>
|
|
||||||
<input type="text" class="form-control" id="config_converterpath" name="config_converterpath" value="{% if config.config_converterpath != None %}{{ config.config_converterpath }}{% endif %}" autocomplete="off">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% if feature_support['rar'] %}
|
<div class="form-group">
|
||||||
<div class="form-group">
|
<label for="config_calibre">{{_('Path to Kepubify E-Book Converter')}}</label>
|
||||||
<label for="config_rarfile_location">{{_('Location of Unrar binary')}}</label>
|
<input type="text" class="form-control" id="config_kepubifypath" name="config_converterpath" value="{% if config.config_kepubifypath != None %}{{ config.config_kepubifypath }}{% endif %}" autocomplete="off">
|
||||||
<input type="text" class="form-control" name="config_rarfile_location" id="config_rarfile_location" value="{% if config.config_rarfile_location != None %}{{ config.config_rarfile_location }}{% endif %}" autocomplete="off">
|
</div>
|
||||||
</div>
|
{% if feature_support['rar'] %}
|
||||||
{% endif %}
|
<div class="form-group">
|
||||||
|
<label for="config_rarfile_location">{{_('Location of Unrar binary')}}</label>
|
||||||
|
<input type="text" class="form-control" name="config_rarfile_location" id="config_rarfile_location" value="{% if config.config_rarfile_location != None %}{{ config.config_rarfile_location }}{% endif %}" autocomplete="off">
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -297,7 +297,7 @@ class WorkerThread(threading.Thread):
|
|||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if config.config_ebookconverter == 2:
|
if config.config_converterpath:
|
||||||
# Linux py2.7 encode as list without quotes no empty element for parameters
|
# Linux py2.7 encode as list without quotes no empty element for parameters
|
||||||
# linux py3.x no encode and as list without quotes no empty element for parameters
|
# linux py3.x no encode and as list without quotes no empty element for parameters
|
||||||
# windows py2.7 encode as string with quotes empty element for parameters is okay
|
# windows py2.7 encode as string with quotes empty element for parameters is okay
|
||||||
@ -341,11 +341,7 @@ class WorkerThread(threading.Thread):
|
|||||||
if not ele.startswith('Traceback') and not ele.startswith(' File'):
|
if not ele.startswith('Traceback') and not ele.startswith(' File'):
|
||||||
error_message = "Calibre failed with error: %s" % ele.strip('\n')
|
error_message = "Calibre failed with error: %s" % ele.strip('\n')
|
||||||
|
|
||||||
# kindlegen returncodes
|
if check == 0:
|
||||||
# 0 = Info(prcgen):I1036: Mobi file built successfully
|
|
||||||
# 1 = Info(prcgen):I1037: Mobi file built with WARNINGS!
|
|
||||||
# 2 = Info(prcgen):I1038: MOBI file could not be generated because of errors!
|
|
||||||
if check == 0 and config.config_ebookconverter == 2:
|
|
||||||
cur_book = db.session.query(db.Books).filter(db.Books.id == bookid).first()
|
cur_book = db.session.query(db.Books).filter(db.Books.id == bookid).first()
|
||||||
if os.path.isfile(file_path + format_new_ext):
|
if os.path.isfile(file_path + format_new_ext):
|
||||||
new_format = db.Data(name=cur_book.data[0].name,
|
new_format = db.Data(name=cur_book.data[0].name,
|
||||||
|
Loading…
Reference in New Issue
Block a user