Skip to content

Commit e722d0a

Browse files
authored
Merge pull request #92 from OSRS-Taskman/fix_import_logs
fix import logs
2 parents e008ecf + 1e35b04 commit e722d0a

2 files changed

Lines changed: 44 additions & 7 deletions

File tree

taskapp.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
complete_task_unofficial_tier, get_user, get_leaderboard,
1616
get_roll_candidates_for_tier)
1717
import send_grid_email
18-
from templesync import check_logs, temple_player_data
18+
from templesync import check_logs, temple_player_data, import_logs
1919
from task_types import CollectionLogVerificationData
2020

2121
app = Flask(__name__)
@@ -569,10 +569,10 @@ def collection_log_import():
569569
rs_username = form_data['username']
570570
overwrite_temple_timestamps_raw = form_data.get('overwriteTempleTimestamps', 'true')
571571
overwrite_temple_timestamps = str(overwrite_temple_timestamps_raw).lower() == 'true'
572-
easy_import_result = check_logs(rs_username, tasklists.list_for_tier('easy'), 'import-recorded')
573-
medium_import_result = check_logs(rs_username, tasklists.list_for_tier('medium'), 'import-recorded')
574-
hard_import_result = check_logs(rs_username, tasklists.list_for_tier('hard'), 'import-recorded')
575-
elite_import_result = check_logs(rs_username, tasklists.list_for_tier('elite'), 'import-recorded')
572+
easy_import_result = import_logs(rs_username, tasklists.list_for_tier('easy'), 'import-recorded')
573+
medium_import_result = import_logs(rs_username, tasklists.list_for_tier('medium'), 'import-recorded')
574+
hard_import_result = import_logs(rs_username, tasklists.list_for_tier('hard'), 'import-recorded')
575+
elite_import_result = import_logs(rs_username, tasklists.list_for_tier('elite'), 'import-recorded')
576576
easy_import = easy_import_result.get('completedTasks', [])
577577
medium_import = medium_import_result.get('completedTasks', [])
578578
hard_import = hard_import_result.get('completedTasks', [])

templesync.py

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def temple_player_data(username: str):
4242
# return completed_tasks
4343

4444

45-
def check_logs(username: str, site_tasks: list["TaskData"], action: str):
45+
def import_logs(username: str, site_tasks: list["TaskData"], action: str):
4646
def find_by_id(items, target_id):
4747
return [item for item in items if int(item['id']) == target_id]
4848
def parse_completed_date(value):
@@ -135,5 +135,42 @@ def format_completed_tasks(completed_tasks: dict):
135135
return format_completed_tasks(completed_tasks)
136136

137137

138+
def check_logs(username: str, site_tasks: list["TaskData"], action: str):
139+
def find_by_id(items, target_id):
140+
return [item for item in items if int(item['id']) == target_id]
141+
def format_completed_tasks(completed_tasks: set):
142+
formatted_tasks = []
143+
for task_id in completed_tasks:
144+
formatted_tasks.append({
145+
'id' : task_id
146+
})
147+
return formatted_tasks
148+
149+
cleaned_player_data = temple_player_data(username)
150+
missing_tasks = list()
151+
completed_tasks = set()
152+
for task in site_tasks:
153+
verification_data = task.verification
154+
if not isinstance(verification_data, CollectionLogVerificationData):
155+
continue
156+
157+
log_count = 0
158+
for item_id in verification_data.item_ids:
159+
# print(f"Checking item: {item['name']} with ID: {item['id']}")
160+
if find_by_id(cleaned_player_data, item_id):
161+
log_count += 1
162+
163+
if log_count >= verification_data.count:
164+
completed_tasks.add(task.id)
165+
else:
166+
missing_tasks.append(task.name)
167+
168+
if action == 'check':
169+
return missing_tasks
170+
else:
171+
sorted_completed_tasks = sorted(completed_tasks)
172+
# print(sorted_completed_tasks)
173+
return format_completed_tasks(sorted_completed_tasks)
174+
138175
if __name__ == "__main__":
139-
check_logs('Gerni Task', tasklists.list_for_tier('easy'), 'check')
176+
print(check_logs('Gerni Task', tasklists.list_for_tier('elite'), 'check'))

0 commit comments

Comments
 (0)