diff --git a/vrobbler/apps/scrobbles/scrobblers.py b/vrobbler/apps/scrobbles/scrobblers.py index baefea4..044085b 100644 --- a/vrobbler/apps/scrobbles/scrobblers.py +++ b/vrobbler/apps/scrobbles/scrobblers.py @@ -409,7 +409,7 @@ def todoist_scrobble_task( user_id: int, started: bool = False, stopped: bool = False, - context_list: list = [], + context_list: list[str] = [], ) -> Scrobble: title = get_title_from_labels(todoist_task.get("todoist_label_list", []), context_list) task = Task.find_or_create(title) diff --git a/vrobbler/apps/tasks/utils.py b/vrobbler/apps/tasks/utils.py index 0533ab0..95f3868 100644 --- a/vrobbler/apps/tasks/utils.py +++ b/vrobbler/apps/tasks/utils.py @@ -1,11 +1,12 @@ import logging +from django.conf import settings logger = logging.getLogger(__name__) def get_title_from_labels(labels: list[str], user_context_labels: list[str] = []) -> str: title = "Unknown" - task_context_labels: list = user_context_labels or DEFAULT_TASK_CONTEXT_LABELS + task_context_labels: list = user_context_labels or settings.DEFAULT_TASK_CONTEXT_TAG_LIST for label in labels: # TODO We may also want to take a user list of labels instead if label in task_context_labels: diff --git a/vrobbler/apps/tasks/webhooks.py b/vrobbler/apps/tasks/webhooks.py index 6971a3b..41ee5ec 100644 --- a/vrobbler/apps/tasks/webhooks.py +++ b/vrobbler/apps/tasks/webhooks.py @@ -71,9 +71,9 @@ def todoist_webhook(request): "updated_at": task_data.get("updated_at"), "details": task_data.get("description"), "notes": event_data.get("content"), - "is_deleted": True - if event_data.get("is_deleted") == "true" - else False, + "is_deleted": ( + True if event_data.get("is_deleted") == "true" else False + ), } if (is_added and not todoist_note) or (is_updated and not todoist_task): @@ -90,12 +90,17 @@ def todoist_webhook(request): ) return Response({}, status=status.HTTP_304_NOT_MODIFIED) - user_profile = UserProfile.objects.filter(todoist_user_id=post_data.get("user_id")).first() + user_profile = UserProfile.objects.filter( + todoist_user_id=post_data.get("user_id", None) + ).first() scrobble = None if todoist_task: scrobble = todoist_scrobble_task( - todoist_task, user_profile.user_id, stopped=task_stopped, context_list=user_profile.task_context_tags + todoist_task, + user_profile.user_id, + stopped=task_stopped, + context_list=user_profile.task_context_tags, ) if todoist_note: @@ -139,10 +144,16 @@ def emacs_webhook(request): if not user_id: user_id = 1 + user_profile = UserProfile.objects.filter(user_id=user_id) + scrobble = None if post_data.get("source_id"): scrobble = emacs_scrobble_task( - post_data, user_id, started=task_in_progress, stopped=task_stopped + post_data, + user_id, + started=task_in_progress, + stopped=task_stopped, + context_list=user_profile.task_context_tags, ) if not scrobble: