From 7a7e246d8620789c3ed5759faf5e1f0d25febc9c Mon Sep 17 00:00:00 2001 From: marcelveldt Date: Thu, 9 May 2019 10:29:01 +0200 Subject: [PATCH] requirements --- Dockerfile | 2 +- music_assistant/cache.py | 5 +++-- music_assistant/database.py | 6 ++---- music_assistant/main.py | 4 ++-- music_assistant/modules/playerproviders/lms.py | 2 +- music_assistant/music.py | 4 ++++ requirements.txt | 4 +++- 7 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 596a04c6..a72525f2 100755 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY music_assistant /usr/src/app RUN chmod a+x /usr/src/app/main.py -RUN pip install --upgrade requirements.txt +RUN pip install --upgrade -r requirements.txt VOLUME ["/data"] diff --git a/music_assistant/cache.py b/music_assistant/cache.py index 16cdc398..85945daa 100644 --- a/music_assistant/cache.py +++ b/music_assistant/cache.py @@ -20,8 +20,9 @@ class Cache(object): _busy_tasks = [] _database = None - def __init__(self): + def __init__(self, datapath): '''Initialize our caching class''' + self._datapath = datapath asyncio.ensure_future(self._do_cleanup()) LOGGER.debug("Initialized") @@ -132,7 +133,7 @@ class Cache(object): def _get_database(self): '''get reference to our sqllite _database - performs basic integrity check''' - dbfile = "/tmp/simplecache.db" + dbfile = os.path.join(self._datapath, "simplecache.db") try: connection = sqlite3.connect(dbfile, timeout=30, isolation_level=None) connection.execute('SELECT * FROM simplecache LIMIT 1') diff --git a/music_assistant/database.py b/music_assistant/database.py index 7e9e92b4..302137a3 100755 --- a/music_assistant/database.py +++ b/music_assistant/database.py @@ -8,13 +8,11 @@ from models import MediaType, Artist, Album, Track, Playlist from typing import List import aiosqlite -DBFILE = os.path.join(os.path.dirname(os.path.abspath(__file__)),"database.db") - class Database(): - def __init__(self, event_loop, dbfile=DBFILE): + def __init__(self, datapath, event_loop): self.event_loop = event_loop - self.dbfile = dbfile + self.dbfile = os.path.join(datapath, "database.db") self.db_ready = False event_loop.run_until_complete(self.__init_database()) diff --git a/music_assistant/main.py b/music_assistant/main.py index c0af4037..63ef2e35 100755 --- a/music_assistant/main.py +++ b/music_assistant/main.py @@ -37,11 +37,11 @@ class Main(): signal.signal(signal.SIGTERM, self.stop) # init database and metadata modules - self.db = Database(self.event_loop) + self.db = Database(datapath, self.event_loop) # allow some time for the database to initialize while not self.db.db_ready: time.sleep(0.5) - self.cache = Cache() + self.cache = Cache(datapath) self.metadata = MetaData(self.event_loop, self.db, self.cache) self.music = Music(self) self.player = Player(self) diff --git a/music_assistant/modules/playerproviders/lms.py b/music_assistant/modules/playerproviders/lms.py index 6df0fc05..16c977f3 100644 --- a/music_assistant/modules/playerproviders/lms.py +++ b/music_assistant/modules/playerproviders/lms.py @@ -33,7 +33,7 @@ def setup(mass): def config_entries(): ''' get the config entries for this provider (list with key/value pairs)''' return [ - (CONF_ENABLED, True, CONF_ENABLED), + (CONF_ENABLED, False, CONF_ENABLED), (CONF_HOSTNAME, 'localhost', CONF_HOSTNAME), (CONF_PORT, 9000, CONF_PORT) ] diff --git a/music_assistant/music.py b/music_assistant/music.py index e3bb4a35..73a980c6 100755 --- a/music_assistant/music.py +++ b/music_assistant/music.py @@ -154,6 +154,8 @@ class Music(): prov_item_id = prov_mapping['item_id'] prov_obj = self.providers[prov_id] items += await prov_obj.album_tracks(prov_item_id) + if items: + break # no need to pull in dups items = list(toolz.unique(items, key=operator.attrgetter('item_id'))) return items @@ -166,6 +168,8 @@ class Music(): prov_item_id = prov_mapping['item_id'] prov_obj = self.providers[prov_id] items += await prov_obj.playlist_tracks(prov_item_id, offset=offset, limit=limit) + if items: + break items = list(toolz.unique(items, key=operator.attrgetter('item_id'))) return items diff --git a/requirements.txt b/requirements.txt index 6eb48e83..05009d90 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,6 @@ pychromecast uvloop slugify asyncio_throttle -aiocometd \ No newline at end of file +aiocometd +aiosqlite +pytaglib \ No newline at end of file -- 2.34.1