fix(beatmapset): handle 404 errors and fix qualified sync from add_missing_beatmapsets
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import datetime
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
import math
|
import math
|
||||||
@@ -161,6 +162,20 @@ class BeatmapsetUpdateService:
|
|||||||
try:
|
try:
|
||||||
if await self.add_missing_beatmapset(missing):
|
if await self.add_missing_beatmapset(missing):
|
||||||
total += 1
|
total += 1
|
||||||
|
except HTTPStatusError as e:
|
||||||
|
if e.response.status_code == 404:
|
||||||
|
logger.opt(colors=True).warning(f"beatmapset {missing} not found (404), skipping")
|
||||||
|
|
||||||
|
session.add(
|
||||||
|
BeatmapSync(
|
||||||
|
beatmapset_id=missing,
|
||||||
|
beatmap_status=BeatmapRankStatus.GRAVEYARD,
|
||||||
|
next_sync_time=datetime.datetime.max,
|
||||||
|
beatmaps=[],
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
logger.error(f"failed to add missing beatmapset {missing}: [{e.__class__.__name__}] {e}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"failed to add missing beatmapset {missing}: {e}")
|
logger.error(f"failed to add missing beatmapset {missing}: {e}")
|
||||||
if total > 0:
|
if total > 0:
|
||||||
@@ -199,12 +214,8 @@ class BeatmapsetUpdateService:
|
|||||||
processing = ProcessingBeatmapset(beatmapset, sync_record)
|
processing = ProcessingBeatmapset(beatmapset, sync_record)
|
||||||
next_time_delta = processing.calculate_next_sync_time()
|
next_time_delta = processing.calculate_next_sync_time()
|
||||||
if not next_time_delta:
|
if not next_time_delta:
|
||||||
logger.opt(colors=True).info(
|
# for qualified -> ranked, run immediate sync
|
||||||
f"<g>[{beatmapset.id}]</g> beatmapset has transformed to "
|
await BeatmapsetUpdateService._sync_immediately(self, beatmapset)
|
||||||
"ranked or loved, removing from sync list"
|
|
||||||
)
|
|
||||||
await session.delete(sync_record)
|
|
||||||
await session.commit()
|
|
||||||
return
|
return
|
||||||
sync_record.next_sync_time = utcnow() + next_time_delta
|
sync_record.next_sync_time = utcnow() + next_time_delta
|
||||||
logger.opt(colors=True).info(f"<g>[{beatmapset.id}]</g> next sync at {sync_record.next_sync_time}")
|
logger.opt(colors=True).info(f"<g>[{beatmapset.id}]</g> next sync at {sync_record.next_sync_time}")
|
||||||
|
|||||||
Reference in New Issue
Block a user