Support paste.gg, hastebin, and mclo.gs

This commit is contained in:
Lenny McLennington
2022-05-11 21:44:06 +01:00
parent 9a0d6124f3
commit 35f71f5793
7 changed files with 272 additions and 75 deletions

View File

@ -36,14 +36,38 @@
#include "tasks/Task.h"
#include <QNetworkReply>
#include <QString>
#include <QBuffer>
#include <memory>
#include <array>
class PasteUpload : public Task
{
Q_OBJECT
public:
PasteUpload(QWidget *window, QString text, QString url);
enum PasteType : unsigned int {
// 0x0.st
NullPointer,
// hastebin.com
Hastebin,
// paste.gg
PasteGG,
// mclo.gs
Mclogs,
// Helpful to get the range of valid values on the enum for input sanitisation:
First = NullPointer,
Last = Mclogs
};
struct PasteTypeInfo {
const QString name;
const QString defaultBase;
const QString endpointPath;
};
static std::array<PasteTypeInfo, 4> PasteTypes;
PasteUpload(QWidget *window, QString text, QString url, PasteType pasteType);
virtual ~PasteUpload();
QString pasteLink()
@ -56,7 +80,9 @@ protected:
private:
QWidget *m_window;
QString m_pasteLink;
QString m_baseUrl;
QString m_uploadUrl;
PasteType m_pasteType;
QByteArray m_text;
std::shared_ptr<QNetworkReply> m_reply;
public