X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Futils%2Fconfigtest.py;fp=sima%2Futils%2Fconfigtest.py;h=b777276afeae58ce3bf6d297273ce4681c3eb8d6;hb=b75a67a8ef2924dbcfdb9838d5b35447baf1e4be;hp=0000000000000000000000000000000000000000;hpb=f4fb163f42b5847be7c67e31bf5154d6eb09175f;p=mpd-sima.git diff --git a/sima/utils/configtest.py b/sima/utils/configtest.py new file mode 100644 index 0000000..b777276 --- /dev/null +++ b/sima/utils/configtest.py @@ -0,0 +1,51 @@ +# coding: utf-8 + +import sys + +from logging import getLogger + +from ..mpdclient import MPD +from ..mpdclient import MPDError, PlayerError + +from ..plugins.internal.tags import forge_filter, control_config + +log = getLogger('sima') + + +def tags_config_test(cli, config): + tags_cfg = config['tags'] + if not control_config(tags_cfg): + return + filt = forge_filter(tags_cfg) + log.info('Trying tags and filter config:') + log.info('%s', filt) + try: + # Use window to limit reponse size + res = cli.find(filt, 'window', (0, 300)) + except MPDError as err: + cli.disconnect() + print('filter error: %s' % err, file=sys.stderr) + sys.exit(1) + artists = list({trk.albumartist for trk in res if trk.albumartist}) + if not artists: + log.info('Tags config correct but got nothing from MPD\'s library') + return + log.info('Got results, here are some of the artists found:') + log.info('%s', ' / '.join(artists[:6])) + + +def config_test(config): + cli = MPD(config) + log.info('Trying to connect MPD: %s:%s', + config.get('MPD', 'host'), + config.get('MPD', 'port')) + try: + cli.connect() + except PlayerError as err: + print(err, file=sys.stderr) + sys.exit(1) + tags_config_test(cli, config) + + +# VIM MODLINE +# vim: ai ts=4 sw=4 sts=4 expandtab fileencoding=utf8