diff --git a/CrawlerProcess/CrawlerProcess.pro.user b/CrawlerProcess/CrawlerProcess.pro.user index 42bdb36..116870b 100644 --- a/CrawlerProcess/CrawlerProcess.pro.user +++ b/CrawlerProcess/CrawlerProcess.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -8,7 +8,7 @@ ProjectExplorer.Project.ActiveTarget - 1 + 0 ProjectExplorer.Project.EditorSettings diff --git a/EffectProcess/EffectProcess.pro.user b/EffectProcess/EffectProcess.pro.user index 99bfbda..c7d92a1 100644 --- a/EffectProcess/EffectProcess.pro.user +++ b/EffectProcess/EffectProcess.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -1026,8 +1026,8 @@ 2 EffectProcess - - Qt4ProjectManager.Qt4RunConfiguration:C:/source/EffectProcess2/EffectProcess.pro + EffectProcess2 + Qt4ProjectManager.Qt4RunConfiguration:C:/source/EffectProcess/EffectProcess.pro true EffectProcess.pro diff --git a/EffectProcess/snaverblog.cpp b/EffectProcess/snaverblog.cpp index 5518592..a1c7576 100644 --- a/EffectProcess/snaverblog.cpp +++ b/EffectProcess/snaverblog.cpp @@ -50,6 +50,16 @@ const QString SNaverBlog::scriptArticleData = "}" "findArticledata();"; +const QString SNaverBlog::scriptLikeCount = + "function findSympathy() { " + "var tt = frames['mainFrame'].document.querySelector('em.u_cnt._cnt'); " + "if (tt)" + " return tt.textContent;" + "else" + " return \"-1\"; " + "}" + "findSympathy();"; + const QString SNaverBlog::scriptReplyUrl = "function findSympathy() { " "var tt = frames['mainFrame'].document.querySelector('em.u_cnt._cnt'); " @@ -430,7 +440,8 @@ void SNaverBlog::slotLoadFinished(bool ok) m_pWebPage->runJavaScript(scriptArticleNickname, std::bind(&SNaverBlog::cbBodyArticleNickname, this, _1)); m_pWebPage->runJavaScript(scriptArticleOrder, std::bind(&SNaverBlog::cbBodyArticleOrder,this, _1)); m_pWebPage->runJavaScript(scriptArticleTitle, std::bind(&SNaverBlog::cbBodyArticleTitle,this, _1)); - m_pWebPage->runJavaScript(scriptReplyUrl, std::bind(&SNaverBlog::cbBodyReplyUrl,this, _1)); + //m_pWebPage->runJavaScript(scriptReplyUrl, std::bind(&SNaverBlog::cbBodyReplyUrl,this, _1)); + m_pWebPage->runJavaScript(scriptLikeCount, std::bind(&SNaverBlog::cbBodyReplyUrl,this, _1)); return; } @@ -676,6 +687,26 @@ void SNaverBlog::cbBodyReplyUrl(const QVariant& _result) goReplyUrl(); } +void SNaverBlog::cbBodyLikeCount(const QVariant& _result) +{ + //qDebug() << "replyurl"; + bool ok; + static int Retry = 2; + QString strData = _result.toString().trimmed().replace(",", ""); + if ((strData == "-1" || strData.isEmpty()) && Retry-- > 0) + { + QTimer::singleShot(TIME, this, [this](){ + this->m_pWebPage->runJavaScript(scriptLikeCount, std::bind(&SNaverBlog::cbBodyLikeCount, this, _1)); + }); + return; + } + m_efData.body.data[LIKE_COUNT] = strData; + ok = doneBodyCrawler(E_FUNC_REPLY_URL); + //qDebug() << "done replyurl"; + if (ok) + goReplyUrl(); +} + bool SNaverBlog::doneBodyCrawler(E_FUNC _func_type) { bool ok = true; diff --git a/EffectProcess/snaverblog.h b/EffectProcess/snaverblog.h index 8620c3d..e5ee2ce 100644 --- a/EffectProcess/snaverblog.h +++ b/EffectProcess/snaverblog.h @@ -72,6 +72,7 @@ private: void cbBodyArticleNickname(const QVariant& result); void cbBodyArticleOrder(const QVariant& result); void cbBodyReplyUrl(const QVariant& _result); + void cbBodyLikeCount(const QVariant& _result); bool doneBodyCrawler(E_FUNC _func_type); @@ -79,6 +80,7 @@ private: static const QString scriptArticleTitle; static const QString scriptArticleData; static const QString scriptReplyUrl; + static const QString scriptLikeCount; static const QString scriptArticleNickname; static const QString scriptArticleOrder; bool m_abOk[E_FUNC_MAX]; diff --git a/EffectProcess/sresultsender.cpp b/EffectProcess/sresultsender.cpp index 489513d..7d172b3 100644 --- a/EffectProcess/sresultsender.cpp +++ b/EffectProcess/sresultsender.cpp @@ -7,6 +7,7 @@ #include #include #include +#include namespace { const QString SEPERATOR = "!@#"; @@ -92,7 +93,6 @@ bool SResultSender::send(const State_s1_effect& _result) "likecount = :likecount, interactioncount = :interactioncount," "engagementcount = :engagementcount, lastupdate_filter = :lastupdate_filter, status = 'OK'"; QSqlQuery query(db); - query.prepare(strQuery); query.bindValue(":event_num", _result.event_num); query.bindValue(":replybuzz", _result.replybuzz); diff --git a/EffectProcess/sutilclass.h b/EffectProcess/sutilclass.h index fa4a29e..807f0d9 100644 --- a/EffectProcess/sutilclass.h +++ b/EffectProcess/sutilclass.h @@ -181,6 +181,7 @@ enum E_COLUMN PLATFORM_ID, KEYWORD_ID, REPLY_URL, + LIKE_COUNT, ETC, TOTAL_COUNT, }; diff --git a/EffectUI/EffectUI.pro.user b/EffectUI/EffectUI.pro.user index b77d653..85bd407 100644 --- a/EffectUI/EffectUI.pro.user +++ b/EffectUI/EffectUI.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -779,7 +779,7 @@ 2 EffectUI - + EffectUI2 Qt4ProjectManager.Qt4RunConfiguration:C:/source/EffectUI2/EffectUI.pro true diff --git a/EffectUI/scompanylistwidget.cpp b/EffectUI/scompanylistwidget.cpp index 916e382..3847975 100644 --- a/EffectUI/scompanylistwidget.cpp +++ b/EffectUI/scompanylistwidget.cpp @@ -153,10 +153,15 @@ void SCompanyListWidget::refresh() } //select num, name, startdate, enddate from company join company_event_map where company.num = company_event_map.company_num - QString strQuery("select company.num, name, startdate, enddate, " - "count(company_event_map.company_num) as " - "cnt from company inner join company_event_map " - "on company.num = company_event_map.company_num group by company.num"); + QString strQuery("select company.num, name, eventgroup.startdate, eventgroup.enddate, " + "count(company_event_map.company_num) as cnt " + "from company " + "inner join company_event_map " + "on company.num = company_event_map.company_num " + "inner join eventgroup " + "on eventgroup.company_num = company.num " + "group by company.num;" + ); QSqlQuery query(db); if (!query.exec(strQuery)) { diff --git a/EffectUI/scompanyprocess.cpp b/EffectUI/scompanyprocess.cpp index 028ddd9..d0c44b6 100644 --- a/EffectUI/scompanyprocess.cpp +++ b/EffectUI/scompanyprocess.cpp @@ -7,6 +7,7 @@ #include #include #include +#include namespace { @@ -100,11 +101,14 @@ void SCompanyProcess::runInit() } */ - strQuery = "select company.num, name, startdate, enddate, t.eventgroupnum, " - "t.date, t.url, t.num, t.platformname_num from company " + strQuery = "select company.num, name, eventgroup.startdate, eventgroup.enddate, t.eventgroupnum, " + "t.date, t.url, t.num, t.platformname_num " + "from company " "join (select company_num, company_event_map.eventgroup_num as eventgroupnum, event.date, event.url, event.num, " "event.platformname_num from company_event_map join event on company_event_map.event_num = event.num) " - "as t on company.num = t.company_num where company.num in ("; + "as t on company.num = t.company_num " + "inner join eventgroup on eventgroup.company_num = company.num " + "where company.num in ("; foreach (auto &num, m_vecRunOrderList) { diff --git a/EffectUI/sparentprocess.cpp b/EffectUI/sparentprocess.cpp index ae18063..43713d4 100644 --- a/EffectUI/sparentprocess.cpp +++ b/EffectUI/sparentprocess.cpp @@ -137,6 +137,7 @@ QStringList SParentProcess::getProcessArguments(const SEffectRow& _row) const } slargv << _row.eventcode << _row.url << _row.company_startdate.toString("yyyy-MM-dd"); + return slargv; } @@ -154,7 +155,7 @@ void SParentProcess::runProcess(QStringList _arguments) } else { - emit signalLog("x " + m_erCurrentRow.eventcode + " " + m_erCurrentRow.url + "\n[99:99:99] ERROR:NO_PROGRAM"); + emit signalLog("x : " + m_erCurrentRow.eventcode + " : " + m_erCurrentRow.url + "\n[99:99:99] ERROR:NO_PROGRAM"); emit signalTerminateEachEvent(m_erCurrentRow.company_num, E_CRAWL_STATE::FAIL); m_vecError.append(m_erCurrentRow); setInnerMode(E_INNER_RUN_MODE::MODE_RUN_EVENTCODE); diff --git a/FilterProcess/FilterProcess.pro.user b/FilterProcess/FilterProcess.pro.user index 3afc789..5c0b5ef 100644 --- a/FilterProcess/FilterProcess.pro.user +++ b/FilterProcess/FilterProcess.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -1273,8 +1273,8 @@ 2 FilterProcess - FilterProcess2 - Qt4ProjectManager.Qt4RunConfiguration:C:/source/FilterProcess3/FilterProcess.pro + + Qt4ProjectManager.Qt4RunConfiguration:C:/source/FilterProcess/FilterProcess.pro true FilterProcess.pro diff --git a/FilterProcess/spowercafe.cpp b/FilterProcess/spowercafe.cpp index bcaec96..1020923 100644 --- a/FilterProcess/spowercafe.cpp +++ b/FilterProcess/spowercafe.cpp @@ -1216,21 +1216,39 @@ bool SPowercafe::SStatsJson::uploadData(QSqlDatabase &_db, const int &_nCompany) foreach (const stStatsJson& ststats, m_listMap) { - QString strQuery = "insert into stats_json (company_num, servicenum, title, subtitle, category_num, platformname_num, jdata) values ("; - strQuery += QString::number(_nCompany) + ","; - strQuery += QString::number(ststats.servicenum) + ","; - strQuery += "'" + ststats.title + "',"; - strQuery += "'" + ststats.subtitle + "',"; - strQuery += QString::number(ststats.category_num) + ","; - strQuery += QString::number(ststats.platformname_num) + ","; - strQuery += "'" + ststats.jdata +"')"; +// QString strQuery = "insert into stats_json (company_num, servicenum, title, subtitle, category_num, platformname_num, jdata) values ("; +// strQuery += QString::number(_nCompany) + ","; +// strQuery += QString::number(ststats.servicenum) + ","; +// strQuery += "'" + ststats.title + "',"; +// strQuery += "'" + ststats.subtitle + "',"; +// strQuery += QString::number(ststats.category_num) + ","; +// strQuery += QString::number(ststats.platformname_num) + ","; +// strQuery += "'" + ststats.jdata +"')"; - if (!query.exec(strQuery.toUtf8())) +// if (!query.exec(strQuery.toUtf8())) +// { +// m_pSInitializer->insertLog(query.lastQuery()); +// m_pSInitializer->insertLog(query.lastError().text()); +// return false; +// } + + query.prepare("insert into stats_json (company_num, servicenum, title, subtitle, category_num, platformname_num, jdata) values " + "(:company_num, :servicenum, :title, :subtitle, :category_num, :platformname_num, :jdata)"); + query.bindValue(":company_num", _nCompany); + query.bindValue(":servicenum", ststats.servicenum); + query.bindValue(":title", ststats.title); + query.bindValue(":subtitle", ststats.subtitle); + query.bindValue(":category_num", ststats.category_num); + query.bindValue(":platformname_num", ststats.platformname_num); + query.bindValue(":jdata", ststats.jdata); + + if (!query.exec()) { m_pSInitializer->insertLog(query.lastQuery()); m_pSInitializer->insertLog(query.lastError().text()); return false; } + } return true; }