mirror of
				https://github.com/janeczku/calibre-web
				synced 2025-10-31 15:23:02 +00:00 
			
		
		
		
	Merge branch 'master' into Develop
This commit is contained in:
		
							
								
								
									
										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" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ozzieisaacs
					Ozzieisaacs