#ifndef MASTODONAPI_H #define MASTODONAPI_H #include #include #include #include class MastodonApi : public QObject { Q_OBJECT public: enum API_CALL { NONE, UPLOAD_MEDIA, POST_STATUS }; explicit MastodonApi(QNetworkAccessManager *qnam, QObject *parent = 0); ~MastodonApi(); 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: static QString normalizeApiHost(const QString &rawHost); bool postStatusInternal(const QString &mediaId); void finishTransfer(QNetworkReply::NetworkError error, int httpCode, const QByteArray &data); QMap m_replies; QNetworkAccessManager *m_qnam; QString m_accessToken; QString m_apiHost; QString m_statusText; }; #endif // MASTODONAPI_H