|
@@ -411,7 +411,7 @@ def email_scrobble_board_game(
|
|
|
except IndexError:
|
|
|
second = 0
|
|
|
|
|
|
- log_data["details"] = play_dict.get("comments")
|
|
|
+ log_data["notes"] = [play_dict.get("comments")]
|
|
|
log_data["expansion_ids"] = []
|
|
|
try:
|
|
|
base_game = base_games[play_dict.get("gameRefId")]
|
|
@@ -587,9 +587,9 @@ def todoist_scrobble_update_task(
|
|
|
)
|
|
|
return
|
|
|
|
|
|
- existing_notes = scrobble.log.get("notes", {})
|
|
|
- existing_notes[todoist_note.get("todoist_id")] = todoist_note.get("notes")
|
|
|
- scrobble.log["notes"] = existing_notes
|
|
|
+ if not scrobble.log.get("notes"):
|
|
|
+ scrobble.log["notes"] = []
|
|
|
+ scrobble.log["notes"].append(todoist_note.get("notes"))
|
|
|
scrobble.save(update_fields=["log"])
|
|
|
logger.info(
|
|
|
"[todoist_scrobble_update_task] todoist note added",
|
|
@@ -615,7 +615,7 @@ def todoist_scrobble_task(
|
|
|
)
|
|
|
task = Task.find_or_create(title)
|
|
|
|
|
|
- timestamp = pendulum.parse(todoist_task.get("updated_at", timezone.now()))
|
|
|
+ timestamp = pendulum.parse(todoist_task.pop("updated_at", timezone.now()))
|
|
|
in_progress_scrobble = Scrobble.objects.filter(
|
|
|
user_id=user_id,
|
|
|
in_progress=True,
|
|
@@ -657,8 +657,12 @@ def todoist_scrobble_task(
|
|
|
)
|
|
|
return todoist_scrobble_task_finish(todoist_task, user_id, timestamp)
|
|
|
|
|
|
- # Default to create new scrobble "if not in_progress_scrobble and in_progress_in_todoist"
|
|
|
- # TODO Should use updated_at from TOdoist, but parsing isn't working
|
|
|
+ todoist_task["title"] = todoist_task.pop("description")
|
|
|
+ todoist_task["description"] = todoist_task.pop("details")
|
|
|
+ todoist_task["labels"] = todoist_task.pop("todoist_label_list", [])
|
|
|
+ todoist_task.pop("todoist_type")
|
|
|
+ todoist_task.pop("todoist_event")
|
|
|
+
|
|
|
scrobble_dict = {
|
|
|
"user_id": user_id,
|
|
|
"timestamp": timestamp,
|
|
@@ -686,8 +690,8 @@ def emacs_scrobble_update_task(
|
|
|
scrobble = Scrobble.objects.filter(
|
|
|
in_progress=True,
|
|
|
user_id=user_id,
|
|
|
- log__source_id=emacs_id,
|
|
|
- log__source="orgmode",
|
|
|
+ log__orgmode_id=emacs_id,
|
|
|
+ source="Org-mode",
|
|
|
).first()
|
|
|
|
|
|
if not scrobble:
|
|
@@ -736,18 +740,18 @@ def emacs_scrobble_task(
|
|
|
stopped: bool = False,
|
|
|
user_context_list: list[str] = [],
|
|
|
) -> Scrobble | None:
|
|
|
- source_id = task_data.get("source_id")
|
|
|
+ orgmode_id = task_data.get("source_id")
|
|
|
title = get_title_from_labels(
|
|
|
task_data.get("labels", []), user_context_list
|
|
|
)
|
|
|
|
|
|
task = Task.find_or_create(title)
|
|
|
|
|
|
- timestamp = pendulum.parse(task_data.get("updated_at", timezone.now()))
|
|
|
+ timestamp = pendulum.parse(task_data.pop("updated_at", timezone.now()))
|
|
|
in_progress_scrobble = Scrobble.objects.filter(
|
|
|
user_id=user_id,
|
|
|
in_progress=True,
|
|
|
- log__source_id=source_id,
|
|
|
+ log__orgmode_id=orgmode_id,
|
|
|
log__source="orgmode",
|
|
|
task=task,
|
|
|
).last()
|
|
@@ -756,7 +760,7 @@ def emacs_scrobble_task(
|
|
|
logger.info(
|
|
|
"[emacs_scrobble_task] cannot stop already stopped task",
|
|
|
extra={
|
|
|
- "emacs_id": source_id,
|
|
|
+ "orgmode_id": orgmode_id,
|
|
|
},
|
|
|
)
|
|
|
return
|
|
@@ -765,7 +769,7 @@ def emacs_scrobble_task(
|
|
|
logger.info(
|
|
|
"[emacs_scrobble_task] cannot start already started task",
|
|
|
extra={
|
|
|
- "emacs_id": source_id,
|
|
|
+ "ormode_id": orgmode_id,
|
|
|
},
|
|
|
)
|
|
|
return in_progress_scrobble
|
|
@@ -775,7 +779,7 @@ def emacs_scrobble_task(
|
|
|
logger.info(
|
|
|
"[emacs_scrobble_task] finishing",
|
|
|
extra={
|
|
|
- "emacs_id": source_id,
|
|
|
+ "orgmode_id": orgmode_id,
|
|
|
},
|
|
|
)
|
|
|
in_progress_scrobble.stop(timestamp=timestamp, force_finish=True)
|
|
@@ -786,11 +790,17 @@ def emacs_scrobble_task(
|
|
|
|
|
|
notes = task_data.pop("notes")
|
|
|
if notes:
|
|
|
- task_data["notes"] = []
|
|
|
- for note in notes:
|
|
|
- task_data["notes"].append(
|
|
|
- {note.get("timestamp"): note.get("content")}
|
|
|
- )
|
|
|
+ task_data["notes"] = [note.get("content") for note in notes]
|
|
|
+ task_data["title"] = task_data.pop("description")
|
|
|
+ task_data["description"] = task_data.pop("body")
|
|
|
+ task_data["labels"] = task_data.pop("labels")
|
|
|
+
|
|
|
+ task_data["orgmode_id"] = task_data.pop("source_id")
|
|
|
+ task_data["orgmode_state"] = task_data.pop("state")
|
|
|
+ task_data["orgmode_properties"] = task_data.pop("properties")
|
|
|
+ task_data["orgmode_drawers"] = task_data.pop("drawers")
|
|
|
+ task_data["orgmode_timestamps"] = task_data.pop("timestamps")
|
|
|
+ task_data.pop("source")
|
|
|
|
|
|
scrobble_dict = {
|
|
|
"user_id": user_id,
|