GioF71 / upmpdcli-docker

Easily run upmpdcli with Docker. Renderer/Library Mode, Streaming with Tidal HiRes, Qobuz, SubSonic, Navidrome, Lightweight Music Server, Gonic, HRA, Radio Paradise, Mother Earth Radio, Radio-Browser
Apache License 2.0
36 stars 4 forks source link

Issue 'ArtistCover' object has no attribute 'getCoverArt' from the Navidrome repository #438

Open GioF71 opened 2 months ago

GioF71 commented 2 months ago

On behalf of TobiasDax:

hi, not sure if there is a better palce to ask questions abou this but i cant seem to get it to work sadly... When i run the compose with the demo data or my own i get the same problem. The Server shows up in my player (currently tyring with Linn Kazoo and Wiim Home (app)) The server seems to be laoding stuff succsessfully but when i try to access it i get the following output in the logs:

CMDTALK: subsonic-app.py: Genre Southern Rock has not art yet, looking for an album
stderr
CMDTALK: subsonic-app.py: Caching genre [Southern Rock] with album_id [f4195a1f22fbb481d01ca08060c42bba]
stderr
CMDTALK: subsonic-app.py: Processing genre [Street Punk]
stderr
CMDTALK: subsonic-app.py: Genre Street Punk has not art yet, looking for an album
stderr
CMDTALK: subsonic-app.py: Caching genre [Street Punk] with album_id [569c478785ca7d6dd8d8927a0930b13a]
stderr
CMDTALK: subsonic-app.py: Processing genre [Tech House]
stderr
CMDTALK: subsonic-app.py: Subsonic Initialization success: [True]
stderr
CMDTALK: subsonic-app.py: Subsonic running
stderr
CMDTALK: subsonic-app.py: browse: args: --{'cmdtalk:proc': 'browse', 'count': '2000', 'offset': '0', 'flag': 'children', 'objid': '0$subsonic$'}--
stderr
CMDTALK: subsonic-app.py: Subsonic Plugin Release 0.2.6
stderr
CMDTALK: subsonic-app.py: browse: path: ----
stderr
CMDTALK: subsonic-app.py: browse: path_list: --['0$subsonic$']-- last: --0$subsonic$--
stderr
CMDTALK: subsonic-app.py: processmessage: processor raised: ['ArtistCover' object has no attribute 'getCoverArt']
stderr
Traceback (most recent call last):
stderr
  File "/usr/share/upmpdcli/cdplugins/pycommon/cmdtalk.py", line 167, in processmessage
stderr
    outfields = processor.process(params)
stderr
                ^^^^^^^^^^^^^^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/pycommon/cmdtalkplugin.py", line 64, in process
stderr
    return self.dispatcher.run(params[prcnmkey], params)
stderr
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/pycommon/cmdtalkplugin.py", line 49, in run
stderr
    return func(params)
stderr
           ^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/subsonic/subsonic-app.py", line 1285, in browse
stderr
    entries = _show_tags(objid, entries)
stderr
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/subsonic/subsonic-app.py", line 1263, in _show_tags
stderr
    if tag_enabled_in_initial_page(tag): entries.append(tag_to_entry(objid, tag))
stderr
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/subsonic/subsonic-app.py", line 1254, in tag_to_entry
stderr
    art_id = tag_art_retriever[tagname]()
stderr
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/subsonic/art_retriever.py", line 54, in group_artists_art_retriever
stderr
    if not art: art = random_artist_art_retriever()
stderr
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/subsonic/art_retriever.py", line 124, in random_artist_art_retriever
stderr
    return _get_random_artist_cover()
stderr
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/subsonic/art_retriever.py", line 116, in _get_random_artist_cover
stderr
    return __get_random_artist_cover_by_initial(select_initial)
stderr
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/subsonic/art_retriever.py", line 108, in __get_random_artist_cover_by_initial
stderr
    return get_artist_cover(artist_id)
stderr
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr
  File "/usr/share/upmpdcli/cdplugins/subsonic/art_retriever.py", line 121, in get_artist_cover
stderr
    return artist_cover.getCoverArt()
stderr
           ^^^^^^^^^^^^^^^^^^^^^^^^
stderr
AttributeError: 'ArtistCover' object has no attribute 'getCoverArt'
stderr
:2:../src/mediaserver/cdplugins/plgwithslave.cxx:585::PlgWithSlave::browse: slave failure
GioF71 commented 2 months ago

This looks like an error that can be triggered by a mismatch between the subsonic-connect version and the plugin version. Can you post your compose file?

GioF71 commented 2 months ago

Looks very similar to this issue

TobiasDax commented 2 months ago

hi, the linked issue helped, this is now my working compose file:

services:
  upmpdcli:
    image: giof71/upmpdcli:latest
    container_name: upmpdcli-navidrome-demo
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - PORT_OFFSET=4
      - UPNPAV=0
      - OPENHOME=0
      - FRIENDLY_NAME=Navidrome
      - SUBSONIC_ENABLE=yes
      - SUBSONIC_AUTOSTART=yes
      - SUBSONIC_BASE_URL=${SUBSONIC_BASE_URL}
      - SUBSONIC_PORT=${SUBSONIC_PORT}
      - SUBSONIC_USER=${SUBSONIC_USER}
      - SUBSONIC_PASSWORD=${SUBSONIC_PASSWORD}
      - SUBSONIC_ITEMS_PER_PAGE=28
      - SUBSONIC_APPEND_YEAR_TO_ALBUM=Yes
      - SUBSONIC_APPEND_CODECS_TO_ALBUM=Yes
      - SUBSONIC_WHITELIST_CODECS=alac,wav,flac,dsf,ape
      - SUBSONIC_DOWNLOAD_PLUGIN=yes
      # - PLG_PROXY_METHOD=proxy
      - SUBSONIC_PLUGIN_BRANCH=latest-subsonic
      - SUBSONIC_FORCE_CONNECTOR_VERSION=0.3.1
    restart: unless-stopped
networks: {}
GioF71 commented 2 months ago

Hello, I am glad it worked. Can you verify that you are running the latest image? With the latest image (from quite a few weeks now) forcing the subsonic connector version is not needed even when downloading the "latest-subsonic" version of the plugin. If you want to leave the SUBSONIC_FORCE_CONNECTION_VERSION variable in your compose file, please set it to 0.3.2, which is the latest version.

Please star the repository if you like the work. And of course, feel free to open issues for feature/requests about the plugin, on this repository or in the upmpdcli fork here, or even in the upstream upmpdcli repository here.