Merge branch 'master' into Develop
This commit is contained in:
commit
6deb527769
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -31,7 +31,7 @@ If applicable, add screenshots to help explain your problem.
|
|||
- OS: [e.g. Windows 10/Raspberry Pi OS]
|
||||
- Python version: [e.g. python2.7]
|
||||
- Calibre-Web version: [e.g. 0.6.8 or 087c4c59 (git rev-parse --short HEAD)]:
|
||||
- Docker container: [None/Technosoft2000/LinuxServer]:
|
||||
- Docker container: [None/LinuxServer]:
|
||||
- Special Hardware: [e.g. Rasperry Pi Zero]
|
||||
- Browser: [e.g. Chrome 83.0.4103.97, Safari 13.3.7, Firefox 68.0.1 ESR]
|
||||
|
||||
|
|
|
@ -1348,7 +1348,9 @@ def _handle_new_user(to_save, content, languages, translations, kobo_support):
|
|||
raise Exception(_(u"E-mail is not from valid domain"))
|
||||
except Exception as ex:
|
||||
flash(str(ex), category="error")
|
||||
return render_title_template("user_edit.html", new_user=1, content=content, translations=translations,
|
||||
return render_title_template("user_edit.html", new_user=1, content=content,
|
||||
config=config,
|
||||
translations=translations,
|
||||
languages=languages, title=_(u"Add new user"), page="newuser",
|
||||
kobo_support=kobo_support, registered_oauth=oauth_check)
|
||||
try:
|
||||
|
@ -1463,6 +1465,7 @@ def _handle_edit_user(to_save, content, languages, translations, kobo_support):
|
|||
kobo_support=kobo_support,
|
||||
new_user=0,
|
||||
content=content,
|
||||
config=config,
|
||||
registered_oauth=oauth_check,
|
||||
title=_(u"Edit User %(nick)s", nick=content.name),
|
||||
page="edituser")
|
||||
|
@ -1496,7 +1499,8 @@ def new_user():
|
|||
content.sidebar_view = config.config_default_show
|
||||
content.locale = config.config_default_locale
|
||||
content.default_language = config.config_default_language
|
||||
return render_title_template("user_edit.html", new_user=1, content=content, translations=translations,
|
||||
return render_title_template("user_edit.html", new_user=1, content=content,
|
||||
config=config, translations=translations,
|
||||
languages=languages, title=_(u"Add new user"), page="newuser",
|
||||
kobo_support=kobo_support, registered_oauth=oauth_check)
|
||||
|
||||
|
@ -1584,6 +1588,7 @@ def edit_user(user_id):
|
|||
languages=languages,
|
||||
new_user=0,
|
||||
content=content,
|
||||
config=config,
|
||||
registered_oauth=oauth_check,
|
||||
mail_configured=config.get_mail_server_configured(),
|
||||
kobo_support=kobo_support,
|
||||
|
|
|
@ -63,7 +63,7 @@ log = logger.create()
|
|||
|
||||
try:
|
||||
from wand.image import Image
|
||||
from wand.exceptions import MissingDelegateError
|
||||
from wand.exceptions import MissingDelegateError, BlobError
|
||||
use_IM = True
|
||||
except (ImportError, RuntimeError) as e:
|
||||
log.debug('Cannot import Image, generating covers from non jpg files will not work: %s', e)
|
||||
|
@ -697,13 +697,17 @@ def save_cover(img, book_path):
|
|||
return False, _("Only jpg/jpeg/png/webp/bmp files are supported as coverfile")
|
||||
# convert to jpg because calibre only supports jpg
|
||||
if content_type != 'image/jpg':
|
||||
if hasattr(img, 'stream'):
|
||||
imgc = Image(blob=img.stream)
|
||||
else:
|
||||
imgc = Image(blob=io.BytesIO(img.content))
|
||||
imgc.format = 'jpeg'
|
||||
imgc.transform_colorspace("rgb")
|
||||
img = imgc
|
||||
try:
|
||||
if hasattr(img, 'stream'):
|
||||
imgc = Image(blob=img.stream)
|
||||
else:
|
||||
imgc = Image(blob=io.BytesIO(img.content))
|
||||
imgc.format = 'jpeg'
|
||||
imgc.transform_colorspace("rgb")
|
||||
img = imgc
|
||||
except BlobError:
|
||||
log.error("Invalid cover file content")
|
||||
return False, _("Invalid cover file content")
|
||||
else:
|
||||
if content_type not in 'image/jpeg':
|
||||
log.error("Only jpg/jpeg files are supported as coverfile")
|
||||
|
|
|
@ -17,6 +17,9 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from .iso_language_names import LANGUAGE_NAMES as _LANGUAGE_NAMES
|
||||
from . import logger
|
||||
|
||||
log = logger.create()
|
||||
|
||||
|
||||
try:
|
||||
|
@ -50,7 +53,10 @@ def get_language_names(locale):
|
|||
|
||||
|
||||
def get_language_name(locale, lang_code):
|
||||
return get_language_names(locale)[lang_code]
|
||||
try:
|
||||
return get_language_names(locale)[lang_code]
|
||||
except KeyError:
|
||||
log.error('Missing translation for language name: {}'.format(lang_code))
|
||||
|
||||
|
||||
def get_language_codes(locale, language_names, remainder=None):
|
||||
|
|
|
@ -79,6 +79,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "choctawština",
|
||||
"chp": "čipeva",
|
||||
"chr": "čerokézština",
|
||||
"cht": "Cholón",
|
||||
"chu": "Slavonic; Old",
|
||||
"chv": "čuvaština",
|
||||
"chy": "čejenština",
|
||||
|
@ -499,6 +500,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "Choctaw",
|
||||
"chp": "Chipewyan",
|
||||
"chr": "Cherokee",
|
||||
"cht": "Cholón",
|
||||
"chu": "Altkirchenslawisch",
|
||||
"chv": "Tschuwaschisch",
|
||||
"chy": "Cheyenne",
|
||||
|
@ -916,6 +918,7 @@ LANGUAGE_NAMES = {
|
|||
"chn": "Chinook jargon",
|
||||
"chp": "Chipewyan",
|
||||
"cho": "Choctaw",
|
||||
"cht": "Cholón",
|
||||
"chk": "Chuukese",
|
||||
"chv": "Chuvash",
|
||||
"cop": "Κοπτικά",
|
||||
|
@ -1294,6 +1297,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "Choctaw",
|
||||
"chp": "Chipewyan",
|
||||
"chr": "Cheroqui",
|
||||
"cht": "Cholón",
|
||||
"chu": "Eslavo antiguo",
|
||||
"chv": "Chuvasio",
|
||||
"chy": "Cheyenne",
|
||||
|
@ -1714,6 +1718,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "choctaw",
|
||||
"chp": "chipewyan",
|
||||
"chr": "cherokee",
|
||||
"cht": "Cholón",
|
||||
"chu": "Slavonic; Old",
|
||||
"chv": "tšuvassi",
|
||||
"chy": "cheyenne",
|
||||
|
@ -2134,6 +2139,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "choctaw",
|
||||
"chp": "chipewyan",
|
||||
"chr": "cherokee",
|
||||
"cht": "cholón",
|
||||
"chu": "slavon; ancien",
|
||||
"chv": "tchouvache",
|
||||
"chy": "cheyenne",
|
||||
|
@ -2554,6 +2560,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "csoktó",
|
||||
"chp": "csippeva",
|
||||
"chr": "cserokí",
|
||||
"cht": "Cholón",
|
||||
"chu": "szláv; ószláv",
|
||||
"chv": "csuvas",
|
||||
"chy": "csejen",
|
||||
|
@ -2974,6 +2981,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "Choctaw",
|
||||
"chp": "Chipewyan",
|
||||
"chr": "Cherokee",
|
||||
"cht": "Cholón",
|
||||
"chu": "Slavo antico",
|
||||
"chv": "Chuvash",
|
||||
"chy": "Cheyenne",
|
||||
|
@ -3394,6 +3402,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "チョクトー語",
|
||||
"chp": "チペワイアン語",
|
||||
"chr": "チェロキー語",
|
||||
"cht": "Cholón",
|
||||
"chu": "Slavonic; Old",
|
||||
"chv": "チュヴァシュ語",
|
||||
"chy": "シャイアン語",
|
||||
|
@ -3814,6 +3823,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "Choctaw",
|
||||
"chp": "Chipewyan",
|
||||
"chr": "Cherokee",
|
||||
"cht": "Cholón",
|
||||
"chu": "Slavonic; Old",
|
||||
"chv": "Chuvash",
|
||||
"chy": "Cheyenne",
|
||||
|
@ -4234,6 +4244,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "Choctaw",
|
||||
"chp": "Chipewyaans",
|
||||
"chr": "Cherokee",
|
||||
"cht": "Cholón",
|
||||
"chu": "Slavisch; oud (kerk)",
|
||||
"chv": "Tsjoevasjisch",
|
||||
"chy": "Cheyenne",
|
||||
|
@ -4654,6 +4665,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "czoktaw",
|
||||
"chp": "chipewyan",
|
||||
"chr": "czerokeski",
|
||||
"cht": "Cholón",
|
||||
"chu": "starosłowiański",
|
||||
"chv": "czuwaski",
|
||||
"chy": "czejeński",
|
||||
|
@ -5071,6 +5083,7 @@ LANGUAGE_NAMES = {
|
|||
"chn": "Chinook jargon",
|
||||
"chp": "Chipewyan",
|
||||
"cho": "Choctaw",
|
||||
"cht": "Cholón",
|
||||
"chk": "Chuukese",
|
||||
"chv": "Chuvash",
|
||||
"cop": "Coptic",
|
||||
|
@ -5447,6 +5460,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "Чоктав",
|
||||
"chp": "Чипевианский",
|
||||
"chr": "Чероки",
|
||||
"cht": "Cholón",
|
||||
"chu": "Slavonic; Old",
|
||||
"chv": "Чувашский",
|
||||
"chy": "Чейенн",
|
||||
|
@ -5867,6 +5881,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "Choctaw",
|
||||
"chp": "Chopi",
|
||||
"chr": "Cherokesiska",
|
||||
"cht": "Cholón",
|
||||
"chu": "Slavonic; antik",
|
||||
"chv": "Tjuvasjiska",
|
||||
"chy": "Cheyenne",
|
||||
|
@ -6284,6 +6299,7 @@ LANGUAGE_NAMES = {
|
|||
"chn": "Chinook lehçesi (Kuzey Batı Amerika kıyıları)",
|
||||
"chp": "Chipewyan (Kuzey Amerika yerlileri)",
|
||||
"cho": "Choctaw (Kuzey Amerika yerlileri)",
|
||||
"cht": "Cholón",
|
||||
"chk": "Chuukese",
|
||||
"chv": "Çuvaş (Türkçe)",
|
||||
"cop": "Kıptice (Eski Mısır)",
|
||||
|
@ -6660,6 +6676,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "чоктау",
|
||||
"chp": "чипев’ян",
|
||||
"chr": "черокі",
|
||||
"cht": "чолон",
|
||||
"chu": "давньослов’янська",
|
||||
"chv": "чуваська",
|
||||
"chy": "шаєнн",
|
||||
|
@ -7080,6 +7097,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "乔克托语",
|
||||
"chp": "奇佩维安语",
|
||||
"chr": "切罗基语",
|
||||
"cht": "Cholón",
|
||||
"chu": "斯拉夫语(古教会)",
|
||||
"chv": "楚瓦什语",
|
||||
"chy": "夏延语",
|
||||
|
@ -7497,6 +7515,7 @@ LANGUAGE_NAMES = {
|
|||
"chn": "Chinook jargon",
|
||||
"chp": "Chipewyan",
|
||||
"cho": "Choctaw",
|
||||
"cht": "Cholón",
|
||||
"chk": "Chuukese",
|
||||
"chv": "Chuvash",
|
||||
"cop": "Coptic",
|
||||
|
@ -7873,6 +7892,7 @@ LANGUAGE_NAMES = {
|
|||
"cho": "Choctaw",
|
||||
"chp": "Chipewyan",
|
||||
"chr": "Cherokee",
|
||||
"cht": "Cholón",
|
||||
"chu": "Slavonic; Old",
|
||||
"chv": "Chuvash",
|
||||
"chy": "Cheyenne",
|
||||
|
|
17
cps/shelf.py
17
cps/shelf.py
|
@ -122,8 +122,8 @@ def search_to_shelf(shelf_id):
|
|||
return redirect(url_for('web.index'))
|
||||
|
||||
if not check_shelf_edit_permissions(shelf):
|
||||
log.warning("You are not allowed to add a book to the the shelf: {}".format(shelf.name))
|
||||
flash(_(u"You are not allowed to add a book to the the shelf: %(name)s", name=shelf.name), category="error")
|
||||
log.warning("You are not allowed to add a book to the shelf".format(shelf.name))
|
||||
flash(_(u"You are not allowed to add a book to the shelf"), category="error")
|
||||
return redirect(url_for('web.index'))
|
||||
|
||||
if current_user.id in ub.searched_ids and ub.searched_ids[current_user.id]:
|
||||
|
@ -215,17 +215,22 @@ def remove_from_shelf(shelf_id, book_id):
|
|||
else:
|
||||
if not xhr:
|
||||
log.warning("You are not allowed to remove a book from shelf: {}".format(shelf.name))
|
||||
flash(_(u"Sorry you are not allowed to remove a book from this shelf: %(sname)s", sname=shelf.name),
|
||||
flash(_(u"Sorry you are not allowed to remove a book from this shelf"),
|
||||
category="error")
|
||||
return redirect(url_for('web.index'))
|
||||
return "Sorry you are not allowed to remove a book from this shelf: %s" % shelf.name, 403
|
||||
return "Sorry you are not allowed to remove a book from this shelf", 403
|
||||
|
||||
|
||||
@shelf.route("/shelf/create", methods=["GET", "POST"])
|
||||
@login_required
|
||||
def create_shelf():
|
||||
shelf = ub.Shelf()
|
||||
return create_edit_shelf(shelf, page_title=_(u"Create a Shelf"), page="shelfcreate")
|
||||
if not current_user.role_edit_shelfs() and request.method == 'POST':
|
||||
flash(_(u"Sorry you are not allowed to create a public shelf"), category="error")
|
||||
return redirect(url_for('web.index'))
|
||||
else:
|
||||
shelf = ub.Shelf()
|
||||
return create_edit_shelf(shelf, page_title=_(u"Create a Shelf"), page="shelfcreate")
|
||||
|
||||
|
||||
|
||||
@shelf.route("/shelf/edit/<int:shelf_id>", methods=["GET", "POST"])
|
||||
|
|
|
@ -248,7 +248,7 @@ $("#btn-upload-format").on("change", function () {
|
|||
if (filename.substring(3, 11) === "fakepath") {
|
||||
filename = filename.substring(12);
|
||||
} // Remove c:\fake at beginning from localhost chrome
|
||||
$("#upload-format").html(filename);
|
||||
$("#upload-format").text(filename);
|
||||
});
|
||||
|
||||
$("#btn-upload-cover").on("change", function () {
|
||||
|
@ -256,7 +256,7 @@ $("#btn-upload-cover").on("change", function () {
|
|||
if (filename.substring(3, 11) === "fakepath") {
|
||||
filename = filename.substring(12);
|
||||
} // Remove c:\fake at beginning from localhost chrome
|
||||
$("#upload-cover").html(filename);
|
||||
$("#upload-cover").text(filename);
|
||||
});
|
||||
|
||||
$("#xchange").click(function () {
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<th>{{_('Downloads')}}</th>
|
||||
<th class="hidden-xs ">{{_('Admin')}}</th>
|
||||
<th class="hidden-xs hidden-sm">{{_('Password')}}</th>
|
||||
{% if config.config_upload %}
|
||||
{% if config.config_uploading %}
|
||||
<th class="hidden-xs hidden-sm">{{_('Upload')}}</th>
|
||||
{% endif %}
|
||||
<th class="hidden-xs hidden-sm">{{_('Download')}}</th>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<td>{{user.downloads.count()}}</td>
|
||||
<td class="hidden-xs">{{ display_bool_setting(user.role_admin()) }}</td>
|
||||
<td class="hidden-xs hidden-sm">{{ display_bool_setting(user.role_passwd()) }}</td>
|
||||
{% if config.config_upload %}
|
||||
{% if config.config_uploading %}
|
||||
<td class="hidden-xs hidden-sm">{{ display_bool_setting(user.role_upload()) }}</td>
|
||||
{% endif %}
|
||||
<td class="hidden-xs hidden-sm">{{ display_bool_setting(user.role_download()) }}</td>
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
<input type="checkbox" name="viewer_role" id="viewer_role" {% if conf.role_viewer() %}checked{% endif %}>
|
||||
<label for="viewer_role">{{_('Allow eBook Viewer')}}</label>
|
||||
</div>
|
||||
{% if config.config_upload %}
|
||||
{% if conf.config_uploading %}
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="upload_role" id="upload_role" {% if conf.role_upload() %}checked{% endif %}>
|
||||
<label for="upload_role">{{_('Allow Uploads')}}</label>
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
<input type="checkbox" name="viewer_role" id="viewer_role" {% if content.role_viewer() %}checked{% endif %}>
|
||||
<label for="viewer_role">{{_('Allow eBook Viewer')}}</label>
|
||||
</div>
|
||||
{% if config.config_upload %}
|
||||
{% if config.config_uploading %}
|
||||
<div class="form-group">
|
||||
<input type="checkbox" name="upload_role" id="upload_role" {% if content.role_upload() %}checked{% endif %}>
|
||||
<label for="upload_role">{{_('Allow Uploads')}}</label>
|
||||
|
|
Binary file not shown.
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2020-06-09 21:11+0100\n"
|
||||
"Last-Translator: Lukas Heroudek <lukas.heroudek@gmail.com>\n"
|
||||
"Language: cs_CZ\n"
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2021-08-01 17:24+0200\n"
|
||||
"Last-Translator: Ozzie Isaacs\n"
|
||||
"Language: de\n"
|
||||
|
|
Binary file not shown.
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Depountis Georgios\n"
|
||||
"Language: el\n"
|
||||
|
|
Binary file not shown.
|
@ -9,7 +9,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2020-05-25 17:22+0200\n"
|
||||
"Last-Translator: minakmostoles <xxx@xxx.com>\n"
|
||||
"Language: es\n"
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2020-01-12 13:56+0100\n"
|
||||
"Last-Translator: Samuli Valavuo <svalavuo@gmail.com>\n"
|
||||
"Language: fi\n"
|
||||
|
|
Binary file not shown.
|
@ -22,7 +22,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2020-06-07 06:47+0200\n"
|
||||
"Last-Translator: <thovi98@gmail.com>\n"
|
||||
"Language: fr\n"
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2019-04-06 23:36+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: hu\n"
|
||||
|
|
Binary file not shown.
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2017-04-04 15:09+0200\n"
|
||||
"Last-Translator: ElQuimm <quimm@webtaste.com>\n"
|
||||
"Language: it\n"
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2018-02-07 02:20-0500\n"
|
||||
"Last-Translator: white <space_white@yahoo.com>\n"
|
||||
"Language: ja\n"
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2018-08-27 17:06+0700\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: km_KH\n"
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web (GPLV3)\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2020-12-12 08:20+0100\n"
|
||||
"Last-Translator: Marcel Maas <marcel.maas@outlook.com>\n"
|
||||
"Language: nl\n"
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre Web - polski (POT: 2021-06-12 08:52)\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2021-06-12 15:35+0200\n"
|
||||
"Last-Translator: Radosław Kierznowski <radek.kierznowski@outlook.com>\n"
|
||||
"Language: pl\n"
|
||||
|
|
Binary file not shown.
|
@ -4,7 +4,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: br\n"
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2020-04-29 01:20+0400\n"
|
||||
"Last-Translator: ZIZA\n"
|
||||
"Language: ru\n"
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2021-05-13 11:00+0000\n"
|
||||
"Last-Translator: Jonatan Nyberg <jonatan.nyberg.karl@gmail.com>\n"
|
||||
"Language: sv\n"
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2020-04-23 22:47+0300\n"
|
||||
"Last-Translator: iz <iz7iz7iz@protonmail.ch>\n"
|
||||
"Language: tr\n"
|
||||
|
|
Binary file not shown.
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-web\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/calibre-web\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2017-04-30 00:47+0300\n"
|
||||
"Last-Translator: ABIS Team <biblio.if.abis@gmail.com>\n"
|
||||
"Language: uk\n"
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2020-09-27 22:18+0800\n"
|
||||
"Last-Translator: xlivevil <xlivevil@aliyun.com>\n"
|
||||
"Language: zh_CN\n"
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Calibre-Web\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: 2020-09-27 22:18+0800\n"
|
||||
"Last-Translator: xlivevil <xlivevil@aliyun.com>\n"
|
||||
"Language: zh_TW\n"
|
||||
|
|
16
cps/ub.py
16
cps/ub.py
|
@ -62,22 +62,6 @@ searched_ids = {}
|
|||
|
||||
logged_in = dict()
|
||||
|
||||
def store_user_session():
|
||||
if flask_session.get('_user_id', ""):
|
||||
if logged_in.get(flask_session.get('_user_id', "")):
|
||||
logged_in[flask_session.get('_user_id', "")].append(flask_session.get('_id', ""))
|
||||
else:
|
||||
logged_in[flask_session.get('_user_id', "")] = [flask_session.get('_id', "")]
|
||||
log.info(flask_session.get('_id', ""))
|
||||
|
||||
def delete_user_session(user_id, session_key):
|
||||
try:
|
||||
logged_in.get(str(user_id), []).remove(session_key)
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
def check_user_session(user_id, session_key):
|
||||
return session_key in logged_in.get(str(user_id), [])
|
||||
|
||||
def signal_store_user_session(object, user):
|
||||
store_user_session()
|
||||
|
|
|
@ -339,7 +339,7 @@ def get_matching_tags():
|
|||
|
||||
|
||||
def get_sort_function(sort, data):
|
||||
order = [db.Books.sort]
|
||||
order = [db.Books.timestamp.desc()]
|
||||
if sort == 'stored':
|
||||
sort = current_user.get_view_property(data, 'stored')
|
||||
else:
|
||||
|
@ -369,7 +369,7 @@ def get_sort_function(sort, data):
|
|||
if sort == 'hotasc':
|
||||
order = [func.count(ub.Downloads.book_id).asc()]
|
||||
if sort is None:
|
||||
sort = "abc"
|
||||
sort = "new"
|
||||
return order, sort
|
||||
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-10-30 16:37+0200\n"
|
||||
"POT-Creation-Date: 2021-11-20 11:24+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
Loading…
Reference in New Issue
Block a user