scanner: Add an ImportTask
For importing tracks from the tagdb Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
3402ce16ee
commit
9cced017ad
|
@ -32,3 +32,15 @@ class FileTask(Task):
|
||||||
for genre in meta.genres():
|
for genre in meta.genres():
|
||||||
db.genre.Map.insert(db.genre.Table.find(genre), track)
|
db.genre.Map.insert(db.genre.Table.find(genre), track)
|
||||||
db.playlist.TempMap.insert(db.playlist.Table.find("New Tracks"), track)
|
db.playlist.TempMap.insert(db.playlist.Table.find("New Tracks"), track)
|
||||||
|
|
||||||
|
|
||||||
|
class ImportTask(FileTask):
|
||||||
|
def __init__(self, library, filepath, playcount, lastplayed):
|
||||||
|
FileTask.__init__(self, library, filepath)
|
||||||
|
self.playcount = playcount
|
||||||
|
self.lastplayed = lastplayed
|
||||||
|
|
||||||
|
def run_task(self):
|
||||||
|
FileTask.run_task(self)
|
||||||
|
if track := db.track.Table.lookup(self.filepath):
|
||||||
|
track.last_played(self.playcount, self.lastplayed)
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
# Copyright 2021 (c) Anna Schumaker.
|
# Copyright 2021 (c) Anna Schumaker.
|
||||||
|
import datetime
|
||||||
import db
|
import db
|
||||||
import pathlib
|
import pathlib
|
||||||
import unittest
|
import unittest
|
||||||
|
@ -58,3 +59,26 @@ class TestScannerFileTask(unittest.TestCase):
|
||||||
|
|
||||||
new = db.playlist.Table.find("New Tracks")
|
new = db.playlist.Table.find("New Tracks")
|
||||||
self.assertEqual(db.playlist.TempMap.lookup_tracks(new), [ track ])
|
self.assertEqual(db.playlist.TempMap.lookup_tracks(new), [ track ])
|
||||||
|
|
||||||
|
|
||||||
|
class TestScannerImportTask(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
db.reset()
|
||||||
|
|
||||||
|
def test_scanner_import_task(self):
|
||||||
|
today = datetime.date.today()
|
||||||
|
lib = db.library.Table.find(test_tracks)
|
||||||
|
it = task.ImportTask(lib, test_track01, 4, today)
|
||||||
|
|
||||||
|
self.assertIsInstance(it, task.FileTask)
|
||||||
|
self.assertEqual(it.library, lib)
|
||||||
|
self.assertEqual(it.filepath, test_track01)
|
||||||
|
self.assertEqual(it.playcount, 4)
|
||||||
|
self.assertEqual(it.lastplayed, today)
|
||||||
|
|
||||||
|
self.assertIsNone(it.run_task())
|
||||||
|
|
||||||
|
track = db.track.Table.lookup(test_track01)
|
||||||
|
self.assertEqual(track.playcount, 4)
|
||||||
|
self.assertEqual(track.lastplayed,
|
||||||
|
datetime.datetime.combine(today, datetime.time()))
|
||||||
|
|
Loading…
Reference in New Issue