diff --git a/src/main/resources/templates/activities/komoot.html b/src/main/resources/templates/activities/komoot.html index b8a69fd..58d6759 100644 --- a/src/main/resources/templates/activities/komoot.html +++ b/src/main/resources/templates/activities/komoot.html @@ -441,6 +441,7 @@ let importedCount = 0; let failedCount = 0; let cancelled = false; + let rateLimited = false; const totalActivitiesToImport = activitiesToImport.length; for (const [index, activity] of activitiesToImport.entries()) { @@ -455,6 +456,15 @@ body: buildImportPayload(activity.id) }); + if (response.status === 429) { + rateLimited = true; + activity.uiImportStatus = null; + activity.uiImportError = null; + resetQueuedActivities(); + renderActivities(currentActivities); + break; + } + if (!response.ok) { let message = 'Failed to import Komoot activity.'; try { @@ -490,7 +500,9 @@ } } - if (cancelled) { + if (rateLimited) { + showStatus('Komoot rate limit reached. Import stopped. Please try again later.'); + } else if (cancelled) { showStatus(`Import stopped after the current activity. Imported ${importedCount} Komoot activit${importedCount === 1 ? 'y' : 'ies'}${failedCount > 0 ? `, ${failedCount} failed` : ''}.`); } else { showStatus(`Imported ${importedCount} Komoot activit${importedCount === 1 ? 'y' : 'ies'}${failedCount > 0 ? `, ${failedCount} failed` : ''}.`);