vale46n1 / immich_duplicate_finder

A Comprehensive Solution for Identifying and Managing Duplicate Photos in Immich
Apache License 2.0
184 stars 12 forks source link

Cannot fetch assets #2

Closed agross closed 5 months ago

agross commented 5 months ago

After fixing #1 by moving the save_settings_to_db method to the top of the file, I now get this when trying to fetch assets:

Fetch con cache
2024-03-21 21:49:58.312 Uncaught app exception
Traceback (most recent call last):
  File "/opt/homebrew/lib/python3.11/site-packages/requests/models.py", line 971, in json
    return complexjson.loads(self.text, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.11/3.11.8/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.11/3.11.8/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.11/3.11.8/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/homebrew/lib/python3.11/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 542, in _run_script
    exec(code, module.__dict__)
  File "/Users/agross/Downloads/immich_duplicate_finder/app.py", line 294, in <module>
    main()
  File "/Users/agross/Downloads/immich_duplicate_finder/app.py", line 274, in main
    assets = fetch_assets()
             ^^^^^^^^^^^^^^
  File "/Users/agross/Downloads/immich_duplicate_finder/app.py", line 121, in fetch_assets
    assets = response.json()
             ^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/requests/models.py", line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
vale46n1 commented 5 months ago

did you include the address with the port? "http://192.168.1.100:8090"

agross commented 5 months ago

No, my Immich runs on a domain like https://immich.example.com.

vale46n1 commented 5 months ago

could you try with the local domain?

agross commented 5 months ago

Not sure what you mean by "the local domain". An address similar to the above is the only way to reach my Immich instance.

agross commented 5 months ago

OK, found it: https://immich.example.com works, https://immich.example.com/ does not. The trailing slash causes requests to //api/... which returns plain HTML instead of JSON.

agross commented 5 months ago

This is the next exception which happened on pair #5:

Fetch con cache
2024-03-21 22:35:33.351 Uncaught app exception
Traceback (most recent call last):
  File "/opt/homebrew/lib/python3.11/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 542, in _run_script
    exec(code, module.__dict__)
  File "/Users/agross/Downloads/immich_duplicate_finder/app.py", line 293, in <module>
    main()
  File "/Users/agross/Downloads/immich_duplicate_finder/app.py", line 275, in main
    show_duplicate_photos(assets,limit)
  File "/Users/agross/Downloads/immich_duplicate_finder/app.py", line 193, in show_duplicate_photos
    image1 = np.array(stream_asset(original['id'],immich_server_url))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/streamlit/runtime/caching/cache_utils.py", line 210, in wrapper
    return cached_func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/streamlit/runtime/caching/cache_utils.py", line 239, in __call__
    return self._get_or_create_cached_value(args, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/streamlit/runtime/caching/cache_utils.py", line 266, in _get_or_create_cached_value
    return self._handle_cache_miss(cache, value_key, func_args, func_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/streamlit/runtime/caching/cache_utils.py", line 322, in _handle_cache_miss
    computed_value = self._info.func(*func_args, **func_kwargs)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/agross/Downloads/immich_duplicate_finder/app.py", line 90, in stream_asset
    image = Image.open(image_bytes)
            ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/PIL/Image.py", line 3309, in open
    raise UnidentifiedImageError(msg)
PIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x10288ccc0>
vale46n1 commented 5 months ago

First of all I revised the code to handle that situation. base_url = immich_server_url.rstrip('/') Let's close this and open a new issue....just for tracking