Add GUI functions for ebookconvert any format feature

This commit is contained in:
bodybybuddha 2018-08-27 21:27:16 -04:00
parent f6ab724020
commit e160efbdac
2 changed files with 39 additions and 4 deletions

View File

@ -124,13 +124,29 @@
</div>
{% endfor %}
{% endif %}
{% if g.user.role_upload() or g.user.role_admin()%}
{% if g.allow_upload %}
<div role="group" aria-label="Upload new book format">
<label class="btn btn-default btn-file" for="btn-upload-format">{{ _('Upload format') }}</label>
<div class="btn-group" role="group" aria-label="New Book Formats">
<label class="btn btn-primary btn-file" for="btn-upload-format"><span class="glyphicon glyphicon-upload"></span> {{ _('Upload format') }}</label>
<div class="upload-format-input-text" id="upload-format"></div>
<input id="btn-upload-format" name="btn-upload-format" type="file">
{% if display_convertbtn and conversion_formats|length > 0 %}
<button id="btnGroupConv" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-duplicate"></span> {{_('Convert to book format:')}}
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="btnGroupConv">
{% for format in conversion_formats %}
<li><a href="{{ format }}">{{format}} ({{ format }})</a></li>
{% endfor %}
</ul>
{% endif %}
</div>
{% endif %}
{% endif %}

View File

@ -96,7 +96,6 @@ gdrive_watch_callback_token = 'target=calibreweb-watch_files'
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'epub', 'mobi', 'azw', 'azw3', 'cbr', 'cbz', 'cbt', 'djvu', 'prc', 'doc', 'docx', 'fb2'])
def md5(fname):
hash_md5 = hashlib.md5()
with open(fname, "rb") as f:
@ -3072,10 +3071,30 @@ def edit_book(book_id):
for author in book.authors:
author_names.append(author.name.replace('|', ','))
#Option for showing convertbook button
if config.config_ebookconverter == 2:
display_convertbtn = True
else:
display_convertbtn = False
app.logger.debug(book)
app.logger.debug(book.data)
#Determine what formats don't already exist
allowed_conversion_formats = ALLOWED_EXTENSIONS
for file in book.data:
try:
allowed_conversion_formats.remove(file.format.lower())
except Exception:
app.logger.debug("Exception thrown:")
app.logger.debug(file.format.lower())
app.logger.debug(allowed_conversion_formats)
# Show form
if request.method != 'POST':
return render_title_template('book_edit.html', book=book, authors=author_names, cc=cc,
title=_(u"edit metadata"), page="editbook")
title=_(u"edit metadata"), page="editbook", display_convertbtn=display_convertbtn,
conversion_formats=allowed_conversion_formats)
# Update book
edited_books_id = set()