diff --git a/vrobbler/apps/boardgames/models.py b/vrobbler/apps/boardgames/models.py index f90ff98..a37a314 100644 --- a/vrobbler/apps/boardgames/models.py +++ b/vrobbler/apps/boardgames/models.py @@ -82,6 +82,9 @@ class BoardGame(ScrobblableMixin): link = f"https://boardgamegeek.com/boardgame/{self.bggeek_id}" return link + def get_start_url(self): + return reverse("scrobbles:start", kwargs={"uuid": self.uuid}) + def fix_metadata(self, data: dict = {}, force_update=False) -> None: if not self.published_date or force_update: diff --git a/vrobbler/apps/scrobbles/constants.py b/vrobbler/apps/scrobbles/constants.py index fa65950..0d73b2d 100644 --- a/vrobbler/apps/scrobbles/constants.py +++ b/vrobbler/apps/scrobbles/constants.py @@ -8,9 +8,14 @@ LONG_PLAY_MEDIA = { "books": "Book", } -EXCLUDE_FROM_NOW_PLAYING = ( - "GeoLocation", -) +PLAY_AGAIN_MEDIA = { + "videogames": "VideoGame", + "books": "Book", + "boardgames": "BoardGame", +} + + +EXCLUDE_FROM_NOW_PLAYING = ("GeoLocation",) MANUAL_SCROBBLE_FNS = { "-v": "manual_scrobble_video_game", diff --git a/vrobbler/apps/scrobbles/views.py b/vrobbler/apps/scrobbles/views.py index 38f5b95..f8d77f7 100644 --- a/vrobbler/apps/scrobbles/views.py +++ b/vrobbler/apps/scrobbles/views.py @@ -50,8 +50,6 @@ from scrobbles.scrobblers import ( jellyfin_scrobble_video, manual_scrobble_board_game, manual_scrobble_book, - manual_scrobble_event, - manual_scrobble_video, manual_scrobble_video_game, mopidy_scrobble_podcast, mopidy_scrobble_track, @@ -424,7 +422,7 @@ def scrobble_start(request, uuid): return HttpResponseRedirect(success_url) media_obj = None - for app, model in LONG_PLAY_MEDIA.items(): + for app, model in PLAY_AGAIN_MEDIA.items(): media_model = apps.get_model(app_label=app, model_name=model) media_obj = media_model.objects.filter(uuid=uuid).first() if media_obj: @@ -435,10 +433,13 @@ def scrobble_start(request, uuid): scrobble = None user_id = request.user.id - if media_obj and media_obj.__class__.__name__ == "Book": - scrobble = manual_scrobble_book(media_obj.openlibrary_id, user_id) - if media_obj and media_obj.__class__.__name__ == "VideoGame": - scrobble = manual_scrobble_video_game(media_obj.hltb_id, user_id) + if media_obj: + if media_obj.__class__.__name__ == Scrobble.MediaType.BOOK: + scrobble = manual_scrobble_book(media_obj.openlibrary_id, user_id) + if media_obj.__class__.__name__ == Scrobble.MediaType.VIDEO_GAME: + scrobble = manual_scrobble_video_game(media_obj.hltb_id, user_id) + if media_obj.__class__.__name__ == Scrobble.MediaType.BOARD_GAME: + scrobble = manual_scrobble_board_game(media_obj.hltb_id, user_id) if scrobble: messages.add_message( diff --git a/vrobbler/templates/boardgames/boardgame_detail.html b/vrobbler/templates/boardgames/boardgame_detail.html index 32a536e..4e2c8e8 100644 --- a/vrobbler/templates/boardgames/boardgame_detail.html +++ b/vrobbler/templates/boardgames/boardgame_detail.html @@ -44,11 +44,7 @@

{{object.scrobble_set.count}} scrobbles

- {% if object.scrobble_set.last.long_play_complete == True %} - Play again - {% else %} - Resume playing - {% endif %} + Play again