diff --git a/vrobbler/apps/music/models.py b/vrobbler/apps/music/models.py index b79202b..31777ca 100644 --- a/vrobbler/apps/music/models.py +++ b/vrobbler/apps/music/models.py @@ -19,6 +19,10 @@ class Album(TimeStampedModel): def __str__(self): return self.name + @property + def mb_link(self): + return f"https://musicbrainz.org/release/{self.musicbrainz_id}" + class Artist(TimeStampedModel): name = models.CharField(max_length=255) @@ -27,6 +31,10 @@ class Artist(TimeStampedModel): def __str__(self): return self.name + @property + def mb_link(self): + return f"https://musicbrainz.org/artist/{self.musicbrainz_id}" + class Track(TimeStampedModel): title = models.CharField(max_length=255, **BNULL) @@ -39,6 +47,10 @@ class Track(TimeStampedModel): def __str__(self): return f"{self.title} by {self.artist}" + @property + def mb_link(self): + return f"https://musicbrainz.org/recording/{self.musicbrainz_id}" + @classmethod def find_or_create( cls, artist_dict: Dict, album_dict: Dict, track_dict: Dict diff --git a/vrobbler/apps/videos/models.py b/vrobbler/apps/videos/models.py index 8e226f9..f8a28e0 100644 --- a/vrobbler/apps/videos/models.py +++ b/vrobbler/apps/videos/models.py @@ -16,6 +16,9 @@ class Series(TimeStampedModel): def __str__(self): return self.name + def imdb_link(self): + return f"https://www.imdb.com/title/{self.imdb_id}" + class Meta: verbose_name_plural = "series" @@ -54,6 +57,8 @@ class Video(TimeStampedModel): return f"{self.tv_series} - Season {self.season_number}, Episode {self.episode_number}" return self.title + def imdb_link(self): + return f"https://www.imdb.com/title/{self.imdb_id}" @classmethod def find_or_create(cls, data_dict: Dict) -> "Video": @@ -75,7 +80,9 @@ class Video(TimeStampedModel): if data_dict.get("ItemType", "") == "Episode": series_name = data_dict.get("SeriesName", "") - series, series_created = Series.objects.get_or_create(name=series_name) + series, series_created = Series.objects.get_or_create( + name=series_name + ) if series_created: logger.debug(f"Created new series {series}") else: @@ -87,7 +94,6 @@ class Video(TimeStampedModel): video_dict["episode_number"] = data_dict.get("EpisodeNumber", "") video_dict["season_number"] = data_dict.get("SeasonNumber", "") - video, created = cls.objects.get_or_create(**video_dict) if created: logger.debug(f"Created new video: {video}") diff --git a/vrobbler/settings.py b/vrobbler/settings.py index 68da4d9..6cd4db5 100644 --- a/vrobbler/settings.py +++ b/vrobbler/settings.py @@ -79,6 +79,7 @@ INSTALLED_APPS = [ "django.contrib.messages", "django.contrib.staticfiles", "django.contrib.sites", + "django.contrib.humanize", "django_filters", "django_extensions", 'rest_framework.authtoken', diff --git a/vrobbler/templates/scrobbles/scrobble_list.html b/vrobbler/templates/scrobbles/scrobble_list.html index 9b573ba..f670cdc 100644 --- a/vrobbler/templates/scrobbles/scrobble_list.html +++ b/vrobbler/templates/scrobbles/scrobble_list.html @@ -1,5 +1,7 @@ {% extends "base.html" %} +{% load humanize %} + {% block title %}{% endblock %} {% block content %} @@ -10,8 +12,8 @@