[scrobbles] Improve webhook logging

This commit is contained in:
2024-10-17 22:51:10 -04:00
parent 2dbb091d61
commit 1ddacd4454
2 changed files with 24 additions and 25 deletions

View File

@ -41,11 +41,8 @@ def mopidy_scrobble_media(post_data: dict, user_id: int) -> Scrobble:
if "podcast" in post_data.get("mopidy_uri", ""): if "podcast" in post_data.get("mopidy_uri", ""):
media_type = Scrobble.MediaType.PODCAST_EPISODE media_type = Scrobble.MediaType.PODCAST_EPISODE
if settings.DUMP_REQUEST_DATA:
print("MOPIDY_DATA: ", post_data)
logger.info( logger.info(
"[scrobblers] webhook mopidy scrobble request received", "[mopidy_webhook] called",
extra={ extra={
"user_id": user_id, "user_id": user_id,
"post_data": post_data, "post_data": post_data,
@ -83,18 +80,6 @@ def jellyfin_scrobble_media(
if post_data.pop("ItemType", "") in JELLYFIN_AUDIO_ITEM_TYPES: if post_data.pop("ItemType", "") in JELLYFIN_AUDIO_ITEM_TYPES:
media_type = Scrobble.MediaType.TRACK media_type = Scrobble.MediaType.TRACK
if settings.DUMP_REQUEST_DATA:
print("JELLYFIN_DATA: ", post_data)
logger.info(
"[jellyfin_scrobble_media] called",
extra={
"user_id": user_id,
"post_data": post_data,
"media_type": media_type,
},
)
null_position_on_progress = ( null_position_on_progress = (
post_data.get("PlaybackPosition") == "00:00:00" post_data.get("PlaybackPosition") == "00:00:00"
and post_data.get("NotificationType") == "PlaybackProgress" and post_data.get("NotificationType") == "PlaybackProgress"
@ -265,7 +250,7 @@ def manual_scrobble_board_game(bggeek_id: str, user_id: int):
"source": "Vrobbler", "source": "Vrobbler",
} }
logger.info( logger.info(
"[webhook] board game scrobble request received", "[vrobbler-scrobble] board game scrobble request received",
extra={ extra={
"boardgame_id": boardgame.id, "boardgame_id": boardgame.id,
"user_id": user_id, "user_id": user_id,
@ -420,7 +405,7 @@ def manual_scrobble_task(url: str, user_id: int):
"log": {"description": description, "source_id": source_id}, "log": {"description": description, "source_id": source_id},
} }
logger.info( logger.info(
"[webhook] webpage scrobble request received", "[vrobbler-scrobble] webpage scrobble request received",
extra={ extra={
"task_id": task.id, "task_id": task.id,
"user_id": user_id, "user_id": user_id,
@ -442,7 +427,7 @@ def manual_scrobble_webpage(url: str, user_id: int):
"source": "Vrobbler", "source": "Vrobbler",
} }
logger.info( logger.info(
"[webhook] webpage scrobble request received", "[vrobbler-scrobble] webpage scrobble request received",
extra={ extra={
"webpage_id": webpage.id, "webpage_id": webpage.id,
"user_id": user_id, "user_id": user_id,
@ -492,7 +477,7 @@ def gpslogger_scrobble_location(data_dict: dict, user_id: int) -> Scrobble:
scrobble.save(update_fields=["log", "playback_position_seconds"]) scrobble.save(update_fields=["log", "playback_position_seconds"])
logger.info( logger.info(
"[webhook] gpslogger scrobble request received", "[gpslogger_webhook] gpslogger scrobble request received",
extra={ extra={
"scrobble_id": scrobble.id, "scrobble_id": scrobble.id,
"provider": provider, "provider": provider,

View File

@ -322,7 +322,10 @@ def jellyfin_webhook(request):
post_data = request.data post_data = request.data
logger.info( logger.info(
"[jellyfin_webhook] called", "[jellyfin_webhook] called",
extra={"post_data": post_data}, extra={
"post_data": post_data,
"user_id": request.user.id,
},
) )
in_progress = post_data.get("NotificationType", "") == "PlaybackProgress" in_progress = post_data.get("NotificationType", "") == "PlaybackProgress"
@ -357,6 +360,14 @@ def mopidy_webhook(request):
except TypeError: except TypeError:
data_dict = request.data data_dict = request.data
logger.info(
"[mopidy_webhook] called",
extra={
"post_data": data_dict,
"user_id": request.user.id,
},
)
scrobble = mopidy_scrobble_media(data_dict, request.user.id) scrobble = mopidy_scrobble_media(data_dict, request.user.id)
if not scrobble: if not scrobble:
@ -374,10 +385,13 @@ def gps_webhook(request):
except TypeError: except TypeError:
data_dict = request.data data_dict = request.data
# For making things easier to build new input processors logger.info(
if getattr(settings, "DUMP_REQUEST_DATA", False): "[geolocation_webhook] called",
json_data = json.dumps(data_dict, indent=4) extra={
logger.debug(f"{json_data}") "post_data": data_dict,
"user_id": 1,
}
)
# TODO Fix this so we have to authenticate! # TODO Fix this so we have to authenticate!
user_id = 1 user_id = 1