Casvt / Kapowarr

Kapowarr is a software to build and manage a comic book library, fitting in the *arr suite of software.
https://casvt.github.io/Kapowarr/
GNU General Public License v3.0
420 stars 15 forks source link

Crash when importing existing library #146

Closed tparker00 closed 6 months ago

tparker00 commented 6 months ago

Description of the bug

Appears similar to #120 I am running in a docker container against a library that was previously managed by mylar3, I've been slowly importing titles as the comicvine api allows but I'm guessing one of the ones I'm up to now is represented in a similar way

To Reproduce

  1. Go to: Volumes-> Library Import
  2. Set "Max folders scanned" to either 20 or 5.
  3. Click "Scan"
  4. Watching the terminal I can see the program crash out.

Expected behaviour

I would expect to get a list of the comics the program will import from my library.

Version info

Kapowarr version v1.0.0-beta-4 Python version 3.8.17.final.0 Database version 14 Database location /app/db/Kapowarr.db Data folder /app

Docker using mrcas/kapowarr:v1.0.0-beta-4

Additional context

[2024-03-25 21:20:43][waitress-8][INFO] Loading library import
[2024-03-25 21:21:02][waitress-8][ERROR] Exception on /api/libraryimport [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1455, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 869, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 867, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 852, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/app/frontend/api.py", line 64, in wrapper
    return method(*args, **kwargs)
  File "/app/frontend/api.py", line 207, in wrapper
    result = method(*args, **kwargs)
  File "/app/frontend/api.py", line 398, in api_library_import
    result = propose_library_import(limit, only_english)
  File "/app/backend/library_import.py", line 174, in propose_library_import
    search_results = run(__search_matches(
  File "/usr/local/lib/python3.8/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/app/backend/library_import.py", line 37, in __search_matches
    responses = await gather(*tasks)
  File "/app/backend/comicvine.py", line 600, in search_volumes_async
    return self.__process_search_results(query, results)
  File "/app/backend/comicvine.py", line 486, in __process_search_results
    results = [self.__format_volume_output(r) for r in results]
  File "/app/backend/comicvine.py", line 486, in <listcomp>
    results = [self.__format_volume_output(r) for r in results]
  File "/app/backend/comicvine.py", line 296, in __format_volume_output
    result['year'] = int(
ValueError: invalid literal for int() with base 10: '1980/'
Casvt commented 6 months ago

Yeah '1980/' is a weird value to have as the year. I already partially fixed this but I can improve it.