summary refs log tree commit diff
path: root/src/MatrixClient.cc
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-11-24 00:10:58 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-11-24 00:10:58 +0200
commit0f363b5f4424cc4cdf0e36d7aa5b62b8e8ea52bc (patch)
treeb216baa489755bbb3343f350aa6c6d3e17725fba /src/MatrixClient.cc
parentFix qss formatting (diff)
downloadnheko-0f363b5f4424cc4cdf0e36d7aa5b62b8e8ea52bc.tar.xz
Send read receipts
Automatically dismiss unread notifications when the window regains
focus.

fixes #111
fixes #68
Diffstat (limited to 'src/MatrixClient.cc')
-rw-r--r--src/MatrixClient.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/MatrixClient.cc b/src/MatrixClient.cc

index 5589bdc7..dcf241a6 100644 --- a/src/MatrixClient.cc +++ b/src/MatrixClient.cc
@@ -847,3 +847,31 @@ MatrixClient::removeTypingNotification(const QString &roomid) put(request, QJsonDocument(body).toJson(QJsonDocument::Compact)); } + +void +MatrixClient::readEvent(const QString &room_id, const QString &event_id) +{ + QUrlQuery query; + query.addQueryItem("access_token", token_); + + QUrl endpoint(server_); + endpoint.setPath(clientApiUrl_ + + QString("/rooms/%1/receipt/m.read/%2").arg(room_id).arg(event_id)); + endpoint.setQuery(query); + + QNetworkRequest request(QString(endpoint.toEncoded())); + request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/json"); + + auto reply = post(request, "{}"); + + connect(reply, &QNetworkReply::finished, this, [this, reply]() { + reply->deleteLater(); + + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + + if (status == 0 || status >= 400) { + qWarning() << reply->errorString(); + return; + } + }); +}