From 3c05e9b27b3b61e9f67637c10dd8dc583544e686 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Sat, 27 Apr 2019 11:45:31 +0800 Subject: [PATCH] refine user track logics --- src/vconfigmanager.cpp | 16 ++++++++++++++++ src/vconfigmanager.h | 3 +++ src/vmainwindow.cpp | 26 ++++++++++++++++++-------- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/vconfigmanager.cpp b/src/vconfigmanager.cpp index 7f07e89c..b6c3bdde 100644 --- a/src/vconfigmanager.cpp +++ b/src/vconfigmanager.cpp @@ -1734,3 +1734,19 @@ void VConfigManager::setWindowsOpenGL(int p_openGL) QString fullKey("global/windows_opengl"); userSet->setValue(fullKey, p_openGL); } + +QDate VConfigManager::getLastUserTrackDate() const +{ + + auto dateStr = getConfigFromSessionSettings("global", + "last_user_track_date").toString(); + return QDate::fromString(dateStr, Qt::ISODate); +} + +void VConfigManager::updateLastUserTrackDate() +{ + auto date = QDate::currentDate(); + setConfigToSessionSettings("global", + "last_user_track_date", + date.toString(Qt::ISODate)); +} diff --git a/src/vconfigmanager.h b/src/vconfigmanager.h index 291c16b8..4fd71d84 100644 --- a/src/vconfigmanager.h +++ b/src/vconfigmanager.h @@ -637,6 +637,9 @@ public: bool getSyncNoteListToTab() const; void setSyncNoteListToTab(bool p_enabled); + QDate getLastUserTrackDate() const; + void updateLastUserTrackDate(); + private: void initEditorConfigs(); diff --git a/src/vmainwindow.cpp b/src/vmainwindow.cpp index e6a97d71..f6d79c31 100644 --- a/src/vmainwindow.cpp +++ b/src/vmainwindow.cpp @@ -3477,7 +3477,7 @@ void VMainWindow::kickOffStartUpTimer(const QStringList &p_files) } if (g_config->getAllowUserTrack()) { - QTimer::singleShot(60000, this, SLOT(collectUserStat())); + QTimer::singleShot(30 * 1000, this, SLOT(collectUserStat())); } m_syncNoteListToCurrentTab = true; @@ -3585,13 +3585,23 @@ void VMainWindow::setupFileListSplitOut(bool p_enabled) void VMainWindow::collectUserStat() const { - QWebEnginePage *page = new QWebEnginePage; - page->load(QUrl("https://tamlok.github.io/user_track/vnote.html")); - connect(page, &QWebEnginePage::loadFinished, - this, [page](bool) { - VUtils::sleepWait(2000); - page->deleteLater(); - }); + // One request per day. + auto lastCheckDate = g_config->getLastUserTrackDate(); + if (lastCheckDate != QDate::currentDate()) { + g_config->updateLastUserTrackDate(); + + qDebug() << "send user track" << QDate::currentDate(); + + QWebEnginePage *page = new QWebEnginePage; + page->load(QUrl("https://tamlok.github.io/user_track/vnote.html")); + connect(page, &QWebEnginePage::loadFinished, + this, [page](bool) { + VUtils::sleepWait(2000); + page->deleteLater(); + }); + } + + QTimer::singleShot(30 * 60 * 1000, this, SLOT(collectUserStat())); } void VMainWindow::promptForVNoteRestart()