mirror of
				https://github.com/janeczku/calibre-web
				synced 2025-10-31 07:13:02 +00:00 
			
		
		
		
	merge
This commit is contained in:
		| @@ -36,7 +36,7 @@ $(function() { | ||||
|             success: function(data) { | ||||
|                 $('#spinner').show(); | ||||
|                 displaytext=data.text; | ||||
|                 window.setTimeout(restartTimer, 3000);} | ||||
|                 setTimeout(restartTimer, 3000);} | ||||
|         }); | ||||
|     }); | ||||
|     $("#shutdown").click(function() { | ||||
| @@ -110,7 +110,8 @@ function updateTimer() { | ||||
|         $('#UpdateprogressDialog #updateFinished').removeClass('hidden'); | ||||
|         $("#check_for_update").removeClass('hidden'); | ||||
|         $("#perform_update").addClass('hidden'); | ||||
|         } | ||||
|         }, | ||||
|     timeout:2000 | ||||
|     }); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,27 @@ | ||||
| {% extends "layout.html" %} | ||||
| {% block body %} | ||||
|   <h3>{{_('Calibre library statistics')}}</h3> | ||||
| <table id="stats" class="table"> | ||||
|   <tbody> | ||||
|     <tr> | ||||
|       <th>{{bookcounter}}</th> | ||||
|       <td>{{_('Books in this Library')}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>{{authorcounter}}</th> | ||||
|       <td>{{_('Authors in this Library')}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>{{categorycounter}}</th> | ||||
|       <td>{{_('Categories in this Library')}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>{{seriecounter}}</th> | ||||
|       <td>{{_('Series in this Library')}}</td> | ||||
|     </tr> | ||||
|   </tbody> | ||||
| </table> | ||||
|   <h3>{{_('Linked libraries')}}</h3> | ||||
|  | ||||
| <table id="libs" class="table"> | ||||
|   <thead> | ||||
|     <tr> | ||||
| @@ -24,30 +44,44 @@ | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>PyPDF2</th> | ||||
|       <td>{{versions['PyPdfVersion']}}</td> | ||||
|       <td>v{{versions['PyPdfVersion']}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>Babel</th> | ||||
|       <td>v{{versions['babel']}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>SqlAlchemy</th> | ||||
|       <td>v{{versions['sqlalchemy']}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>Flask</th> | ||||
|       <td>v{{versions['flask']}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>Flask Login</th> | ||||
|       <td>v{{versions['flasklogin']}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>Flask Principal</th> | ||||
|       <td>v{{versions['flask_principal']}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>Tornado web server</th> | ||||
|       <td>v{{versions['tornado']}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>ISO639 Languages</th> | ||||
|       <td>v{{versions['iso639']}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>Requests</th> | ||||
|       <td>v{{versions['requests']}}</td> | ||||
|     </tr> | ||||
|  | ||||
|   </tbody> | ||||
| </table> | ||||
|  | ||||
|   <h3>{{_('Calibre library statistics')}}</h3> | ||||
| <table id="stats" class="table"> | ||||
|   <tbody> | ||||
|     <tr> | ||||
|       <th>{{bookcounter}}</th> | ||||
|       <td>{{_('Books in this Library')}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>{{authorcounter}}</th> | ||||
|       <td>{{_('Authors in this Library')}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>{{categorycounter}}</th> | ||||
|       <td>{{_('Categories in this Library')}}</td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <th>{{seriecounter}}</th> | ||||
|       <td>{{_('Series in this Library')}}</td> | ||||
|     </tr> | ||||
|   </tbody> | ||||
| </table> | ||||
| {% endblock %} | ||||
|  | ||||
|  | ||||
|   | ||||
							
								
								
									
										23
									
								
								cps/web.py
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								cps/web.py
									
									
									
									
									
								
							| @@ -4,8 +4,9 @@ import mimetypes | ||||
| import logging | ||||
| from logging.handlers import RotatingFileHandler | ||||
| import textwrap | ||||
| from flask import Flask, render_template, session, request, Response, redirect, url_for, send_from_directory, \ | ||||
| from flask import Flask, render_template, request, Response, redirect, url_for, send_from_directory, \ | ||||
|     make_response, g, flash, abort | ||||
| from flask import __version__ as flaskVersion | ||||
| import ub | ||||
| from ub import config | ||||
| import helper | ||||
| @@ -14,9 +15,12 @@ import errno | ||||
| from sqlalchemy.sql.expression import func | ||||
| from sqlalchemy.sql.expression import false | ||||
| from sqlalchemy.exc import IntegrityError | ||||
| from sqlalchemy import __version__ as sqlalchemyVersion | ||||
| from math import ceil | ||||
| from flask_login import LoginManager, login_user, logout_user, login_required, current_user | ||||
| from flask_login import __version__ as flask_loginVersion | ||||
| from flask_principal import Principal, Identity, AnonymousIdentity, identity_changed | ||||
| from flask_login import __version__ as flask_principalVersion | ||||
| from flask_babel import Babel | ||||
| from flask_babel import gettext as _ | ||||
| import requests | ||||
| @@ -24,6 +28,7 @@ import zipfile | ||||
| from werkzeug.security import generate_password_hash, check_password_hash | ||||
| from babel import Locale as LC | ||||
| from babel import negotiate_locale | ||||
| from babel import __version__ as babelVersion | ||||
| from babel.dates import format_date | ||||
| from functools import wraps | ||||
| import base64 | ||||
| @@ -32,16 +37,16 @@ import json | ||||
| import urllib | ||||
| import datetime | ||||
| from iso639 import languages as isoLanguages | ||||
| from iso639 import __version__ as iso639Version | ||||
| from uuid import uuid4 | ||||
| import os.path | ||||
| import sys | ||||
| import subprocess | ||||
| import re | ||||
| import db | ||||
| import thread | ||||
| from shutil import move, copyfile | ||||
| from tornado.ioloop import IOLoop | ||||
|  | ||||
| from tornado import version as tornadoVersion | ||||
|  | ||||
| try: | ||||
|     from wand.image import Image | ||||
| @@ -1042,6 +1047,15 @@ def stats(): | ||||
|             if re.search('Amazon kindlegen\(', lines): | ||||
|                 versions['KindlegenVersion'] = lines | ||||
|     versions['PythonVersion'] = sys.version | ||||
|     versions['babel'] = babelVersion | ||||
|     versions['sqlalchemy'] = sqlalchemyVersion | ||||
|     versions['flask'] = flaskVersion | ||||
|     versions['flasklogin'] = flask_loginVersion | ||||
|     versions['flask_principal'] = flask_principalVersion | ||||
|     versions['tornado'] = tornadoVersion | ||||
|     versions['iso639'] = iso639Version | ||||
|     versions['requests'] = requests.__version__ | ||||
|  | ||||
|     return render_title_template('stats.html', bookcounter=counter, authorcounter=authors, versions=versions, | ||||
|                                  categorycounter=categorys, seriecounter=series, title=_(u"Statistics")) | ||||
|  | ||||
| @@ -1796,6 +1810,8 @@ def edit_mailsettings(): | ||||
|                       category="success") | ||||
|             else: | ||||
|                 flash(_(u"There was an error sending the Test E-Mail: %(res)s", res=result), category="error") | ||||
|         else: | ||||
|             flash(_(u"E-Mail settings updated"), category="success") | ||||
|     return render_title_template("email_edit.html", content=content, title=_(u"Edit mail settings")) | ||||
|  | ||||
|  | ||||
| @@ -2136,7 +2152,6 @@ def upload(): | ||||
|     db.session.connection().connection.connection.create_function("title_sort", 1, db.title_sort) | ||||
|     db.session.connection().connection.connection.create_function('uuid4', 0, lambda: str(uuid4())) | ||||
|     if request.method == 'POST' and 'btn-upload' in request.files: | ||||
|         file = request.files['btn-upload'] | ||||
|         file = request.files['btn-upload'] | ||||
|         if '.' in file.filename: | ||||
|             file_ext = file.filename.rsplit('.', 1)[-1].lower() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 idalin
					idalin