Skip to content

Commit af0eade

Browse files
authored
Merge pull request #33 from mgerni/import-diaries
import-diaries
2 parents 8f7389d + e0ba33b commit af0eade

2 files changed

Lines changed: 141 additions & 45 deletions

File tree

task_database.py

Lines changed: 141 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -623,47 +623,122 @@ def update_imported_tasks(username: str, all_tasks: list, username2: str):
623623
coll = mydb['taskLists']
624624
include = {'easy', 'medium', 'hard', 'elite'}
625625
tasks_to_check = []
626-
print('all tasks')
627-
print(all_tasks)
626+
628627
for tier in include:
629628
current_task = get_taskCurrent_tier(username, tier)
630629
if current_task is not None:
631-
tasks_to_check.append(current_task[3])
630+
tasks_to_check.append(current_task) # store the whole object
632631

633632
all_task_ids = {task["uuid"] for group in all_tasks for task in group}
634-
found = [value for value in tasks_to_check if value in all_task_ids]
635-
exists_all = all(value in all_task_ids for value in tasks_to_check)
636-
if exists_all:
637-
# coll.update_one({'username': username}, {})
638-
for task in found:
639-
__set_current_task(username, 'easy', task, False)
640-
641-
coll.update_one({'username': username},
642-
{'$set': {'tiers.easy.completedTasks': [],
643-
'tiers.medium.completedTasks': [],
644-
'tiers.hard.completedTasks': [],
645-
'tiers.elite.completedTasks': [],
646-
# 'tiers.master.completedTasks': [],
647-
# 'tiers.passive.completedTasks': [],
648-
# 'tiers.extra.completedTasks': [],
649-
# 'tiers.bossPets.completedTasks': [],
650-
# 'tiers.skillPets.completedTasks': [],
651-
# 'tiers.otherPets.completedTasks': []
652-
}
653-
})
654-
coll.update_one({'username': username},
655-
{'$set': {'tiers.easy.completedTasks': all_tasks[0],
656-
'tiers.medium.completedTasks': all_tasks[1],
657-
'tiers.hard.completedTasks': all_tasks[2],
658-
'tiers.elite.completedTasks': all_tasks[3],
659-
# 'tiers.master.completedTasks': [],
660-
# 'tiers.passive.completedTasks': [],
661-
# 'tiers.extra.completedTasks': [],
662-
# 'tiers.bossPets.completedTasks': [],
663-
# 'tiers.skillPets.completedTasks': [],
664-
# 'tiers.otherPets.completedTasks': []
665-
}})
666-
coll.update_one({'username' : username}, {'$set' : {'ign': username2}})
633+
634+
for current_task in tasks_to_check:
635+
uuid = current_task[3] # the task uuid
636+
tier = current_task[2] # the tier name
637+
if uuid in all_task_ids:
638+
__set_current_task(username, tier, uuid, False) # ✅ dynamically uses tier
639+
640+
# Rest of your function remains unchanged
641+
easy_diaries = {
642+
"c366a4e5-3463-46e5-a9d1-da706a86d051",
643+
"1c486d16-4538-424d-986a-efb457de0a8a",
644+
"c82332c7-d026-4d53-a8cc-50ed31e2b182",
645+
"82f153a8-37e7-40df-bb02-03a520ec3439",
646+
"740deabc-99c8-42ff-8d15-e6442796368d",
647+
"fb3e6897-aa5e-4ea4-a6e0-1e6e6dc4347c",
648+
"753aa85c-d122-4551-b9ab-a34fbe403526",
649+
"43847c48-e6e2-4c36-b2d4-d883b9f332a1",
650+
"309d3dbb-6b68-4697-8562-c72e6c48e8e5",
651+
"cf8660d4-cf64-4448-a4fd-e9b622293e53",
652+
"3f4958dd-c0f7-4315-90c6-710ee0db254a",
653+
"e4efcd63-f488-4a91-9307-c6662e9f612f"
654+
}
655+
medium_diaries = {
656+
"040f49c9-93e9-431d-8a4c-d1b8b8a7edf6",
657+
"5d2d9461-00bc-431b-b943-0693bb8b0fb6",
658+
"a455bbf7-a570-494f-9753-643aeb83aca9",
659+
"958d1774-5ddb-4cb3-abdf-2772de4d024f",
660+
"f638ebcb-aebf-4c53-bd07-c0e683bc1072",
661+
"306c11a3-241a-49b8-8083-ea05124d72e9",
662+
"19708dd7-fb75-4ebc-ad65-60697a0d6401",
663+
"57b5ba2a-b2b0-4442-b767-1a8b35e3be0d",
664+
"31e5ccaa-dd74-42d7-8749-2efdaaf01e4e",
665+
"f59758a3-122e-4d8a-b2ed-5b908fc60a8c",
666+
"993eb6f8-e30a-4f0a-977d-148b45e0f7f7",
667+
"59e36673-6808-4371-ba70-fd8d8003e5ef",
668+
}
669+
hard_diaries = {
670+
"0adb8c5f-1f25-469f-a5ca-caeb72926555",
671+
"6d862500-e957-438a-91d7-73afd64cbc94",
672+
"ac81b972-e058-4f1c-9a6d-6b584152018e",
673+
"ecf10542-a7dc-46a5-a104-1c2565775a0a",
674+
"8eadf6a7-db23-4837-af73-353b46e7f154",
675+
"efb50bb9-4fca-4c74-b17a-2411f462c798",
676+
"cf47e5f2-f8b7-4e8f-94c9-578c405ad7ba",
677+
"cf59d267-cfeb-4e20-91ce-083876b1393e",
678+
"ab6d1763-824a-42b5-b4f5-41b0e30f618a",
679+
"376f87f1-88c5-4180-abca-505cdaa542e4",
680+
"6cad11a7-d40c-4a5e-962d-0387c9eb256b",
681+
"4a1632cf-a847-43d9-884a-a43e135fdb76",
682+
}
683+
elite_diaries = {
684+
"8c0cb3d6-e137-4a4a-b567-cab75ed2077f",
685+
"7ec18760-279b-403f-a871-8f0bb99d3387",
686+
"ab7fc232-2f2d-4497-8ea8-c7073d02539b",
687+
"3d193ab7-67da-409b-8c21-fa79761e9693",
688+
"1cb67d59-85dc-4377-a348-30b87d54bbfe",
689+
"26fe2217-b7f0-496e-a081-5ab11d8fe7b1",
690+
"308e1019-6b20-45ce-9725-13df969c6f49",
691+
"b9e0a625-a86f-43ed-9e51-49e2b562ffa8",
692+
"d2ac7997-c8f8-420a-80c2-ab8e0a686e48",
693+
"63efc541-8946-45e1-b633-c9a56796c655",
694+
"0709860d-771d-4173-8160-fdbeccfa54e0",
695+
"2b10f0dd-ed73-48e9-8ee7-1bb8744f2005",
696+
}
697+
698+
diaries = coll.find_one({'username': username}, {
699+
'_id': 0,
700+
'tiers.easy.completedTasks': 1,
701+
'tiers.medium.completedTasks': 1,
702+
'tiers.hard.completedTasks': 1,
703+
'tiers.elite.completedTasks': 1
704+
})
705+
706+
coll.update_one({'username': username}, {
707+
'$set': {
708+
'tiers.easy.completedTasks': [],
709+
'tiers.medium.completedTasks': [],
710+
'tiers.hard.completedTasks': [],
711+
'tiers.elite.completedTasks': [],
712+
}
713+
})
714+
715+
coll.update_one({'username': username}, {
716+
'$set': {
717+
'tiers.easy.completedTasks': all_tasks[0],
718+
'tiers.medium.completedTasks': all_tasks[1],
719+
'tiers.hard.completedTasks': all_tasks[2],
720+
'tiers.elite.completedTasks': all_tasks[3],
721+
}
722+
})
723+
724+
coll.update_one({'username': username}, {'$set': {'ign': username2}})
725+
726+
for diary in diaries['tiers']['easy']['completedTasks']:
727+
if diary['uuid'] in easy_diaries:
728+
__set_task_complete(username, 'easyTasks', diary['uuid'], True)
729+
730+
for diary in diaries['tiers']['medium']['completedTasks']:
731+
if diary['uuid'] in medium_diaries:
732+
__set_task_complete(username, 'mediumTasks', diary['uuid'], True)
733+
734+
for diary in diaries['tiers']['hard']['completedTasks']:
735+
if diary['uuid'] in hard_diaries:
736+
__set_task_complete(username, 'hardTasks', diary['uuid'], True)
737+
738+
for diary in diaries['tiers']['elite']['completedTasks']:
739+
if diary['uuid'] in elite_diaries:
740+
__set_task_complete(username, 'eliteTasks', diary['uuid'], True)
741+
667742

668743
'''
669744
import_spreadsheet:
@@ -1410,12 +1485,37 @@ def fix_gerni():
14101485
# }
14111486
# )
14121487

1413-
def add_uuids():
1414-
task_coll = mydb["taskLists"]
1415-
for task in tasklists.easy:
1416-
print(task['uuid'], task['_id'], task['name'])
1488+
def copy_tier_tasks(source_username: str, target_username: str, tiers: list[str]):
1489+
collection = mydb["taskLists"]
1490+
1491+
source_doc = collection.find_one({"username": source_username})
1492+
if not source_doc:
1493+
print(f"Source user '{source_username}' not found.")
1494+
return
1495+
1496+
updates = {}
1497+
for tier in tiers:
1498+
tier_data = source_doc.get("tiers", {}).get(tier, {})
1499+
1500+
# Copy completedTasks if it exists
1501+
if "completedTasks" in tier_data:
1502+
updates[f"tiers.{tier}.completedTasks"] = tier_data["completedTasks"]
1503+
1504+
# Copy currentTask if it exists
1505+
if "currentTask" in tier_data:
1506+
updates[f"tiers.{tier}.currentTask"] = tier_data["currentTask"]
1507+
1508+
if updates:
1509+
result = collection.update_one(
1510+
{"username": target_username},
1511+
{"$set": updates}
1512+
)
1513+
print(f"Updated {result.modified_count} document(s).")
1514+
else:
1515+
print("No tasks to copy from source document.")
1516+
14171517
if __name__ == "__main__":
1418-
add_uuids()
1518+
copy_tier_tasks("AreYaTasking", 'Gerni Task2', tiers=["easy", "medium", "hard", "elite", "master"])
14191519
# fix_gerni()
14201520
# get_task_lists('GerniSleep')
14211521
pass

templesync.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,10 @@ def find_by_id(items, target_id):
5252
return [item for item in items if int(item['id']) == target_id]
5353
def format_completed_tasks(completed_tasks: set):
5454
formatted_tasks = []
55-
print("completed tasks")
56-
print(completed_tasks)
5755
for task_id in completed_tasks:
5856
formatted_tasks.append({
5957
'uuid' : task_id
6058
})
61-
print('FORMATTED TASKS')
62-
print(formatted_tasks)
6359
return formatted_tasks
6460

6561
cleaned_player_data = temple_player_data(username)

0 commit comments

Comments
 (0)