From a35c9fa159173388d88ef77e1d31f53488aad094 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 3 Apr 2026 22:55:30 +0200 Subject: Generalize for all fediverse accounts --- .../fediversetransferplugin/fediverseapi.h | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 transferengine-plugins/fediversetransferplugin/fediverseapi.h (limited to 'transferengine-plugins/fediversetransferplugin/fediverseapi.h') diff --git a/transferengine-plugins/fediversetransferplugin/fediverseapi.h b/transferengine-plugins/fediversetransferplugin/fediverseapi.h new file mode 100644 index 0000000..a85442c --- /dev/null +++ b/transferengine-plugins/fediversetransferplugin/fediverseapi.h @@ -0,0 +1,65 @@ +/* + * SPDX-FileCopyrightText: 2013 - 2026 Jolla Ltd. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef FEDIVERSEAPI_H +#define FEDIVERSEAPI_H + +#include +#include + +#include +#include + +class FediverseApi : public QObject +{ + Q_OBJECT + +public: + enum API_CALL { + NONE, + UPLOAD_MEDIA, + POST_STATUS + }; + + explicit FediverseApi(QNetworkAccessManager *qnam, QObject *parent = 0); + ~FediverseApi(); + + bool uploadImage(const QString &filePath, + const QString &statusText, + const QString &mimeType, + const QString &apiHost, + const QString &accessToken); + bool postStatus(const QString &statusText, + const QString &apiHost, + const QString &accessToken); + + void cancelUpload(); + +Q_SIGNALS: + void transferProgressUpdated(qreal progress); + void transferFinished(); + void transferError(); + void transferCanceled(); + void credentialsExpired(); + +private Q_SLOTS: + void replyError(QNetworkReply::NetworkError error); + void finished(); + void uploadProgress(qint64 received, qint64 total); + +private: + bool postStatusInternal(const QString &mediaId); + void finishTransfer(QNetworkReply::NetworkError error, int httpCode, const QByteArray &data); + + QMap m_replies; + bool m_cancelRequested; + QNetworkAccessManager *m_qnam; + QString m_accessToken; + QString m_apiHost; + QString m_statusText; +}; + +#endif // FEDIVERSEAPI_H -- cgit v1.2.3