Commit c3bec48b authored by Ozzieisaacs's avatar Ozzieisaacs

Fix #617

Additional texts translated
parent c582a704
...@@ -13,9 +13,10 @@ import unicodedata ...@@ -13,9 +13,10 @@ import unicodedata
from io import BytesIO from io import BytesIO
import worker import worker
import time import time
from flask import send_from_directory, make_response, redirect, abort from flask import send_from_directory, make_response, redirect, abort
from flask_babel import gettext as _ from flask_babel import gettext as _
from flask_login import current_user
from babel.dates import format_datetime
import threading import threading
import shutil import shutil
import requests import requests
...@@ -73,10 +74,12 @@ def convert_book_format(book_id, calibrepath, old_book_format, new_book_format, ...@@ -73,10 +74,12 @@ def convert_book_format(book_id, calibrepath, old_book_format, new_book_format,
# read settings and append converter task to queue # read settings and append converter task to queue
if kindle_mail: if kindle_mail:
settings = ub.get_mail_settings() settings = ub.get_mail_settings()
text = _(u"%(format)s: %(book)s", format=new_book_format, book=book.title) settings['subject'] = _('Send to Kindle') # pretranslate Subject for e-mail
settings['body'] = _(u'This e-mail has been sent via Calibre-Web.')
# text = _(u"%(format)s: %(book)s", format=new_book_format, book=book.title)
else: else:
settings = dict() settings = dict()
text = _(u"%(format)s: %(book)s", format=new_book_format, book=book.title) text = (u"%s -> %s: %s" % (old_book_format, new_book_format, book.title))
settings['old_book_format'] = old_book_format settings['old_book_format'] = old_book_format
settings['new_book_format'] = new_book_format settings['new_book_format'] = new_book_format
global_WorkerThread.add_convert(file_path, book.id, user_id, text, settings, kindle_mail) global_WorkerThread.add_convert(file_path, book.id, user_id, text, settings, kindle_mail)
...@@ -89,7 +92,8 @@ def convert_book_format(book_id, calibrepath, old_book_format, new_book_format, ...@@ -89,7 +92,8 @@ def convert_book_format(book_id, calibrepath, old_book_format, new_book_format,
def send_test_mail(kindle_mail, user_name): def send_test_mail(kindle_mail, user_name):
global_WorkerThread.add_email(_(u'Calibre-Web test e-mail'),None, None, ub.get_mail_settings(), global_WorkerThread.add_email(_(u'Calibre-Web test e-mail'),None, None, ub.get_mail_settings(),
kindle_mail, user_name, _(u"Test e-mail")) kindle_mail, user_name, _(u"Test e-mail"),
_(u'This e-mail has been sent via Calibre-Web.'))
return return
...@@ -133,7 +137,7 @@ def send_mail(book_id, kindle_mail, calibrepath, user_id): ...@@ -133,7 +137,7 @@ def send_mail(book_id, kindle_mail, calibrepath, user_id):
if 'mobi' in formats: if 'mobi' in formats:
result = formats['mobi'] result = formats['mobi']
elif 'epub' in formats: elif 'epub' in formats:
# returns None if sucess, otherwise errormessage # returns None if success, otherwise errormessage
return convert_book_format(book_id, calibrepath, u'epub', u'mobi', user_id, kindle_mail) return convert_book_format(book_id, calibrepath, u'epub', u'mobi', user_id, kindle_mail)
elif 'pdf' in formats: elif 'pdf' in formats:
result = formats['pdf'] # worker.get_attachment() result = formats['pdf'] # worker.get_attachment()
...@@ -591,32 +595,40 @@ def render_task_status(tasklist): ...@@ -591,32 +595,40 @@ def render_task_status(tasklist):
renderedtasklist=list() renderedtasklist=list()
for task in tasklist: for task in tasklist:
# localize the task status if task['user'] == current_user.nickname or current_user.role_admin():
if isinstance( task['status'], int ): if task['formStarttime']:
if task['status'] == worker.STAT_WAITING: task['starttime'] = format_datetime(task['formStarttime'], format='short', locale=web.get_locale())
task['status'] = _('Waiting') task['formStarttime'] = ""
elif task['status'] == worker.STAT_FAIL:
task['status'] = _('Failed')
elif task['status'] == worker.STAT_STARTED:
task['status'] = _('Started')
elif task['status'] == worker.STAT_FINISH_SUCCESS:
task['status'] = _('Finished')
else:
task['status'] = _('Unknown Status')
# localize the task type
if isinstance( task['taskType'], int ):
if task['taskType'] == worker.TASK_EMAIL:
task['taskMessage'] = _('EMAIL: ') + task['taskMessage']
elif task['taskType'] == worker.TASK_CONVERT:
task['taskMessage'] = _('CONVERT: ') + task['taskMessage']
elif task['taskType'] == worker.TASK_UPLOAD:
task['taskMessage'] = _('UPLOAD: ') + task['taskMessage']
elif task['taskType'] == worker.TASK_CONVERT_ANY:
task['taskMessage'] = _('CONVERT: ') + task['taskMessage']
else: else:
task['taskMessage'] = _('Unknown Task: ') + task['taskMessage'] if 'starttime' not in task:
task['starttime'] = ""
# localize the task status
if isinstance( task['stat'], int ):
if task['stat'] == worker.STAT_WAITING:
task['status'] = _(u'Waiting')
elif task['stat'] == worker.STAT_FAIL:
task['status'] = _(u'Failed')
elif task['stat'] == worker.STAT_STARTED:
task['status'] = _(u'Started')
elif task['stat'] == worker.STAT_FINISH_SUCCESS:
task['status'] = _(u'Finished')
else:
task['status'] = _(u'Unknown Status')
# localize the task type
if isinstance( task['taskType'], int ):
if task['taskType'] == worker.TASK_EMAIL:
task['taskMessage'] = _(u'E-mail: ') + task['taskMess']
elif task['taskType'] == worker.TASK_CONVERT:
task['taskMessage'] = _(u'Convert: ') + task['taskMess']
elif task['taskType'] == worker.TASK_UPLOAD:
task['taskMessage'] = _(u'Upload: ') + task['taskMess']
elif task['taskType'] == worker.TASK_CONVERT_ANY:
task['taskMessage'] = _(u'Convert: ') + task['taskMess']
else:
task['taskMessage'] = _(u'Unknown Task: ') + task['taskMess']
renderedtasklist.append(task) renderedtasklist.append(task)
return renderedtasklist return renderedtasklist
...@@ -54,8 +54,9 @@ import tempfile ...@@ -54,8 +54,9 @@ import tempfile
from redirect import redirect_back from redirect import redirect_back
import time import time
import server import server
import copy # import copy
from reverseproxy import ReverseProxied from reverseproxy import ReverseProxied
try: try:
from googleapiclient.errors import HttpError from googleapiclient.errors import HttpError
except ImportError: except ImportError:
...@@ -116,44 +117,6 @@ EXTENSIONS_CONVERT = {'pdf', 'epub', 'mobi', 'azw3', 'docx', 'rtf', 'fb2', 'lit' ...@@ -116,44 +117,6 @@ EXTENSIONS_CONVERT = {'pdf', 'epub', 'mobi', 'azw3', 'docx', 'rtf', 'fb2', 'lit'
# EXTENSIONS_READER = set(['txt', 'pdf', 'epub', 'zip', 'cbz', 'tar', 'cbt'] + (['rar','cbr'] if rar_support else [])) # EXTENSIONS_READER = set(['txt', 'pdf', 'epub', 'zip', 'cbz', 'tar', 'cbt'] + (['rar','cbr'] if rar_support else []))
'''class ReverseProxied(object):
"""Wrap the application in this middleware and configure the
front-end server to add these headers, to let you quietly bind
this to a URL other than / and to an HTTP scheme that is
different than what is used locally.
Code courtesy of: http://flask.pocoo.org/snippets/35/
In nginx:
location /myprefix {
proxy_pass http://127.0.0.1:8083;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Script-Name /myprefix;
}
"""
def __init__(self, application):
self.app = application
def __call__(self, environ, start_response):
script_name = environ.get('HTTP_X_SCRIPT_NAME', '')
if script_name:
environ['SCRIPT_NAME'] = script_name
path_info = environ.get('PATH_INFO', '')
if path_info and path_info.startswith(script_name):
environ['PATH_INFO'] = path_info[len(script_name):]
scheme = environ.get('HTTP_X_SCHEME', '')
if scheme:
environ['wsgi.url_scheme'] = scheme
servr = environ.get('HTTP_X_FORWARDED_SERVER', '')
if servr:
environ['HTTP_HOST'] = servr
return self.app(environ, start_response)'''
# Main code # Main code
mimetypes.init() mimetypes.init()
mimetypes.add_type('application/xhtml+xml', '.xhtml') mimetypes.add_type('application/xhtml+xml', '.xhtml')
...@@ -897,14 +860,6 @@ def get_opds_download_link(book_id, book_format): ...@@ -897,14 +860,6 @@ def get_opds_download_link(book_id, book_format):
except KeyError: except KeyError:
headers["Content-Type"] = "application/octet-stream" headers["Content-Type"] = "application/octet-stream"
return helper.do_download_file(book, book_format, data, headers) return helper.do_download_file(book, book_format, data, headers)
#if config.config_use_google_drive:
# app.logger.info(time.time() - startTime)
# df = gdriveutils.getFileFromEbooksFolder(book.path, data.name + "." + book_format)
# return do_gdrive_download(df, headers)
#else:
# response = make_response(send_from_directory(os.path.join(config.config_calibre_dir, book.path), data.name + "." + book_format))
# response.headers = headers
# return response
@app.route("/ajax/book/<string:uuid>") @app.route("/ajax/book/<string:uuid>")
...@@ -923,7 +878,7 @@ def get_metadata_calibre_companion(uuid): ...@@ -923,7 +878,7 @@ def get_metadata_calibre_companion(uuid):
@login_required @login_required
def get_email_status_json(): def get_email_status_json():
answer=list() answer=list()
UIanswer = list() # UIanswer = list()
tasks=helper.global_WorkerThread.get_taskstatus() tasks=helper.global_WorkerThread.get_taskstatus()
if not current_user.role_admin(): if not current_user.role_admin():
for task in tasks: for task in tasks:
...@@ -945,10 +900,10 @@ def get_email_status_json(): ...@@ -945,10 +900,10 @@ def get_email_status_json():
task['starttime'] = "" task['starttime'] = ""
answer = tasks answer = tasks
UIanswer = copy.deepcopy(answer) # UIanswer = copy.deepcopy(answer)
UIanswer = helper.render_task_status(UIanswer) answer = helper.render_task_status(answer)
js=json.dumps(UIanswer) js=json.dumps(answer)
response = make_response(js) response = make_response(js)
response.headers["Content-Type"] = "application/json; charset=utf-8" response.headers["Content-Type"] = "application/json; charset=utf-8"
return response return response
...@@ -1734,32 +1689,14 @@ def bookmark(book_id, book_format): ...@@ -1734,32 +1689,14 @@ def bookmark(book_id, book_format):
def get_tasks_status(): def get_tasks_status():
# if current user admin, show all email, otherwise only own emails # if current user admin, show all email, otherwise only own emails
answer=list() answer=list()
UIanswer=list() # UIanswer=list()
tasks=helper.global_WorkerThread.get_taskstatus() tasks=helper.global_WorkerThread.get_taskstatus()
if not current_user.role_admin(): # answer = tasks
for task in tasks:
if task['user'] == current_user.nickname:
if task['formStarttime']:
task['starttime'] = format_datetime(task['formStarttime'], format='short', locale=get_locale())
task['formStarttime'] = ""
else:
if 'starttime' not in task:
task['starttime'] = ""
answer.append(task)
else:
for task in tasks:
if task['formStarttime']:
task['starttime'] = format_datetime(task['formStarttime'], format='short', locale=get_locale())
task['formStarttime'] = ""
else:
if 'starttime' not in task:
task['starttime'] = ""
answer = tasks
UIanswer = copy.deepcopy(answer) # UIanswer = copy.deepcopy(answer)
UIanswer = helper.render_task_status(UIanswer) answer = helper.render_task_status(tasks)
# foreach row format row # foreach row format row
return render_title_template('tasks.html', entries=UIanswer, title=_(u"Tasks")) return render_title_template('tasks.html', entries=answer, title=_(u"Tasks"))
@app.route("/admin") @app.route("/admin")
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment