Clean up lastfm importing
This commit is contained in:
@ -82,7 +82,8 @@ class AudioScrobblerTSVImport(TimeStampedModel):
|
||||
class LastFmImport(TimeStampedModel):
|
||||
user = models.ForeignKey(User, on_delete=models.DO_NOTHING, **BNULL)
|
||||
uuid = models.UUIDField(editable=False, default=uuid4)
|
||||
processed_on = models.DateTimeField(**BNULL)
|
||||
processing_started = models.DateTimeField(**BNULL)
|
||||
processed_finished = models.DateTimeField(**BNULL)
|
||||
process_log = models.TextField(**BNULL)
|
||||
process_count = models.IntegerField(**BNULL)
|
||||
|
||||
@ -91,8 +92,10 @@ class LastFmImport(TimeStampedModel):
|
||||
|
||||
def process(self, import_all=False):
|
||||
"""Import scrobbles found on LastFM"""
|
||||
if self.processed_on:
|
||||
logger.info(f"{self} already processed on {self.processed_on}")
|
||||
if self.processed_finished:
|
||||
logger.info(
|
||||
f"{self} already processed on {self.processed_finished}"
|
||||
)
|
||||
return
|
||||
|
||||
last_import = None
|
||||
@ -111,7 +114,10 @@ class LastFmImport(TimeStampedModel):
|
||||
lastfm = LastFM(self.user)
|
||||
last_processed = None
|
||||
if last_import:
|
||||
last_processed = last_import.processed_on
|
||||
last_processed = last_import.processed_finished
|
||||
|
||||
self.processing_started = timezone.now()
|
||||
self.save(update_fields=['processing_started'])
|
||||
|
||||
scrobbles = lastfm.import_from_lastfm(last_processed)
|
||||
self.process_log = ""
|
||||
@ -124,19 +130,22 @@ class LastFmImport(TimeStampedModel):
|
||||
self.process_log += log_line
|
||||
self.process_count = len(scrobbles)
|
||||
else:
|
||||
self.process_log = f"Created no new scrobbles"
|
||||
self.process_count = 0
|
||||
|
||||
self.processed_on = timezone.now()
|
||||
self.processed_finished = timezone.now()
|
||||
self.save(
|
||||
update_fields=['processed_on', 'process_count', 'process_log']
|
||||
update_fields=[
|
||||
'processed_finished',
|
||||
'process_count',
|
||||
'process_log',
|
||||
]
|
||||
)
|
||||
|
||||
def undo(self, dryrun=False):
|
||||
"""Undo import of scrobbles from LastFM"""
|
||||
LastFM.undo_lastfm_import(self.process_log, dryrun)
|
||||
self.processed_on = None
|
||||
self.save(update_fields=['processed_on'])
|
||||
self.processed_finished = None
|
||||
self.save(update_fields=['processed_finished'])
|
||||
|
||||
|
||||
class ChartRecord(TimeStampedModel):
|
||||
|
||||
Reference in New Issue
Block a user