scanner: Pass in files to scan
This commit is contained in:
parent
802e6ad5ed
commit
c59f488b11
@ -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
|
||||
|
||||
@ -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):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user