From 308fd55483239e06f4dec90000727b5eae93e0cb Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Sat, 9 May 2020 20:29:17 +0200 Subject: [PATCH] #1141 (Setting for file size limit on email) --- cps/admin.py | 9 +++++---- cps/config_sql.py | 2 +- cps/helper.py | 28 +++++++++++++++------------- cps/templates/email_edit.html | 6 +++--- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/cps/admin.py b/cps/admin.py index aeeb2f59..8f627bd2 100644 --- a/cps/admin.py +++ b/cps/admin.py @@ -485,8 +485,8 @@ def basic_configuration(): return _configuration_result() -def _config_int(to_save, x): - return config.set_from_dictionary(to_save, x, int) +def _config_int(to_save, x, func=int): + return config.set_from_dictionary(to_save, x, func) def _config_checkbox(to_save, x): @@ -694,7 +694,7 @@ def _configuration_update_helper(): if not db.setup_db(config): return _configuration_result(_('DB Location is not Valid, Please Enter Correct Path'), gdriveError) if not os.access(os.path.join(config.config_calibre_dir, "metadata.db"), os.W_OK): - flash(_(u"DB is not writeable"), category="warning") + flash(_(u"DB is not Writeable"), category="warning") config.save() flash(_(u"Calibre-Web configuration updated"), category="success") @@ -901,7 +901,7 @@ def edit_mailsettings(): @admin_required def update_mailsettings(): to_save = request.form.to_dict() - log.debug("update_mailsettings %r", to_save) + # log.debug("update_mailsettings %r", to_save) _config_string(to_save, "mail_server") _config_int(to_save, "mail_port") @@ -909,6 +909,7 @@ def update_mailsettings(): _config_string(to_save, "mail_login") _config_string(to_save, "mail_password") _config_string(to_save, "mail_from") + _config_int(to_save, "mail_size", lambda y: int(y)*1024*1024) config.save() if to_save.get("test"): diff --git a/cps/config_sql.py b/cps/config_sql.py index a31f8243..08636f6d 100644 --- a/cps/config_sql.py +++ b/cps/config_sql.py @@ -53,7 +53,7 @@ class _Settings(_Base): mail_login = Column(String, default='mail@example.com') mail_password = Column(String, default='mypassword') mail_from = Column(String, default='automailer ') - mail_size = Column(Integer, default=25) + mail_size = Column(Integer, default=25*1024*1024) config_calibre_dir = Column(String) config_port = Column(Integer, default=constants.DEFAULT_PORT) diff --git a/cps/helper.py b/cps/helper.py index 56647863..20d62e8c 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -145,22 +145,24 @@ def check_send_to_kindle(entry): if not config.config_converterpath: # no converter - only for mobi and pdf formats for ele in iter(entry.data): - if 'MOBI' in ele.format: - bookformats.append({'format': 'Mobi', - 'convert': 0, - 'text': _('Send %(format)s to Kindle', format='Mobi')}) - if 'PDF' in ele.format: - bookformats.append({'format': 'Pdf', - 'convert': 0, - 'text': _('Send %(format)s to Kindle', format='Pdf')}) - if 'AZW' in ele.format: - bookformats.append({'format': 'Azw', - 'convert': 0, - 'text': _('Send %(format)s to Kindle', format='Azw')}) + if ele.uncompressed_size < config.mail_size: + if 'MOBI' in ele.format: + bookformats.append({'format': 'Mobi', + 'convert': 0, + 'text': _('Send %(format)s to Kindle', format='Mobi')}) + if 'PDF' in ele.format: + bookformats.append({'format': 'Pdf', + 'convert': 0, + 'text': _('Send %(format)s to Kindle', format='Pdf')}) + if 'AZW' in ele.format: + bookformats.append({'format': 'Azw', + 'convert': 0, + 'text': _('Send %(format)s to Kindle', format='Azw')}) else: formats = list() for ele in iter(entry.data): - formats.append(ele.format) + if ele.uncompressed_size < config.mail_size: + formats.append(ele.format) if 'MOBI' in formats: bookformats.append({'format': 'Mobi', 'convert': 0, diff --git a/cps/templates/email_edit.html b/cps/templates/email_edit.html index 7a198c14..997909c2 100644 --- a/cps/templates/email_edit.html +++ b/cps/templates/email_edit.html @@ -13,7 +13,7 @@
- +
@@ -37,9 +37,9 @@
- + - +