Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cover not Available for books uploaded into Calibre-Web #3054

Open
kanjieater opened this issue May 13, 2024 · 5 comments
Open

Cover not Available for books uploaded into Calibre-Web #3054

kanjieater opened this issue May 13, 2024 · 5 comments

Comments

@kanjieater
Copy link

kanjieater commented May 13, 2024

Describe the bug/problem

Books uploaded to Calibre-web don't add covers. Books added via classic Calibre do (Manually updated one that has an image here)
image

To Reproduce

Steps to reproduce the behavior:

  1. Upload a few books
  2. No cover is generated.

Logfile

calibre-web.log

Expected behavior

Covers should be generated
image

If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

  • OS: Windows
  • Python version: 3.10.10
  • Calibre-Web version: [e.g. 0.6.8 or 087c4c5 (git rev-parse --short HEAD)]:
  • Docker container: [None/LinuxServer]: (moving to LinuxServer soon, but currently none)
  • Special Hardware: Windows PC
  • Browser: Chrome

Additional context
Add any other context about the problem here. [e.g. access via reverse proxy, database background sync, special database location]

@OzzieIsaacs
Copy link
Collaborator

Please activate debug level logging end check the output. I guess you are missing dependency like imagemagick or so.
Please check if the cover files are in the respective folders, if yes, there is a permission problem (should also be visible in the log file afterwards)

@kanjieater
Copy link
Author

Switched to docker and it works

@kanjieater
Copy link
Author

kanjieater commented May 23, 2024

image

Even after switching to the linuxserver docker image, a lot of books do add images, but some do not. They always do from calibre classic though

Trying to add it again
image

calibre-web  | Message: 'Author アサギリ カフカ not found to display name in right order'
                    calibre-web  | Arguments: ()
                    calibre-web  | --- Logging error ---
                    calibre-web  | Traceback (most recent call last):
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 74, in emit
                    calibre-web  |     self.doRollover()
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 179, in doRollover
                    calibre-web  |     self.rotate(self.baseFilename, dfn)
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 115, in rotate
                    calibre-web  |     os.rename(source, dest)
                    calibre-web  | PermissionError: [Errno 13] Permission denied: '/config/calibre-web.log' -> '/config/calibre-web.log.1'
                    calibre-web  | Call stack:
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/baseserver.py", line 34, in _handle_and_close_when_done
                    calibre-web  |     return handle(*args_tuple)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1700, in handle
                    calibre-web  |     handler.handle()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 574, in handle
                    calibre-web  |     result = self.handle_one_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 804, in handle_one_request
                    calibre-web  |     self.handle_one_response()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1107, in handle_one_response
                    calibre-web  |     self.run_application()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1053, in run_application
                    calibre-web  |     self.result = self.application(self.environ, self.start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2213, in __call__
                    calibre-web  |     return self.wsgi_app(environ, start_response)
                    calibre-web  |   File "/app/calibre-web/cps/reverseproxy.py", line 79, in __call__
                    calibre-web  |     return self.app(environ, start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app
                    calibre-web  |     response = self.full_dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
                    calibre-web  |     rv = self.dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
                    calibre-web  |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
                    calibre-web  |   File "/app/calibre-web/cps/usermanagement.py", line 35, in decorated_view
                    calibre-web  |     return login_required(func)(*args, **kwargs)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask_login/utils.py", line 290, in decorated_view
                    calibre-web  |     return current_app.ensure_sync(func)(*args, **kwargs)
                    calibre-web  |   File "/app/calibre-web/cps/web.py", line 790, in index
                    calibre-web  |     return render_books_list("newest", sort_param, 1, page)
                    calibre-web  |   File "/app/calibre-web/cps/web.py", line 408, in render_books_list
                    calibre-web  |     entries, random, pagination = calibre_db.fill_indexpage(page, 0, db.Books, True, order[0],
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 803, in fill_indexpage
                    calibre-web  |     return self.fill_indexpage_with_archived_books(page, database, pagesize, db_filter, order, False,
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 848, in fill_indexpage_with_archived_books
                    calibre-web  |     entries = self.order_authors(entries, True, join_archive_read)
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 867, in order_authors
                    calibre-web  |     log.error("Author {} not found to display name in right order".format(auth.strip()))
                    calibre-web  | Message: 'Author ユキナリ カオル not found to display name in right order'
                    calibre-web  | Arguments: ()
                    calibre-web  | --- Logging error ---
                    calibre-web  | Traceback (most recent call last):
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 74, in emit
                    calibre-web  |     self.doRollover()
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 179, in doRollover
                    calibre-web  |     self.rotate(self.baseFilename, dfn)
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 115, in rotate
                    calibre-web  |     os.rename(source, dest)
                    calibre-web  | PermissionError: [Errno 13] Permission denied: '/config/calibre-web.log' -> '/config/calibre-web.log.1'
                    calibre-web  | Call stack:
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/baseserver.py", line 34, in _handle_and_close_when_done
                    calibre-web  |     return handle(*args_tuple)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1700, in handle
                    calibre-web  |     handler.handle()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 574, in handle
                    calibre-web  |     result = self.handle_one_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 804, in handle_one_request
                    calibre-web  |     self.handle_one_response()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1107, in handle_one_response
                    calibre-web  |     self.run_application()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1053, in run_application
                    calibre-web  |     self.result = self.application(self.environ, self.start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2213, in __call__
                    calibre-web  |     return self.wsgi_app(environ, start_response)
                    calibre-web  |   File "/app/calibre-web/cps/reverseproxy.py", line 79, in __call__
                    calibre-web  |     return self.app(environ, start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app
                    calibre-web  |     response = self.full_dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
                    calibre-web  |     rv = self.dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
                    calibre-web  |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
                    calibre-web  |   File "/app/calibre-web/cps/usermanagement.py", line 35, in decorated_view
                    calibre-web  |     return login_required(func)(*args, **kwargs)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask_login/utils.py", line 290, in decorated_view
                    calibre-web  |     return current_app.ensure_sync(func)(*args, **kwargs)
                    calibre-web  |   File "/app/calibre-web/cps/web.py", line 790, in index
                    calibre-web  |     return render_books_list("newest", sort_param, 1, page)
                    calibre-web  |   File "/app/calibre-web/cps/web.py", line 408, in render_books_list
                    calibre-web  |     entries, random, pagination = calibre_db.fill_indexpage(page, 0, db.Books, True, order[0],
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 803, in fill_indexpage
                    calibre-web  |     return self.fill_indexpage_with_archived_books(page, database, pagesize, db_filter, order, False,
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 848, in fill_indexpage_with_archived_books
                    calibre-web  |     entries = self.order_authors(entries, True, join_archive_read)
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 867, in order_authors
                    calibre-web  |     log.error("Author {} not found to display name in right order".format(auth.strip()))
                    calibre-web  | Message: 'Author ナナシノコウセイ not found to display name in right order'
                    calibre-web  | Arguments: ()
                    calibre-web  | --- Logging error ---
                    calibre-web  | Traceback (most recent call last):
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 74, in emit
                    calibre-web  |     self.doRollover()
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 179, in doRollover
                    calibre-web  |     self.rotate(self.baseFilename, dfn)
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 115, in rotate
                    calibre-web  |     os.rename(source, dest)
                    calibre-web  | PermissionError: [Errno 13] Permission denied: '/config/calibre-web.log' -> '/config/calibre-web.log.1'
                    calibre-web  | Call stack:
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/baseserver.py", line 34, in _handle_and_close_when_done
                    calibre-web  |     return handle(*args_tuple)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1700, in handle
                    calibre-web  |     handler.handle()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 574, in handle
                    calibre-web  |     result = self.handle_one_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 804, in handle_one_request
                    calibre-web  |     self.handle_one_response()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1107, in handle_one_response
                    calibre-web  |     self.run_application()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1053, in run_application
                    calibre-web  |     self.result = self.application(self.environ, self.start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2213, in __call__
                    calibre-web  |     return self.wsgi_app(environ, start_response)
                    calibre-web  |   File "/app/calibre-web/cps/reverseproxy.py", line 79, in __call__
                    calibre-web  |     return self.app(environ, start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app
                    calibre-web  |     response = self.full_dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
                    calibre-web  |     rv = self.dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
                    calibre-web  |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
                    calibre-web  |   File "/app/calibre-web/cps/usermanagement.py", line 35, in decorated_view
                    calibre-web  |     return login_required(func)(*args, **kwargs)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask_login/utils.py", line 290, in decorated_view
                    calibre-web  |     return current_app.ensure_sync(func)(*args, **kwargs)
                    calibre-web  |   File "/app/calibre-web/cps/web.py", line 790, in index
                    calibre-web  |     return render_books_list("newest", sort_param, 1, page)
                    calibre-web  |   File "/app/calibre-web/cps/web.py", line 408, in render_books_list
                    calibre-web  |     entries, random, pagination = calibre_db.fill_indexpage(page, 0, db.Books, True, order[0],
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 803, in fill_indexpage
                    calibre-web  |     return self.fill_indexpage_with_archived_books(page, database, pagesize, db_filter, order, False,
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 848, in fill_indexpage_with_archived_books
                    calibre-web  |     entries = self.order_authors(entries, True, join_archive_read)
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 867, in order_authors
                    calibre-web  |     log.error("Author {} not found to display name in right order".format(auth.strip()))
                    calibre-web  | Message: 'Author アサギリ カフカ not found to display name in right order'
                    calibre-web  | Arguments: ()
                    calibre-web  | --- Logging error ---
                    calibre-web  | Traceback (most recent call last):
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 74, in emit
                    calibre-web  |     self.doRollover()
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 179, in doRollover
                    calibre-web  |     self.rotate(self.baseFilename, dfn)
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 115, in rotate
                    calibre-web  |     os.rename(source, dest)
                    calibre-web  | PermissionError: [Errno 13] Permission denied: '/config/calibre-web.log' -> '/config/calibre-web.log.1'
                    calibre-web  | Call stack:
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/baseserver.py", line 34, in _handle_and_close_when_done
                    calibre-web  |     return handle(*args_tuple)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1700, in handle
                    calibre-web  |     handler.handle()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 574, in handle
                    calibre-web  |     result = self.handle_one_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 804, in handle_one_request
                    calibre-web  |     self.handle_one_response()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1107, in handle_one_response
                    calibre-web  |     self.run_application()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1053, in run_application
                    calibre-web  |     self.result = self.application(self.environ, self.start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2213, in __call__
                    calibre-web  |     return self.wsgi_app(environ, start_response)
                    calibre-web  |   File "/app/calibre-web/cps/reverseproxy.py", line 79, in __call__
                    calibre-web  |     return self.app(environ, start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app
                    calibre-web  |     response = self.full_dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
                    calibre-web  |     rv = self.dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
                    calibre-web  |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
                    calibre-web  |   File "/app/calibre-web/cps/usermanagement.py", line 35, in decorated_view
                    calibre-web  |     return login_required(func)(*args, **kwargs)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask_login/utils.py", line 290, in decorated_view
                    calibre-web  |     return current_app.ensure_sync(func)(*args, **kwargs)
                    calibre-web  |   File "/app/calibre-web/cps/web.py", line 790, in index
                    calibre-web  |     return render_books_list("newest", sort_param, 1, page)
                    calibre-web  |   File "/app/calibre-web/cps/web.py", line 408, in render_books_list
                    calibre-web  |     entries, random, pagination = calibre_db.fill_indexpage(page, 0, db.Books, True, order[0],
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 803, in fill_indexpage
                    calibre-web  |     return self.fill_indexpage_with_archived_books(page, database, pagesize, db_filter, order, False,
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 848, in fill_indexpage_with_archived_books
                    calibre-web  |     entries = self.order_authors(entries, True, join_archive_read)
                    calibre-web  |   File "/app/calibre-web/cps/db.py", line 867, in order_authors
                    calibre-web  |     log.error("Author {} not found to display name in right order".format(auth.strip()))
                    calibre-web  | Message: 'Author アサギリ カフカ not found to display name in right order'
                    calibre-web  | Arguments: ()
                    calibre-web  | --- Logging error ---
                    calibre-web  | Traceback (most recent call last):
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 74, in emit
                    calibre-web  |     self.doRollover()
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 179, in doRollover
                    calibre-web  |     self.rotate(self.baseFilename, dfn)
                    calibre-web  |   File "/usr/lib/python3.10/logging/handlers.py", line 115, in rotate
                    calibre-web  |     os.rename(source, dest)
                    calibre-web  | PermissionError: [Errno 13] Permission denied: '/config/calibre-web.log' -> '/config/calibre-web.log.1'
                    calibre-web  | Call stack:
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/baseserver.py", line 34, in _handle_and_close_when_done
                    calibre-web  |     return handle(*args_tuple)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1700, in handle
                    calibre-web  |     handler.handle()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 574, in handle
                    calibre-web  |     result = self.handle_one_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 804, in handle_one_request
                    calibre-web  |     self.handle_one_response()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1107, in handle_one_response
                    calibre-web  |     self.run_application()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/gevent/pywsgi.py", line 1053, in run_application
                    calibre-web  |     self.result = self.application(self.environ, self.start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2213, in __call__
                    calibre-web  |     return self.wsgi_app(environ, start_response)
                    calibre-web  |   File "/app/calibre-web/cps/reverseproxy.py", line 79, in __call__
                    calibre-web  |     return self.app(environ, start_response)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app
                    calibre-web  |     response = self.full_dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
                    calibre-web  |     rv = self.dispatch_request()
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
                    calibre-web  |     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
                    calibre-web  |   File "/app/calibre-web/cps/usermanagement.py", line 35, in decorated_view
                    calibre-web  |     return login_required(func)(*args, **kwargs)
                    calibre-web  |   File "/lsiopy/lib/python3.10/site-packages/flask_login/utils.py", line 290, in decorated_view
                    calibre-web  |     return current_app.ensure_sync(func)(*args, **kwargs)
                    calibre-web  |   File "/app/calibre-web/cps/editbooks.py", line 62, in inner
                    calibre-web  |     return f(*args, **kwargs)
                    calibre-web  |   File "/app/calibre-web/cps/editbooks.py", line 257, in upload
                    calibre-web  |     db_book, input_authors, title_dir, renamed_authors = create_book_on_upload(modify_date, meta)
                    calibre-web  |   File "/app/calibre-web/cps/editbooks.py", line 666, in create_book_on_upload
                    calibre-web  |     sort_authors, input_authors, db_author, renamed_authors = prepare_authors_on_upload(title, authr)
                    calibre-web  |   File "/app/calibre-web/cps/editbooks.py", line 638, in prepare_authors_on_upload
                    calibre-web  |     log.info("Uploaded book probably exists in library")
                    calibre-web  | Message: 'Uploaded book probably exists in library'
                    calibre-web  | Arguments: ()

Is there something I should be looking for in the logs?

@kanjieater
Copy link
Author

@OzzieIsaacs Is docker unsupported? Why the Invalid tag?

@OzzieIsaacs
Copy link
Collaborator

I asked you two questions and gave you a hint regarding your problem. I think it would have taken about 1minute to answer it. Instead you installed a docker container, which adds another level of complexity. The outcome was another problem (permission error for log file rotation. So my conclusion is: I can't help you.

And yes,I'm not supporting the docker container

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants