summaryrefslogtreecommitdiffstats
path: root/libraries/ganalytics/src/ganalytics_worker.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2016-11-20 12:32:27 +0100
committerPetr Mrázek <peterix@gmail.com>2016-11-21 01:19:22 +0100
commit2f8c752d1fe9976fdbd683d34ae3dcbf4e797591 (patch)
tree2b9fbba468b93accbf9affb07f9ea3b5f9938c66 /libraries/ganalytics/src/ganalytics_worker.h
parent2ec15c32e4419c94995f78b1d1ef8790e71b3317 (diff)
downloadMultiMC-2f8c752d1fe9976fdbd683d34ae3dcbf4e797591.tar
MultiMC-2f8c752d1fe9976fdbd683d34ae3dcbf4e797591.tar.gz
MultiMC-2f8c752d1fe9976fdbd683d34ae3dcbf4e797591.tar.lz
MultiMC-2f8c752d1fe9976fdbd683d34ae3dcbf4e797591.tar.xz
MultiMC-2f8c752d1fe9976fdbd683d34ae3dcbf4e797591.zip
NOISSUE reformat and sanitize ganalytics
Diffstat (limited to 'libraries/ganalytics/src/ganalytics_worker.h')
-rw-r--r--libraries/ganalytics/src/ganalytics_worker.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/libraries/ganalytics/src/ganalytics_worker.h b/libraries/ganalytics/src/ganalytics_worker.h
new file mode 100644
index 00000000..280f9ab2
--- /dev/null
+++ b/libraries/ganalytics/src/ganalytics_worker.h
@@ -0,0 +1,61 @@
+#pragma once
+
+#include <QUrlQuery>
+#include <QDateTime>
+#include <QTimer>
+#include <QNetworkRequest>
+#include <QQueue>
+
+struct QueryBuffer
+{
+ QUrlQuery postQuery;
+ QDateTime time;
+};
+
+class GAnalyticsWorker : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit GAnalyticsWorker(GAnalytics *parent = 0);
+
+ GAnalytics *q;
+
+ QNetworkAccessManager *networkManager = nullptr;
+
+ QQueue<QueryBuffer> m_messageQueue;
+ QTimer m_timer;
+ QNetworkRequest m_request;
+ GAnalytics::LogLevel m_logLevel;
+
+ QString m_trackingID;
+ QString m_clientID;
+ QString m_userID;
+ QString m_appName;
+ QString m_appVersion;
+ QString m_language;
+ QString m_screenResolution;
+ QString m_viewportSize;
+
+ bool m_isSending;
+
+ const static int fourHours = 4 * 60 * 60 * 1000;
+ const static QLatin1String dateTimeFormat;
+
+public:
+ void logMessage(GAnalytics::LogLevel level, const QString &message);
+
+ QUrlQuery buildStandardPostQuery(const QString &type);
+ QString getScreenResolution();
+ QString getUserAgent();
+ QList<QString> persistMessageQueue();
+ void readMessagesFromFile(const QList<QString> &dataList);
+
+ void enqueQueryWithCurrentTime(const QUrlQuery &query);
+ void setIsSending(bool doSend);
+
+public slots:
+ void postMessage();
+ void postMessageFinished();
+};
+