Allow playing board games again
This commit is contained in:
@ -82,6 +82,9 @@ class BoardGame(ScrobblableMixin):
|
|||||||
link = f"https://boardgamegeek.com/boardgame/{self.bggeek_id}"
|
link = f"https://boardgamegeek.com/boardgame/{self.bggeek_id}"
|
||||||
return link
|
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:
|
def fix_metadata(self, data: dict = {}, force_update=False) -> None:
|
||||||
|
|
||||||
if not self.published_date or force_update:
|
if not self.published_date or force_update:
|
||||||
|
|||||||
@ -8,9 +8,14 @@ LONG_PLAY_MEDIA = {
|
|||||||
"books": "Book",
|
"books": "Book",
|
||||||
}
|
}
|
||||||
|
|
||||||
EXCLUDE_FROM_NOW_PLAYING = (
|
PLAY_AGAIN_MEDIA = {
|
||||||
"GeoLocation",
|
"videogames": "VideoGame",
|
||||||
)
|
"books": "Book",
|
||||||
|
"boardgames": "BoardGame",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EXCLUDE_FROM_NOW_PLAYING = ("GeoLocation",)
|
||||||
|
|
||||||
MANUAL_SCROBBLE_FNS = {
|
MANUAL_SCROBBLE_FNS = {
|
||||||
"-v": "manual_scrobble_video_game",
|
"-v": "manual_scrobble_video_game",
|
||||||
|
|||||||
@ -50,8 +50,6 @@ from scrobbles.scrobblers import (
|
|||||||
jellyfin_scrobble_video,
|
jellyfin_scrobble_video,
|
||||||
manual_scrobble_board_game,
|
manual_scrobble_board_game,
|
||||||
manual_scrobble_book,
|
manual_scrobble_book,
|
||||||
manual_scrobble_event,
|
|
||||||
manual_scrobble_video,
|
|
||||||
manual_scrobble_video_game,
|
manual_scrobble_video_game,
|
||||||
mopidy_scrobble_podcast,
|
mopidy_scrobble_podcast,
|
||||||
mopidy_scrobble_track,
|
mopidy_scrobble_track,
|
||||||
@ -424,7 +422,7 @@ def scrobble_start(request, uuid):
|
|||||||
return HttpResponseRedirect(success_url)
|
return HttpResponseRedirect(success_url)
|
||||||
|
|
||||||
media_obj = None
|
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_model = apps.get_model(app_label=app, model_name=model)
|
||||||
media_obj = media_model.objects.filter(uuid=uuid).first()
|
media_obj = media_model.objects.filter(uuid=uuid).first()
|
||||||
if media_obj:
|
if media_obj:
|
||||||
@ -435,10 +433,13 @@ def scrobble_start(request, uuid):
|
|||||||
|
|
||||||
scrobble = None
|
scrobble = None
|
||||||
user_id = request.user.id
|
user_id = request.user.id
|
||||||
if media_obj and media_obj.__class__.__name__ == "Book":
|
if media_obj:
|
||||||
scrobble = manual_scrobble_book(media_obj.openlibrary_id, user_id)
|
if media_obj.__class__.__name__ == Scrobble.MediaType.BOOK:
|
||||||
if media_obj and media_obj.__class__.__name__ == "VideoGame":
|
scrobble = manual_scrobble_book(media_obj.openlibrary_id, user_id)
|
||||||
scrobble = manual_scrobble_video_game(media_obj.hltb_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:
|
if scrobble:
|
||||||
messages.add_message(
|
messages.add_message(
|
||||||
|
|||||||
@ -44,11 +44,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<p>{{object.scrobble_set.count}} scrobbles</p>
|
<p>{{object.scrobble_set.count}} scrobbles</p>
|
||||||
<p>
|
<p>
|
||||||
{% if object.scrobble_set.last.long_play_complete == True %}
|
<a href="{{object.get_start_url}}">Play again</a>
|
||||||
<a href="">Play again</a>
|
|
||||||
{% else %}
|
|
||||||
<a href="{{object.get_start_url}}">Resume playing</a>
|
|
||||||
{% endif %}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
Reference in New Issue
Block a user