Try to handle rate limiting

This commit is contained in:
Nicolas Werner 2022-09-23 15:47:11 +02:00
parent 683fd75700
commit ce2d4defde
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
3 changed files with 9 additions and 3 deletions

View file

@ -1313,8 +1313,14 @@ TimelineModel::redactEvent(const QString &id, const QString &reason)
http::client()->redact_event(
room_id_.toStdString(),
id.toStdString(),
[this, id](const mtx::responses::EventId &, mtx::http::RequestErr err) {
[this, id, reason](const mtx::responses::EventId &, mtx::http::RequestErr err) {
if (err) {
if (err->status_code == 429 && err->matrix_error.retry_after.count() != 0) {
QTimer::singleShot(err->matrix_error.retry_after, this, [this, id, reason]() {
this->redactEvent(id, reason);
});
return;
}
emit redactionFailed(tr("Message redaction failed: %1")
.arg(QString::fromStdString(err->matrix_error.error)));
return;