Merge branch 'master' into Develop
This commit is contained in:
		
						commit
						9fea5a55f4
					
				| 
						 | 
				
			
			@ -584,7 +584,7 @@ class CalibreDB():
 | 
			
		|||
 | 
			
		||||
        if not cc_classes:
 | 
			
		||||
            try:
 | 
			
		||||
                cc = conn.execute("SELECT id, datatype FROM custom_columns")
 | 
			
		||||
                cc = conn.execute(text("SELECT id, datatype FROM custom_columns"))
 | 
			
		||||
                cls.setup_db_cc_classes(cc)
 | 
			
		||||
            except OperationalError as e:
 | 
			
		||||
                log.debug_or_exception(e)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ except ImportError:
 | 
			
		|||
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
from flask import send_file
 | 
			
		||||
from flask import send_file, __version__
 | 
			
		||||
 | 
			
		||||
from . import logger, config
 | 
			
		||||
from .about import collect_stats
 | 
			
		||||
| 
						 | 
				
			
			@ -43,9 +43,15 @@ def assemble_logfiles(file_name):
 | 
			
		|||
        with open(f, 'r') as fd:
 | 
			
		||||
            shutil.copyfileobj(fd, wfd)
 | 
			
		||||
    wfd.seek(0)
 | 
			
		||||
    return send_file(wfd,
 | 
			
		||||
                     as_attachment=True,
 | 
			
		||||
                     attachment_filename=os.path.basename(file_name))
 | 
			
		||||
    if int(__version__.split('.')[0]) < 2:
 | 
			
		||||
        return send_file(wfd,
 | 
			
		||||
                         as_attachment=True,
 | 
			
		||||
                         attachment_filename=os.path.basename(file_name))
 | 
			
		||||
    else:
 | 
			
		||||
        return send_file(wfd,
 | 
			
		||||
                         as_attachment=True,
 | 
			
		||||
                         download_name=os.path.basename(file_name))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def send_debug():
 | 
			
		||||
    file_list = glob.glob(logger.get_logfile(config.config_logfile) + '*')
 | 
			
		||||
| 
						 | 
				
			
			@ -60,6 +66,11 @@ def send_debug():
 | 
			
		|||
        for fp in file_list:
 | 
			
		||||
            zf.write(fp, os.path.basename(fp))
 | 
			
		||||
    memory_zip.seek(0)
 | 
			
		||||
    return send_file(memory_zip,
 | 
			
		||||
                     as_attachment=True,
 | 
			
		||||
                     attachment_filename="Calibre-Web-debug-pack.zip")
 | 
			
		||||
    if int(__version__.split('.')[0]) < 2:
 | 
			
		||||
        return send_file(memory_zip,
 | 
			
		||||
                         as_attachment=True,
 | 
			
		||||
                         attachment_filename="Calibre-Web-debug-pack.zip")
 | 
			
		||||
    else:
 | 
			
		||||
        return send_file(memory_zip,
 | 
			
		||||
                         as_attachment=True,
 | 
			
		||||
                         download_name="Calibre-Web-debug-pack.zip")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,7 @@ try:
 | 
			
		|||
except ImportError:
 | 
			
		||||
    from sqlalchemy.ext.declarative import declarative_base
 | 
			
		||||
from sqlalchemy.exc import OperationalError, InvalidRequestError
 | 
			
		||||
from sqlalchemy.sql.expression import text
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    from apiclient import errors
 | 
			
		||||
| 
						 | 
				
			
			@ -168,7 +169,7 @@ class PermissionAdded(Base):
 | 
			
		|||
def migrate():
 | 
			
		||||
    if not engine.dialect.has_table(engine.connect(), "permissions_added"):
 | 
			
		||||
        PermissionAdded.__table__.create(bind = engine)
 | 
			
		||||
    for sql in session.execute("select sql from sqlite_master where type='table'"):
 | 
			
		||||
    for sql in session.execute(text("select sql from sqlite_master where type='table'")):
 | 
			
		||||
        if 'CREATE TABLE gdrive_ids' in sql[0]:
 | 
			
		||||
            currUniqueConstraint = 'UNIQUE (gdrive_id)'
 | 
			
		||||
            if currUniqueConstraint in sql[0]:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -485,11 +485,12 @@ def migrate_registration_table(engine, session):
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
# Remove login capability of user Guest
 | 
			
		||||
def migrate_guest_password(engine, session):
 | 
			
		||||
def migrate_guest_password(engine):
 | 
			
		||||
    try:
 | 
			
		||||
        with engine.connect() as conn:
 | 
			
		||||
            trans = conn.begin()
 | 
			
		||||
            conn.execute(text("UPDATE user SET password='' where name = 'Guest' and password !=''"))
 | 
			
		||||
        session.commit()
 | 
			
		||||
            trans.commit()
 | 
			
		||||
    except exc.OperationalError:
 | 
			
		||||
        print('Settings database is not writeable. Exiting...')
 | 
			
		||||
        sys.exit(2)
 | 
			
		||||
| 
						 | 
				
			
			@ -648,7 +649,7 @@ def migrate_Database(session):
 | 
			
		|||
       is None:
 | 
			
		||||
        create_anonymous_user(session)
 | 
			
		||||
 | 
			
		||||
    migrate_guest_password(engine, session)
 | 
			
		||||
    migrate_guest_password(engine)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def clean_database(session):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -210,7 +210,7 @@ class Updater(threading.Thread):
 | 
			
		|||
    def moveallfiles(cls, root_src_dir, root_dst_dir):
 | 
			
		||||
        new_permissions = os.stat(root_dst_dir)
 | 
			
		||||
        log.debug('Performing Update on OS-System: %s', sys.platform)
 | 
			
		||||
        change_permissions = (sys.platform == "win32" or sys.platform == "darwin")
 | 
			
		||||
        change_permissions = not (sys.platform == "win32" or sys.platform == "darwin")
 | 
			
		||||
        for src_dir, __, files in os.walk(root_src_dir):
 | 
			
		||||
            dst_dir = src_dir.replace(root_src_dir, root_dst_dir, 1)
 | 
			
		||||
            if not os.path.exists(dst_dir):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user