scanner: Pass in files to scan

This commit is contained in:
Thomas Adamcik 2013-05-20 01:19:41 +02:00
parent 802e6ad5ed
commit c59f488b11
2 changed files with 13 additions and 6 deletions

View File

@ -58,6 +58,10 @@ def main():
tracks = []
def find(base_directory):
for p in path.find_files(base_directory):
yield path.path_to_uri(p)
def store(data):
track = translator(data)
tracks.append(track)
@ -69,7 +73,8 @@ def main():
logging.info('Scanning %s', config['local']['media_dir'])
scanner = Scanner(config['local']['media_dir'], store, debug)
uris = find(config['local']['media_dir'])
scanner = Scanner(uris, store, debug)
try:
scanner.start()
except KeyboardInterrupt:
@ -150,9 +155,9 @@ def translator(data):
class Scanner(object):
def __init__(self, base_dir, data_callback, error_callback=None):
def __init__(self, uris, data_callback, error_callback=None):
self.data = {}
self.files = path.find_files(base_dir)
self.uris = iter(uris)
self.data_callback = data_callback
self.error_callback = error_callback
self.loop = gobject.MainLoop()
@ -237,7 +242,7 @@ class Scanner(object):
def next_uri(self):
self.data = {}
try:
uri = path.path_to_uri(self.files.next())
uri = next(self.uris)
except StopIteration:
self.stop()
return False

View File

@ -4,6 +4,7 @@ import unittest
from mopidy.scanner import Scanner, translator
from mopidy.models import Track, Artist, Album
from mopidy.utils import path as path_lib
from tests import path_to_data_dir
@ -143,8 +144,9 @@ class ScannerTest(unittest.TestCase):
self.data = {}
def scan(self, path):
scanner = Scanner(
path_to_data_dir(path), self.data_callback, self.error_callback)
paths = path_lib.find_files(path_to_data_dir(path))
uris = (path_lib.path_to_uri(p) for p in paths)
scanner = Scanner(uris, self.data_callback, self.error_callback)
scanner.start()
def check(self, name, key, value):