diff --git a/app/src/main/java/chat/revolt/api/RevoltAPI.kt b/app/src/main/java/chat/revolt/api/RevoltAPI.kt index d09532c8..8733b4cf 100644 --- a/app/src/main/java/chat/revolt/api/RevoltAPI.kt +++ b/app/src/main/java/chat/revolt/api/RevoltAPI.kt @@ -381,5 +381,7 @@ data class RateLimitResponse(@SerialName("retry_after") val retryAfter: Int) { } } -class HitRateLimitException(retryAfter: Int) : - Exception("Hit rate limit, retry after ${retryAfter}ms") \ No newline at end of file +internal const val NO_RETRY_AFTER = Int.MIN_VALUE + +class HitRateLimitException(retryAfter: Int = NO_RETRY_AFTER) : + Exception(if (retryAfter == NO_RETRY_AFTER) "Hit rate limit" else "Hit rate limit, retry after ${retryAfter}ms") \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/api/routes/microservices/autumn/Autumn.kt b/app/src/main/java/chat/revolt/api/routes/microservices/autumn/Autumn.kt index d00810c4..65cdd54d 100644 --- a/app/src/main/java/chat/revolt/api/routes/microservices/autumn/Autumn.kt +++ b/app/src/main/java/chat/revolt/api/routes/microservices/autumn/Autumn.kt @@ -1,5 +1,6 @@ package chat.revolt.api.routes.microservices.autumn +import chat.revolt.api.HitRateLimitException import chat.revolt.api.REVOLT_FILES import chat.revolt.api.RevoltAPI import chat.revolt.api.RevoltHttp @@ -67,7 +68,7 @@ suspend fun uploadToAutumn( throw Exception(error.type) } catch (e: Exception) { if (response.status == HttpStatusCode.TooManyRequests) { - throw Exception("Rate limited") + throw HitRateLimitException() } if (response.status == HttpStatusCode.PayloadTooLarge) { throw Exception("File too large")