Merge branch 'master' into Develop

This commit is contained in:
Ozzie Isaacs 2021-06-06 12:18:04 +02:00
commit 9fea5a55f4
5 changed files with 26 additions and 13 deletions

View File

@ -584,7 +584,7 @@ class CalibreDB():
if not cc_classes: if not cc_classes:
try: 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) cls.setup_db_cc_classes(cc)
except OperationalError as e: except OperationalError as e:
log.debug_or_exception(e) log.debug_or_exception(e)

View File

@ -29,7 +29,7 @@ except ImportError:
import os import os
from flask import send_file from flask import send_file, __version__
from . import logger, config from . import logger, config
from .about import collect_stats from .about import collect_stats
@ -43,9 +43,15 @@ def assemble_logfiles(file_name):
with open(f, 'r') as fd: with open(f, 'r') as fd:
shutil.copyfileobj(fd, wfd) shutil.copyfileobj(fd, wfd)
wfd.seek(0) wfd.seek(0)
if int(__version__.split('.')[0]) < 2:
return send_file(wfd, return send_file(wfd,
as_attachment=True, as_attachment=True,
attachment_filename=os.path.basename(file_name)) 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(): def send_debug():
file_list = glob.glob(logger.get_logfile(config.config_logfile) + '*') file_list = glob.glob(logger.get_logfile(config.config_logfile) + '*')
@ -60,6 +66,11 @@ def send_debug():
for fp in file_list: for fp in file_list:
zf.write(fp, os.path.basename(fp)) zf.write(fp, os.path.basename(fp))
memory_zip.seek(0) memory_zip.seek(0)
if int(__version__.split('.')[0]) < 2:
return send_file(memory_zip, return send_file(memory_zip,
as_attachment=True, as_attachment=True,
attachment_filename="Calibre-Web-debug-pack.zip") attachment_filename="Calibre-Web-debug-pack.zip")
else:
return send_file(memory_zip,
as_attachment=True,
download_name="Calibre-Web-debug-pack.zip")

View File

@ -34,6 +34,7 @@ try:
except ImportError: except ImportError:
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.exc import OperationalError, InvalidRequestError from sqlalchemy.exc import OperationalError, InvalidRequestError
from sqlalchemy.sql.expression import text
try: try:
from apiclient import errors from apiclient import errors
@ -168,7 +169,7 @@ class PermissionAdded(Base):
def migrate(): def migrate():
if not engine.dialect.has_table(engine.connect(), "permissions_added"): if not engine.dialect.has_table(engine.connect(), "permissions_added"):
PermissionAdded.__table__.create(bind = engine) 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]: if 'CREATE TABLE gdrive_ids' in sql[0]:
currUniqueConstraint = 'UNIQUE (gdrive_id)' currUniqueConstraint = 'UNIQUE (gdrive_id)'
if currUniqueConstraint in sql[0]: if currUniqueConstraint in sql[0]:

View File

@ -485,11 +485,12 @@ def migrate_registration_table(engine, session):
# Remove login capability of user Guest # Remove login capability of user Guest
def migrate_guest_password(engine, session): def migrate_guest_password(engine):
try: try:
with engine.connect() as conn: with engine.connect() as conn:
trans = conn.begin()
conn.execute(text("UPDATE user SET password='' where name = 'Guest' and password !=''")) conn.execute(text("UPDATE user SET password='' where name = 'Guest' and password !=''"))
session.commit() trans.commit()
except exc.OperationalError: except exc.OperationalError:
print('Settings database is not writeable. Exiting...') print('Settings database is not writeable. Exiting...')
sys.exit(2) sys.exit(2)
@ -648,7 +649,7 @@ def migrate_Database(session):
is None: is None:
create_anonymous_user(session) create_anonymous_user(session)
migrate_guest_password(engine, session) migrate_guest_password(engine)
def clean_database(session): def clean_database(session):

View File

@ -210,7 +210,7 @@ class Updater(threading.Thread):
def moveallfiles(cls, root_src_dir, root_dst_dir): def moveallfiles(cls, root_src_dir, root_dst_dir):
new_permissions = os.stat(root_dst_dir) new_permissions = os.stat(root_dst_dir)
log.debug('Performing Update on OS-System: %s', sys.platform) 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): for src_dir, __, files in os.walk(root_src_dir):
dst_dir = src_dir.replace(root_src_dir, root_dst_dir, 1) dst_dir = src_dir.replace(root_src_dir, root_dst_dir, 1)
if not os.path.exists(dst_dir): if not os.path.exists(dst_dir):