aboutsummaryrefslogtreecommitdiff
path: root/lib/csapi/content-repo.cpp
diff options
context:
space:
mode:
authorBlack Hat <bhat@encom.eu.org>2019-09-26 22:22:36 -0700
committerBlack Hat <bhat@encom.eu.org>2019-09-26 22:22:36 -0700
commit363cf452bcdbaf6ff1cf94a83ca66cbb31122346 (patch)
treec64c8fda885e4e1785130e8ee3e7c47fd18cbf67 /lib/csapi/content-repo.cpp
parent412e2cf19449e73aa7da729e9c5de6502687aade (diff)
parent944653463fe4134c82d85e2d01e2bc0fa43fd727 (diff)
downloadlibquotient-363cf452bcdbaf6ff1cf94a83ca66cbb31122346.tar.gz
libquotient-363cf452bcdbaf6ff1cf94a83ca66cbb31122346.zip
Merge branch 'master' of https://github.com/quotient-im/libQuotient into
bhat-libqtolm-update
Diffstat (limited to 'lib/csapi/content-repo.cpp')
-rw-r--r--lib/csapi/content-repo.cpp187
1 files changed, 92 insertions, 95 deletions
diff --git a/lib/csapi/content-repo.cpp b/lib/csapi/content-repo.cpp
index 7e490604..395337f3 100644
--- a/lib/csapi/content-repo.cpp
+++ b/lib/csapi/content-repo.cpp
@@ -6,17 +6,17 @@
#include "converters.h"
-#include <QtNetwork/QNetworkReply>
#include <QtCore/QStringBuilder>
+#include <QtNetwork/QNetworkReply>
-using namespace QMatrixClient;
+using namespace Quotient;
static const auto basePath = QStringLiteral("/_matrix/media/r0");
class UploadContentJob::Private
{
- public:
- QString contentUri;
+public:
+ QString contentUri;
};
BaseJob::Query queryToUploadContent(const QString& filename)
@@ -28,40 +28,37 @@ BaseJob::Query queryToUploadContent(const QString& filename)
static const auto UploadContentJobName = QStringLiteral("UploadContentJob");
-UploadContentJob::UploadContentJob(QIODevice* content, const QString& filename, const QString& contentType)
- : BaseJob(HttpVerb::Post, UploadContentJobName,
- basePath % "/upload",
- queryToUploadContent(filename))
+UploadContentJob::UploadContentJob(QIODevice* content, const QString& filename,
+ const QString& contentType)
+ : BaseJob(HttpVerb::Post, UploadContentJobName, basePath % "/upload",
+ queryToUploadContent(filename))
, d(new Private)
{
setRequestHeader("Content-Type", contentType.toLatin1());
-
setRequestData(Data(content));
}
UploadContentJob::~UploadContentJob() = default;
-const QString& UploadContentJob::contentUri() const
-{
- return d->contentUri;
-}
+const QString& UploadContentJob::contentUri() const { return d->contentUri; }
BaseJob::Status UploadContentJob::parseJson(const QJsonDocument& data)
{
auto json = data.object();
if (!json.contains("content_uri"_ls))
return { IncorrectResponse,
- "The key 'content_uri' not found in the response" };
+ "The key 'content_uri' not found in the response" };
fromJson(json.value("content_uri"_ls), d->contentUri);
+
return Success;
}
class GetContentJob::Private
{
- public:
- QString contentType;
- QString contentDisposition;
- QIODevice* data;
+public:
+ QString contentType;
+ QString contentDisposition;
+ QIODevice* data;
};
BaseJob::Query queryToGetContent(bool allowRemote)
@@ -71,20 +68,22 @@ BaseJob::Query queryToGetContent(bool allowRemote)
return _q;
}
-QUrl GetContentJob::makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, bool allowRemote)
+QUrl GetContentJob::makeRequestUrl(QUrl baseUrl, const QString& serverName,
+ const QString& mediaId, bool allowRemote)
{
return BaseJob::makeRequestUrl(std::move(baseUrl),
- basePath % "/download/" % serverName % "/" % mediaId,
- queryToGetContent(allowRemote));
+ basePath % "/download/" % serverName % "/"
+ % mediaId,
+ queryToGetContent(allowRemote));
}
static const auto GetContentJobName = QStringLiteral("GetContentJob");
-GetContentJob::GetContentJob(const QString& serverName, const QString& mediaId, bool allowRemote)
+GetContentJob::GetContentJob(const QString& serverName, const QString& mediaId,
+ bool allowRemote)
: BaseJob(HttpVerb::Get, GetContentJobName,
- basePath % "/download/" % serverName % "/" % mediaId,
- queryToGetContent(allowRemote),
- {}, false)
+ basePath % "/download/" % serverName % "/" % mediaId,
+ queryToGetContent(allowRemote), {}, false)
, d(new Private)
{
setExpectedContentTypes({ "*/*" });
@@ -92,20 +91,14 @@ GetContentJob::GetContentJob(const QString& serverName, const QString& mediaId,
GetContentJob::~GetContentJob() = default;
-const QString& GetContentJob::contentType() const
-{
- return d->contentType;
-}
+const QString& GetContentJob::contentType() const { return d->contentType; }
const QString& GetContentJob::contentDisposition() const
{
return d->contentDisposition;
}
-QIODevice* GetContentJob::data() const
-{
- return d->data;
-}
+QIODevice* GetContentJob::data() const { return d->data; }
BaseJob::Status GetContentJob::parseReply(QNetworkReply* reply)
{
@@ -117,10 +110,10 @@ BaseJob::Status GetContentJob::parseReply(QNetworkReply* reply)
class GetContentOverrideNameJob::Private
{
- public:
- QString contentType;
- QString contentDisposition;
- QIODevice* data;
+public:
+ QString contentType;
+ QString contentDisposition;
+ QIODevice* data;
};
BaseJob::Query queryToGetContentOverrideName(bool allowRemote)
@@ -130,20 +123,29 @@ BaseJob::Query queryToGetContentOverrideName(bool allowRemote)
return _q;
}
-QUrl GetContentOverrideNameJob::makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, const QString& fileName, bool allowRemote)
+QUrl GetContentOverrideNameJob::makeRequestUrl(QUrl baseUrl,
+ const QString& serverName,
+ const QString& mediaId,
+ const QString& fileName,
+ bool allowRemote)
{
return BaseJob::makeRequestUrl(std::move(baseUrl),
- basePath % "/download/" % serverName % "/" % mediaId % "/" % fileName,
- queryToGetContentOverrideName(allowRemote));
+ basePath % "/download/" % serverName % "/"
+ % mediaId % "/" % fileName,
+ queryToGetContentOverrideName(allowRemote));
}
-static const auto GetContentOverrideNameJobName = QStringLiteral("GetContentOverrideNameJob");
+static const auto GetContentOverrideNameJobName =
+ QStringLiteral("GetContentOverrideNameJob");
-GetContentOverrideNameJob::GetContentOverrideNameJob(const QString& serverName, const QString& mediaId, const QString& fileName, bool allowRemote)
+GetContentOverrideNameJob::GetContentOverrideNameJob(const QString& serverName,
+ const QString& mediaId,
+ const QString& fileName,
+ bool allowRemote)
: BaseJob(HttpVerb::Get, GetContentOverrideNameJobName,
- basePath % "/download/" % serverName % "/" % mediaId % "/" % fileName,
- queryToGetContentOverrideName(allowRemote),
- {}, false)
+ basePath % "/download/" % serverName % "/" % mediaId % "/"
+ % fileName,
+ queryToGetContentOverrideName(allowRemote), {}, false)
, d(new Private)
{
setExpectedContentTypes({ "*/*" });
@@ -161,10 +163,7 @@ const QString& GetContentOverrideNameJob::contentDisposition() const
return d->contentDisposition;
}
-QIODevice* GetContentOverrideNameJob::data() const
-{
- return d->data;
-}
+QIODevice* GetContentOverrideNameJob::data() const { return d->data; }
BaseJob::Status GetContentOverrideNameJob::parseReply(QNetworkReply* reply)
{
@@ -176,12 +175,14 @@ BaseJob::Status GetContentOverrideNameJob::parseReply(QNetworkReply* reply)
class GetContentThumbnailJob::Private
{
- public:
- QString contentType;
- QIODevice* data;
+public:
+ QString contentType;
+ QIODevice* data;
};
-BaseJob::Query queryToGetContentThumbnail(int width, int height, const QString& method, bool allowRemote)
+BaseJob::Query queryToGetContentThumbnail(int width, int height,
+ const QString& method,
+ bool allowRemote)
{
BaseJob::Query _q;
addParam<>(_q, QStringLiteral("width"), width);
@@ -191,20 +192,29 @@ BaseJob::Query queryToGetContentThumbnail(int width, int height, const QString&
return _q;
}
-QUrl GetContentThumbnailJob::makeRequestUrl(QUrl baseUrl, const QString& serverName, const QString& mediaId, int width, int height, const QString& method, bool allowRemote)
+QUrl GetContentThumbnailJob::makeRequestUrl(QUrl baseUrl,
+ const QString& serverName,
+ const QString& mediaId, int width,
+ int height, const QString& method,
+ bool allowRemote)
{
- return BaseJob::makeRequestUrl(std::move(baseUrl),
- basePath % "/thumbnail/" % serverName % "/" % mediaId,
- queryToGetContentThumbnail(width, height, method, allowRemote));
+ return BaseJob::makeRequestUrl(
+ std::move(baseUrl),
+ basePath % "/thumbnail/" % serverName % "/" % mediaId,
+ queryToGetContentThumbnail(width, height, method, allowRemote));
}
-static const auto GetContentThumbnailJobName = QStringLiteral("GetContentThumbnailJob");
+static const auto GetContentThumbnailJobName =
+ QStringLiteral("GetContentThumbnailJob");
-GetContentThumbnailJob::GetContentThumbnailJob(const QString& serverName, const QString& mediaId, int width, int height, const QString& method, bool allowRemote)
+GetContentThumbnailJob::GetContentThumbnailJob(const QString& serverName,
+ const QString& mediaId, int width,
+ int height, const QString& method,
+ bool allowRemote)
: BaseJob(HttpVerb::Get, GetContentThumbnailJobName,
- basePath % "/thumbnail/" % serverName % "/" % mediaId,
- queryToGetContentThumbnail(width, height, method, allowRemote),
- {}, false)
+ basePath % "/thumbnail/" % serverName % "/" % mediaId,
+ queryToGetContentThumbnail(width, height, method, allowRemote),
+ {}, false)
, d(new Private)
{
setExpectedContentTypes({ "image/jpeg", "image/png" });
@@ -217,10 +227,7 @@ const QString& GetContentThumbnailJob::contentType() const
return d->contentType;
}
-QIODevice* GetContentThumbnailJob::data() const
-{
- return d->data;
-}
+QIODevice* GetContentThumbnailJob::data() const { return d->data; }
BaseJob::Status GetContentThumbnailJob::parseReply(QNetworkReply* reply)
{
@@ -231,9 +238,9 @@ BaseJob::Status GetContentThumbnailJob::parseReply(QNetworkReply* reply)
class GetUrlPreviewJob::Private
{
- public:
- Omittable<qint64> matrixImageSize;
- QString ogImage;
+public:
+ Omittable<qint64> matrixImageSize;
+ QString ogImage;
};
BaseJob::Query queryToGetUrlPreview(const QString& url, Omittable<qint64> ts)
@@ -244,22 +251,20 @@ BaseJob::Query queryToGetUrlPreview(const QString& url, Omittable<qint64> ts)
return _q;
}
-QUrl GetUrlPreviewJob::makeRequestUrl(QUrl baseUrl, const QString& url, Omittable<qint64> ts)
+QUrl GetUrlPreviewJob::makeRequestUrl(QUrl baseUrl, const QString& url,
+ Omittable<qint64> ts)
{
- return BaseJob::makeRequestUrl(std::move(baseUrl),
- basePath % "/preview_url",
- queryToGetUrlPreview(url, ts));
+ return BaseJob::makeRequestUrl(std::move(baseUrl), basePath % "/preview_url",
+ queryToGetUrlPreview(url, ts));
}
static const auto GetUrlPreviewJobName = QStringLiteral("GetUrlPreviewJob");
GetUrlPreviewJob::GetUrlPreviewJob(const QString& url, Omittable<qint64> ts)
- : BaseJob(HttpVerb::Get, GetUrlPreviewJobName,
- basePath % "/preview_url",
- queryToGetUrlPreview(url, ts))
+ : BaseJob(HttpVerb::Get, GetUrlPreviewJobName, basePath % "/preview_url",
+ queryToGetUrlPreview(url, ts))
, d(new Private)
-{
-}
+{}
GetUrlPreviewJob::~GetUrlPreviewJob() = default;
@@ -268,51 +273,43 @@ Omittable<qint64> GetUrlPreviewJob::matrixImageSize() const
return d->matrixImageSize;
}
-const QString& GetUrlPreviewJob::ogImage() const
-{
- return d->ogImage;
-}
+const QString& GetUrlPreviewJob::ogImage() const { return d->ogImage; }
BaseJob::Status GetUrlPreviewJob::parseJson(const QJsonDocument& data)
{
auto json = data.object();
fromJson(json.value("matrix:image:size"_ls), d->matrixImageSize);
fromJson(json.value("og:image"_ls), d->ogImage);
+
return Success;
}
class GetConfigJob::Private
{
- public:
- Omittable<qint64> uploadSize;
+public:
+ Omittable<qint64> uploadSize;
};
QUrl GetConfigJob::makeRequestUrl(QUrl baseUrl)
{
- return BaseJob::makeRequestUrl(std::move(baseUrl),
- basePath % "/config");
+ return BaseJob::makeRequestUrl(std::move(baseUrl), basePath % "/config");
}
static const auto GetConfigJobName = QStringLiteral("GetConfigJob");
GetConfigJob::GetConfigJob()
- : BaseJob(HttpVerb::Get, GetConfigJobName,
- basePath % "/config")
+ : BaseJob(HttpVerb::Get, GetConfigJobName, basePath % "/config")
, d(new Private)
-{
-}
+{}
GetConfigJob::~GetConfigJob() = default;
-Omittable<qint64> GetConfigJob::uploadSize() const
-{
- return d->uploadSize;
-}
+Omittable<qint64> GetConfigJob::uploadSize() const { return d->uploadSize; }
BaseJob::Status GetConfigJob::parseJson(const QJsonDocument& data)
{
auto json = data.object();
fromJson(json.value("m.upload.size"_ls), d->uploadSize);
+
return Success;
}
-