11import requests
2- import json
32import tasklists
4- import datetime
5- import time
6- from task_types import TaskTag
3+ from task_types import CollectionLogVerificationData , TaskData
74
85
96def temple_player_data (username : str ):
@@ -18,37 +15,31 @@ def temple_player_data(username: str):
1815
1916 return cleaned_player_data
2017
18+ # def test():
19+ # data = temple_player_data('Gerni Task')
20+ # for item in data['data']['items']:
21+ # print(item['name'])
2122
22- def read_json_file ( file_path ):
23- with open ( file_path , 'r' ) as file :
24- data = json . load ( file )
25- return data
23+ # def get_unix_time(timestamp: str ):
24+ # datetime_format = "%Y-%m-%d %H:%M:%S"
25+ # datetime_object = datetime.datetime.strptime(timestamp, datetime_format )
26+ # return time.mktime(datetime_object.timetuple())
2627
27- def test ():
28- data = temple_player_data ('Gerni Task' )
29- for item in data ['data' ]['items' ]:
30- print (item ['name' ])
28+ # def import_logs(player_name: str, site_tasks: list):
29+ # player_data = temple_player_data(player_name)
30+ # completed_tasks = list()
31+ # for task in site_tasks:
32+ # task_data = task.get('colLogData', None)
33+ # if task_data:
34+ # for item in task_data['include']:
35+ # for log_slot in player_data['data']['items']:
36+ # if item['id'] == log_slot['id']:
37+ # completed_tasks.append(task['_id'])
38+ # break
39+ # return completed_tasks
3140
32- def get_unix_time (timestamp : str ):
33- datetime_format = "%Y-%m-%d %H:%M:%S"
34- datetime_object = datetime .datetime .strptime (timestamp , datetime_format )
35- return time .mktime (datetime_object .timetuple ())
3641
37- def import_logs (player_name : str , site_tasks : list ):
38- player_data = temple_player_data (player_name )
39- completed_tasks = list ()
40- for task in site_tasks :
41- task_data = task .get ('colLogData' , None )
42- if task_data :
43- for item in task_data ['include' ]:
44- for log_slot in player_data ['data' ]['items' ]:
45- if item ['id' ] == log_slot ['id' ]:
46- completed_tasks .append (task ['_id' ])
47- break
48- return completed_tasks
49-
50-
51- def check_logs (username : str , site_tasks : list , action : str , lms_enabled = True ):
42+ def check_logs (username : str , site_tasks : list ["TaskData" ], action : str ):
5243 def find_by_id (items , target_id ):
5344 return [item for item in items if int (item ['id' ]) == target_id ]
5445 def format_completed_tasks (completed_tasks : set ):
@@ -63,35 +54,24 @@ def format_completed_tasks(completed_tasks: set):
6354 missing_tasks = list ()
6455 completed_tasks = set ()
6556 for task in site_tasks :
66- # print('******************************************************************************')
67- task_data = task . get ( 'colLogData' , None )
68- if TaskTag . LMS in task . get ( 'tags' , []) and action == 'check' and not lms_enabled :
57+ verification_data = task . verification
58+ if not isinstance ( verification_data , CollectionLogVerificationData ):
59+ print ( "Skipping" )
6960 continue
70- if task_data :
71- log_count = 0
72- for item in task_data ['include' ]:
73- # print(f"Checking item: {item['name']} with ID: {item['id']}")
74- find_item = find_by_id (cleaned_player_data , item ['id' ])
75- if find_item :
76- log_count += 1
77- # print(f"Found item: {find_item[0]['name']} with ID: {find_item[0]['id']}")
78- # print(f"Log count: {log_count}, Required: {task_data['logCount']}")
79- if log_count == task_data ['logCount' ]:
80- completed_tasks .add (task ['id' ])
81- # print(f"Completed task: {task['name']} with ID: {task['uuid']}")
8261
83- if action == "import" and find_item [0 ].get ('date' , None ):
84- unix_time = get_unix_time (find_item [0 ]['date' ])
85- # print(find_item[0]['date'], unix_time)
86- break
87- if log_count != task_data ['logCount' ]:
88- missing_tasks .append (task ['name' ])
89- # print(f"Missing task: {task['name']} with ID: {task['uuid']}")
62+ log_count = 0
63+ for itemId in verification_data .item_ids :
64+ # print(f"Checking item: {item['name']} with ID: {item['id']}")
65+ find_item = find_by_id (cleaned_player_data , itemId )
66+ if find_item :
67+ log_count += 1
68+
69+ if log_count >= verification_data .count :
70+ completed_tasks .add (task .id )
71+ else :
72+ missing_tasks .append (task .name )
9073
9174 if action == 'check' :
92- # print("Missing tasks:")
93- # for task in missing_tasks:
94- # print(task)
9575 return missing_tasks
9676 else :
9777 sorted_completed_tasks = sorted (completed_tasks )
@@ -100,4 +80,4 @@ def format_completed_tasks(completed_tasks: set):
10080
10181
10282if __name__ == "__main__" :
103- check_logs ('Gerni Task' , read_json_file ( 'tasks\ easy.json ' ), 'import' )
83+ check_logs ('Gerni Task' , tasklists . list_for_tier ( ' easy' ), 'import' )
0 commit comments