KeyError: 'ignored_articles' when ignored_articles is missing
In GitLab by @ogarcia on Sep 20, 2020, 09:23
Some server implementations don't return ignored_articles in getArtists.view or in getIndexes.view. The client must expect this and ignore if the key is missing.
Which servers does this happen with?
Opened: https://github.com/spl0k/supysonic/issues/194
I'll also plan to fix this on my end.
I am getting the following error running the Docker container. I'm assuming that I'm doing something wrong, but I'm not very good at Docker. Any hints?
$ sudo docker run --rm \
--name=supysonic \
-v /home/sumner/tmp/supysonic:/var/lib/supysonic \
-v /home/sumner/tmp/music:/media \
ogarcia/supysonic
cp: can't create '/var/lib/supysonic/.supysonic': Permission denied
cp: can't create '/var/lib/supysonic/supysonic.db': Permission denied
cannot write in config file.
[Errno 13] Permission denied: '/var/lib/supysonic/.supysonic'
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/pony-0.7.11-py3.8.egg/pony/orm/dbapiprovider.py", line 53, in wrap_dbapi_exceptions
try: return func(provider, *args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/pony-0.7.11-py3.8.egg/pony/orm/dbapiprovider.py", line 221, in connect
return provider.pool.connect()
File "/usr/local/lib/python3.8/site-packages/pony-0.7.11-py3.8.egg/pony/orm/dbapiprovider.py", line 342, in connect
pool._connect()
File "/usr/local/lib/python3.8/site-packages/pony-0.7.11-py3.8.egg/pony/orm/dbproviders/sqlite.py", line 629, in _connect
pool.con = con = sqlite.connect(filename, isolation_level=None, **pool.kwargs)
sqlite3.OperationalError: unable to open database file
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/tmp/supysonic.fcgi", line 3, in <module>
app = create_application()
File "/usr/local/lib/python3.8/site-packages/supysonic-0.5.0-py3.8.egg/supysonic/web.py", line 54, in create_application
init_database(app.config["BASE"]["database_uri"])
File "/usr/local/lib/python3.8/site-packages/supysonic-0.5.0-py3.8.egg/supysonic/db.py", line 605, in init_database
metadb.bind(**settings)
File "/usr/local/lib/python3.8/site-packages/pony-0.7.11-py3.8.egg/pony/orm/core.py", line 765, in bind
self._bind(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/pony-0.7.11-py3.8.egg/pony/orm/core.py", line 787, in _bind
self.provider = provider_cls(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/pony-0.7.11-py3.8.egg/pony/orm/dbproviders/sqlite.py", line 322, in __init__
DBAPIProvider.__init__(provider, *args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/pony-0.7.11-py3.8.egg/pony/orm/dbapiprovider.py", line 121, in __init__
connection, is_new_connection = provider.connect()
File "<string>", line 2, in connect
File "/usr/local/lib/python3.8/site-packages/pony-0.7.11-py3.8.egg/pony/orm/dbapiprovider.py", line 67, in wrap_dbapi_exceptions
raise OperationalError(e)
pony.orm.dbapiprovider.OperationalError: unable to open database file
In GitLab by @ogarcia on Sep 23, 2020, 04:07
Yes, you don't need mount volumes if you want only to test. Run this command:
sudo docker run -t -i --rm \
-e SUPYSONIC_RUN_MODE=standalone \
-p 5000:5000 \ # Listen port 5000 (in host) to 5000 (in container)
ogarcia/supysonic
Or mounting a music folder:
sudo docker run -t -i --rm \
-e SUPYSONIC_RUN_MODE=standalone \
-p 5000:5000 \
-v /home/sumner/tmp/music:/media \
ogarcia/supysonic
If you want persistent data folder (-v /home/sumner/tmp/supysonic:/var/lib/supysonic), then the directory /home/sumner/tmp/supysonic must be owned by UID 100:
chown 100:100 /home/sumner/tmp/supysonic
or
chmod 777 /home/sumner/tmp/supysonic
In GitLab by @ogarcia on Oct 12, 2020, 04:29
A side note: By default the value of ignoredArticlesString is The El La Los Las Le Les.
There is two options, set a hardcoded default value for APIs lower than 1.10.0, or add a configuration option.
mentioned in commit 5f2b884c56002031050d6fa2c859afe9600fb6e8
In GitLab by @ogarcia on Oct 25, 2020, 11:49
Hi @sumnerevans
You close the issue but still present in v0.11.10:
2020-10-25 18:47:05,332:ERROR:concurrent.futures:_base:exception calling callback for <Future at 0x7f26e0fa75b0 state=finished raised CacheMissError>
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/sublime_music/adapters/manager.py", line 375, in future_fn
return fn(*params, **kwargs)
File "/usr/lib/python3.8/site-packages/sublime_music/adapters/subsonic/adapter.py", line 617, in get_artists
if artist_index := self._get_json(self._make_url("getArtists")).artists:
File "/usr/lib/python3.8/site-packages/sublime_music/adapters/subsonic/adapter.py", line 508, in _get_json
return Response.from_dict(subsonic_response)
File "/usr/lib/python3.8/site-packages/dataclasses_json/api.py", line 83, in from_dict
return _decode_dataclass(cls, kvs, infer_missing)
File "/usr/lib/python3.8/site-packages/dataclasses_json/core.py", line 201, in _decode_dataclass
init_kwargs[field.name] = _decode_generic(field_type,
File "/usr/lib/python3.8/site-packages/dataclasses_json/core.py", line 273, in _decode_generic
res = _decode_dataclass(type_arg, value, infer_missing)
File "/usr/lib/python3.8/site-packages/dataclasses_json/core.py", line 159, in _decode_dataclass
field_value = kvs[field.name]
KeyError: 'ignored_articles'
Yep, should be actually fixed in 6452cf1 which isn't yet released.