Skip to content

Commit

Permalink
Fixed sync result handling
Browse files Browse the repository at this point in the history
  • Loading branch information
Kataiser committed Feb 3, 2025
1 parent b9d5a18 commit 5caa97b
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 9 deletions.
6 changes: 4 additions & 2 deletions db.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,9 +202,10 @@ class SyncResult:
type: SyncResultType
data: dict
receipt_handle: str
id: str

def __str__(self) -> str:
return f"SyncResult type={str(self.type).upper()} data={self.data}"
return f"SyncResult type={str(self.type).upper()} id={self.id} data={self.data}"


def send_sync_result(result_type: SyncResultType, data: dict):
Expand All @@ -224,7 +225,8 @@ def get_sync_results() -> list[SyncResult]:
body = json.loads(message['Body'])
results.append(SyncResult(type=SyncResultType(body['type']),
data=body['data'],
receipt_handle=message['ReceiptHandle']))
receipt_handle=message['ReceiptHandle'],
id=message['MessageId']))

return results

Expand Down
6 changes: 4 additions & 2 deletions game_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,9 @@ def sync_test(project_id: int, force: bool):

disabled_text = consider_disabling_after_inactivity(project, clone_time, False)
db.projects.set(project_id, project)
db.send_sync_result(db.SyncResultType.NORMAL, {'project_id': project_id, 'report_text': report_text, 'disabled_text': disabled_text, 'log': report_log, 'crash_logs': crash_logs_data})
crash_logs_data_report = crash_logs_data if report_text else {}
db.send_sync_result(db.SyncResultType.NORMAL, {'project_id': project_id, 'report_text': report_text, 'disabled_text': disabled_text,
'log': report_log, 'crash_logs': crash_logs_data_report})
log.info("Wrote sync result to DB")

# commit updated fullgame files
Expand Down Expand Up @@ -662,7 +664,7 @@ def consider_disabling_after_inactivity(project: dict, reference_time: Union[int

if from_abandoned:
db.projects.set(project['project_id'], project)
db.send_sync_result(db.SyncResultType.AUTO_DISABLE, {'project_id': project['project_id'], 'disabled_text': disabled_text})
db.send_sync_result(db.SyncResultType.AUTO_DISABLE, {'project_id': int(project['project_id']), 'disabled_text': disabled_text})
else:
# don't need to return projects since it's mutable
return disabled_text
Expand Down
16 changes: 11 additions & 5 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -480,11 +480,11 @@ async def handle_game_sync_results():
if game_log:
files.append(discord.File(io.BytesIO(base64.b64decode(sync_result.data['log'])), filename=f'game_sync_{project_name}_{sync_check_time}.log.gz'))

for crash_log_name in sync_result.data['crash_logs']:
crash_log_data = sync_result.data['crash_logs'][crash_log_name]
files.append(discord.File(io.BytesIO(base64.b64decode(crash_log_data)), filename=crash_log_name))
for crash_log_name in sync_result.data['crash_logs']:
crash_log_data = sync_result.data['crash_logs'][crash_log_name]
files.append(discord.File(io.BytesIO(base64.b64decode(crash_log_data)), filename=crash_log_name))

await improvements_channel.send(sync_result.data['report_text'], files=files)
await improvements_channel.send(sync_result.data['report_text'], files=files)

if sync_result.data['disabled_text']:
await improvements_channel.send(sync_result.data['disabled_text'])
Expand All @@ -498,7 +498,13 @@ async def handle_game_sync_results():
case db.SyncResultType.MAINGAME_COMMIT:
await client.get_channel(1323811411226263654).send(sync_result.data['maingame_message'])

db.delete_sync_result(sync_result)
try:
db.delete_sync_result(sync_result)
except Exception as e:
if "The receipt handle has expired" in str(e):
utils.log_error()
else:
raise

db.misc.set('last_game_sync_result_time', int(time.time()))

Expand Down

0 comments on commit 5caa97b

Please sign in to comment.