mirror of
				https://github.com/janeczku/calibre-web
				synced 2025-10-31 07:13:02 +00:00 
			
		
		
		
	Bugfix for #2433 (LazyString is not JSON serializable if one of kepubify/ebook-convert/unrar is not installed)
This commit is contained in:
		| @@ -22,6 +22,7 @@ import glob | |||||||
| import zipfile | import zipfile | ||||||
| import json | import json | ||||||
| from io import BytesIO | from io import BytesIO | ||||||
|  | from flask_babel.speaklater import LazyString | ||||||
|  |  | ||||||
| import os | import os | ||||||
|  |  | ||||||
| @@ -32,6 +33,12 @@ from .about import collect_stats | |||||||
|  |  | ||||||
| log = logger.create() | log = logger.create() | ||||||
|  |  | ||||||
|  | class lazyEncoder(json.JSONEncoder): | ||||||
|  |     def default(self, obj): | ||||||
|  |         if isinstance(obj, LazyString): | ||||||
|  |             return str(obj) | ||||||
|  |         # Let the base class default method raise the TypeError | ||||||
|  |         return json.JSONEncoder.default(self, obj) | ||||||
|  |  | ||||||
| def assemble_logfiles(file_name): | def assemble_logfiles(file_name): | ||||||
|     log_list = sorted(glob.glob(file_name + '*'), reverse=True) |     log_list = sorted(glob.glob(file_name + '*'), reverse=True) | ||||||
| @@ -58,8 +65,8 @@ def send_debug(): | |||||||
|             file_list.remove(element) |             file_list.remove(element) | ||||||
|     memory_zip = BytesIO() |     memory_zip = BytesIO() | ||||||
|     with zipfile.ZipFile(memory_zip, 'w', compression=zipfile.ZIP_DEFLATED) as zf: |     with zipfile.ZipFile(memory_zip, 'w', compression=zipfile.ZIP_DEFLATED) as zf: | ||||||
|         zf.writestr('settings.txt', json.dumps(config.toDict())) |         zf.writestr('settings.txt', json.dumps(config.toDict(), sort_keys=True, indent=2)) | ||||||
|         zf.writestr('libs.txt', json.dumps(collect_stats())) |         zf.writestr('libs.txt', json.dumps(collect_stats(), sort_keys=True, indent=2, cls=lazyEncoder)) | ||||||
|         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) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Ozzie Isaacs
					Ozzie Isaacs