@@ -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'''
669744import_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+
14171517if __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
0 commit comments