diff --git a/mopidy/audio/scan.py b/mopidy/audio/scan.py index b1565ee3..4906b46c 100644 --- a/mopidy/audio/scan.py +++ b/mopidy/audio/scan.py @@ -6,10 +6,12 @@ import gst import gobject import datetime +import os import time from mopidy import exceptions from mopidy.models import Track, Artist, Album +from mopidy.utils import path class Scanner(object): @@ -39,6 +41,7 @@ class Scanner(object): data = self._collect() # Make sure uri and duration does not come from tags. data[b'uri'] = uri + data[b'mtime'] = self._query_mtime(uri) data[gst.TAG_DURATION] = self._query_duration() finally: self._reset() @@ -92,6 +95,11 @@ class Scanner(object): except gst.QueryError: return None + def _query_mtime(self, uri): + if not uri.startswith('file:'): + return None + return os.path.getmtime(path.uri_to_path(uri)) + def audio_data_to_track(data): """Convert taglist data + our extras to a track.""" diff --git a/mopidy/scanner.py b/mopidy/scanner.py index 02b04cb8..ee54c04d 100644 --- a/mopidy/scanner.py +++ b/mopidy/scanner.py @@ -104,8 +104,6 @@ def main(): for uri in sorted(uris_update): try: data = scanner.scan(uri) - data[b'mtime'] = os.path.getmtime(path.uri_to_path(uri)) - # TODO: check minumum time here instead of in scanner. track = scan.audio_data_to_track(data) local_updater.add(track) logging.debug('Added %s', track.uri)