[scrobbles] Add tagging from labels
This commit is contained in:
@ -12,8 +12,9 @@ import pytz
|
||||
from beers.models import Beer
|
||||
from boardgames.models import BoardGame
|
||||
from books.koreader import process_koreader_sqlite_file
|
||||
from books.models import Book, Paper, BookPageLogData, BookLogData
|
||||
from books.models import Book, BookLogData, BookPageLogData, Paper
|
||||
from bricksets.models import BrickSet
|
||||
from charts.utils import build_charts
|
||||
from dataclass_wizard.errors import ParseError
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import get_user_model
|
||||
@ -42,15 +43,15 @@ from profiles.utils import (
|
||||
from puzzles.models import Puzzle
|
||||
from scrobbles import dataclasses as logdata
|
||||
from scrobbles.constants import (
|
||||
AUTO_FINISH_MEDIA,
|
||||
LONG_PLAY_MEDIA,
|
||||
MEDIA_END_PADDING_SECONDS,
|
||||
AUTO_FINISH_MEDIA,
|
||||
)
|
||||
from scrobbles.importers.lastfm import LastFM
|
||||
from scrobbles.notifications import ScrobbleNtfyNotification
|
||||
from charts.utils import build_charts
|
||||
from scrobbles.utils import get_file_md5_hash, media_class_to_foreign_key
|
||||
from sports.models import SportEvent
|
||||
from taggit.managers import TaggableManager
|
||||
from tasks.models import Task
|
||||
from trails.models import Trail
|
||||
from videogames import retroarch
|
||||
@ -447,6 +448,7 @@ class Scrobble(TimeStampedModel):
|
||||
decoder=logdata.ScrobbleLogDataDecoder,
|
||||
)
|
||||
timezone = models.CharField(max_length=50, **BNULL)
|
||||
tags = TaggableManager(blank=True)
|
||||
|
||||
# Fields for keeping track of video game data
|
||||
videogame_save_data = models.FileField(
|
||||
@ -1296,6 +1298,8 @@ class Scrobble(TimeStampedModel):
|
||||
]
|
||||
)
|
||||
|
||||
self._add_labels_as_tags()
|
||||
|
||||
class_name = self.media_obj.__class__.__name__
|
||||
if class_name in LONG_PLAY_MEDIA.values():
|
||||
self.finish_long_play()
|
||||
@ -1313,6 +1317,11 @@ class Scrobble(TimeStampedModel):
|
||||
},
|
||||
)
|
||||
|
||||
def _add_labels_as_tags(self) -> None:
|
||||
if self.logdata and hasattr(self.logdata, "labels") and self.logdata.labels:
|
||||
for label in self.logdata.labels:
|
||||
self.tags.add(label)
|
||||
|
||||
def pause(self) -> None:
|
||||
if self.is_paused:
|
||||
logger.warning(f"{self.id} - already paused - {self.source}")
|
||||
|
||||
Reference in New Issue
Block a user