웹 변경

git-svn-id: svn://192.168.0.12/source@121 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2015-05-22 07:08:37 +00:00
parent 325a02922e
commit dbc2aa2434
3 changed files with 109 additions and 68 deletions

View File

@@ -9,7 +9,10 @@ int main(int argc, char *argv[])
return 0;
}
SFilterProcess *process = new SFilterProcess;
process->run(argv[1],argv[2]);
if (process->ReloadSetup())
process->run(argv[1],argv[2]);
else
cout << "Error : Setup.ini not read" << endl;
delete process;
return 0;
}

View File

@@ -2,10 +2,10 @@
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QVariant>
#include <QMessageBox>
#include <QDebug>
#include <QFile>
#include <QSqlError>
#include <QSettings>
#include "../json/sjson.h"
#include "../common.h"
@@ -19,6 +19,36 @@ SFilterProcess::~SFilterProcess()
{
}
bool SFilterProcess::ReloadSetup()
{
QSettings settings(QString("setup.ini"), QSettings::IniFormat);
settings.setIniCodec("UTF-8");
settings.beginGroup(QString("database"));
if (settings.childKeys().size() == 0) return false;
m_strWebDataBaseHost = settings.value("host").toString();
m_strWebDataBaseUser = settings.value("user").toString();
m_strWebDataBasePass = settings.value("pass").toString();
m_strWebDataBaseName = settings.value("name").toString();
settings.endGroup();
settings.beginGroup(QString("settings"));
if (settings.childKeys().size() == 0) return false;
m_nCutDays = settings.value("days").toInt();
settings.endGroup();
m_adSpammer[E_SPAMER_MAX];
settings.beginGroup(QString("spammers"));
if (settings.childKeys().size() == 0) return false;
m_adSpammer[E_SPAMER_BODY_COUNT_CUT] = settings.value("body_cut").toDouble();
m_adSpammer[E_SPAMER_BODY_COUNT_RATIO] = settings.value("body_ratio").toDouble();
m_adSpammer[E_SPAMER_REPLY_COUNT_CUT] = settings.value("reply_cut").toDouble();
m_adSpammer[E_SPAMER_REPLY_COUNT_RATIO] = settings.value("reply_ratio").toDouble();
m_adSpammer[E_SPAMER_NICK_COUNT_CUT] = settings.value("nick_cut").toDouble();
m_adSpammer[E_SPAMER_NICK_COUNT_RATIO] = settings.value("nick_ratio").toDouble();
settings.endGroup();
return true;
}
bool SFilterProcess::ReloadColumn()
{
QVector <QStringList> vecColumn;
@@ -124,10 +154,10 @@ void SFilterProcess::run(QString _strFindID,QString _strFilterGroupName)
exit(0);
return;
}
m_db.setHostName(D_DB_WEB_HOST);
m_db.setUserName(D_DB_WEB_USER);
m_db.setPassword(D_DB_WEB_PASS);
m_db.setDatabaseName(D_DB_WEB_NAME);
m_db.setHostName(m_strWebDataBaseHost);
m_db.setUserName(m_strWebDataBaseUser);
m_db.setPassword(m_strWebDataBasePass);
m_db.setDatabaseName(m_strWebDataBaseName);
if (m_db.open() == false)
{
InsertLog(m_db.lastError().text());
@@ -183,9 +213,10 @@ void SFilterProcess::run(QString _strFindID,QString _strFilterGroupName)
* category_num 4
*/
{
QString strCompany;
InsertLog("<Start>");
foreach (QVariantList data,listArgument)
{
{
switch(data.at(0).toInt())
{
case E_PROCSS_TYPE_LOAD:
@@ -195,7 +226,8 @@ void SFilterProcess::run(QString _strFindID,QString _strFilterGroupName)
DataCategoryMake(data.at(2).toString(),data.at(4).toInt());
break;
case E_PROCSS_TYPE_SEND:
DataPut(data.at(3).toString());
DataPut(data.at(3).toString());
strCompany = data.at(3).toString();
break;
case E_PROCSS_TYPE_INFLUENCE_COUNT:
DataInfluenceCount(data.at(2).toString(),data.at(3).toString());
@@ -208,6 +240,18 @@ void SFilterProcess::run(QString _strFindID,QString _strFilterGroupName)
break;
}
}
m_db.setHostName(m_strWebDataBaseHost);
m_db.setUserName(m_strWebDataBaseUser);
m_db.setPassword(m_strWebDataBasePass);
m_db.setDatabaseName(m_strWebDataBaseName);
if (m_db.open() == false)
{
InsertLog(m_db.lastError().text());
return;
}
strQuery = QString("UPDATE company SET lastupdate = sysdate() WHERE num = ") + strCompany;
m_db.exec(strQuery.toUtf8());
m_db.close();
InsertLog("<Finish>");
}
}
@@ -321,7 +365,7 @@ void SFilterProcess::FilterCounter(QString _strJson)
QString str = strList.at(nCatalog).trimmed();
if(mapData.contains(str))
{
mapData[str] += 1;
mapData[str]++;
}
else
{
@@ -506,7 +550,7 @@ void SFilterProcess::DataFilter(QString _strFilterGroupID)
break;
case E_FILTER_TYPE_REPLACE:
FilterReplace(query.value(1).toString());
break;
break;
case E_FILTER_TYPE_COUNTER:
FilterCounter(query.value(1).toString());
break;
@@ -551,10 +595,10 @@ void SFilterProcess::MakeBuzzyAll()
QVariant SFilterProcess::GetWebData(QString _strTable,QString _strColumn,int _nNum)
{
QVariant value;
m_db.setHostName(D_DB_WEB_HOST);
m_db.setUserName(D_DB_WEB_USER);
m_db.setPassword(D_DB_WEB_PASS);
m_db.setDatabaseName(D_DB_WEB_NAME);
m_db.setHostName(m_strWebDataBaseHost);
m_db.setUserName(m_strWebDataBaseUser);
m_db.setPassword(m_strWebDataBasePass);
m_db.setDatabaseName(m_strWebDataBaseName);
if (m_db.open() == false)
{
InsertLog(m_db.lastError().text());
@@ -761,7 +805,7 @@ void SFilterProcess::DataLoad(QString _strDataNum)
if (strList[m_anData[E_DATA_platform_id]].trimmed().isEmpty()) continue;
SBody stBody;
stBody.m_date = QDateTime::fromString(strList[m_anData[E_DATA_article_date]].trimmed(),"yyyy-MM-dd HH:mm:ss").date();
if (stBody.m_date < QDate::currentDate().addDays(-60)) continue;
if (stBody.m_date < QDate::currentDate().addDays(m_nCutDays)) continue;
stBody.m_dtLast = QDateTime::fromString(strList[m_anData[E_DATA_article_date]].trimmed(),"yyyy-MM-dd HH:mm:ss");
stBody.m_bSelect = false;
@@ -941,10 +985,10 @@ void SFilterProcess::DataInfluenceCount(QString _strFilter,QString _strCompanyNu
}
InsertLog("Influence Rank Count Make End");
{
m_db.setHostName(D_DB_WEB_HOST);
m_db.setUserName(D_DB_WEB_USER);
m_db.setPassword(D_DB_WEB_PASS);
m_db.setDatabaseName(D_DB_WEB_NAME);
m_db.setHostName(m_strWebDataBaseHost);
m_db.setUserName(m_strWebDataBaseUser);
m_db.setPassword(m_strWebDataBasePass);
m_db.setDatabaseName(m_strWebDataBaseName);
if (m_db.open() == false)
{
InsertLog(m_db.lastError().text());
@@ -1036,26 +1080,8 @@ bool QSortSpamer(const SSpamer &st1, const SSpamer &st2)
}
void SFilterProcess::DataSpammersCount(QString _strFilter,QString _strCompanyNum)
{
QFile inputFile("spammers.txt");
double dRead[E_SPAMER_MAX]={0.0,};
if (inputFile.open(QIODevice::ReadOnly))
{
QTextStream in(&inputFile);
while (!in.atEnd())
{
QString line = in.readLine();
QStringList list = line.split("=");
if (list.size() < 2) continue;
if (list[0].trimmed().compare("Body_Count_Cut") == 0) dRead[E_SPAMER_BODY_COUNT_CUT]=list[1].toDouble();
if (list[0].trimmed().compare("Body_Count_Ratio") == 0) dRead[E_SPAMER_BODY_COUNT_RATIO]=list[1].toDouble();
if (list[0].trimmed().compare("Reply_Count_Cut") == 0) dRead[E_SPAMER_REPLY_COUNT_CUT]=list[1].toDouble();
if (list[0].trimmed().compare("Reply_Count_Ratio") == 0) dRead[E_SPAMER_REPLY_COUNT_RATIO]=list[1].toDouble();
if (list[0].trimmed().compare("Nick_Count_Cut") == 0) dRead[E_SPAMER_NICK_COUNT_CUT]=list[1].toDouble();
if (list[0].trimmed().compare("Nick_Count_Ratio") == 0) dRead[E_SPAMER_NICK_COUNT_RATIO]=list[1].toDouble();
}
inputFile.close();
}
{
//double dRead[E_SPAMER_MAX]={0.0,};
QMap<QString,SSpamer> mapSpamer;
ReloadData();
InsertLog("Spamer Data Filter Run Start ");
@@ -1138,17 +1164,17 @@ void SFilterProcess::DataSpammersCount(QString _strFilter,QString _strCompanyNum
foreach(SSpamer stSpamer,mapSpamer.values())
{
bool bFlag = false;
if (stSpamer.m_dBodycount > dRead[E_SPAMER_BODY_COUNT_CUT])
if (stSpamer.m_dBodycount > m_adSpammer[E_SPAMER_BODY_COUNT_CUT])
bFlag = true;
if (stSpamer.m_dReplycount > dRead[E_SPAMER_REPLY_COUNT_CUT])
if (stSpamer.m_dReplycount > m_adSpammer[E_SPAMER_REPLY_COUNT_CUT])
bFlag = true;
if ((double)stSpamer.m_setNick.size() > dRead[E_SPAMER_BODY_COUNT_CUT])
if ((double)stSpamer.m_setNick.size() > m_adSpammer[E_SPAMER_BODY_COUNT_CUT])
bFlag = true;
if (bFlag)
{
stSpamer.m_dSpammerValue = (dRead[E_SPAMER_BODY_COUNT_RATIO]*stSpamer.m_dBodycount)+
(dRead[E_SPAMER_REPLY_COUNT_RATIO]*stSpamer.m_dReplycount)+
(dRead[E_SPAMER_NICK_COUNT_RATIO]*(double)stSpamer.m_setNick.size());
stSpamer.m_dSpammerValue = (m_adSpammer[E_SPAMER_BODY_COUNT_RATIO]*stSpamer.m_dBodycount)+
(m_adSpammer[E_SPAMER_REPLY_COUNT_RATIO]*stSpamer.m_dReplycount)+
(m_adSpammer[E_SPAMER_NICK_COUNT_RATIO]*(double)stSpamer.m_setNick.size());
list.push_back(stSpamer);
}
}
@@ -1156,10 +1182,10 @@ void SFilterProcess::DataSpammersCount(QString _strFilter,QString _strCompanyNum
InsertLog("Spamer Rank Count Make End ");
InsertLog("Spamer Rank Count Send Start ");
m_db.setHostName(D_DB_WEB_HOST);
m_db.setUserName(D_DB_WEB_USER);
m_db.setPassword(D_DB_WEB_PASS);
m_db.setDatabaseName(D_DB_WEB_NAME);
m_db.setHostName(m_strWebDataBaseHost);
m_db.setUserName(m_strWebDataBaseUser);
m_db.setPassword(m_strWebDataBasePass);
m_db.setDatabaseName(m_strWebDataBaseName);
if (m_db.open() == false)
{
InsertLog(m_db.lastError().text());
@@ -1178,15 +1204,15 @@ void SFilterProcess::DataSpammersCount(QString _strFilter,QString _strCompanyNum
foreach(QString str,m_mapPlatformname.keys())
mapPlatformnameCount.insert(str,1);
int nCount = 0;
int nCount = 1;
foreach(SSpamer stIn,list)
{
QStringList strList = stIn.m_strKey.split(",");
QString strID = strList[2].trimmed();
QString strPlatformname = strList[0].trimmed();
if (strID.isEmpty()) continue;
if (strPlatformname.isEmpty()) continue;
QString strValue = QString::number(mapPlatformnameCount[strPlatformname]) + ",";
if (strPlatformname.isEmpty()) continue;
QString strValue;
strValue += QString::number(m_mapID[strID].m_nNum) + ",'";
strValue += strID + "',";
strValue += QString::number(stIn.m_setNick.size()) + ",";
@@ -1195,6 +1221,7 @@ void SFilterProcess::DataSpammersCount(QString _strFilter,QString _strCompanyNum
strValue += QString::number(stIn.m_dSpammerValue,'g',3) + ",";
strValue += strCompanyNum;
strQuery = "insert into spammer (rank,id_num,id_id,nicknamecount,bodycount,replycount,spammervalue,company_num) VALUES (";
strQuery += QString::number(nCount) + ",";
strQuery += strValue + ")";
if(query.exec(strQuery.toUtf8()) == false) {
qDebug() << strQuery;InsertLog(query.lastError().text());
@@ -1206,14 +1233,15 @@ void SFilterProcess::DataSpammersCount(QString _strFilter,QString _strCompanyNum
if (mapPlatformnameCount[strPlatformname] <= 10)
{
strQuery = "insert into stats_spammerrank (rank,id_num,id_id,nicknamecount,bodycount,replycount,spammervalue,company_num,platformname_name,subject) VALUES (";
strQuery += QString::number(mapPlatformnameCount[strPlatformname]) + ",";
strQuery += strValue + ",'" + strPlatformname + "','spammervalue')";
if(query.exec(strQuery.toUtf8()) == false) {
qDebug() << strQuery;InsertLog(query.lastError().text());
InsertLog(strQuery);
continue;
}
}
mapPlatformnameCount[strPlatformname]++;
mapPlatformnameCount[strPlatformname]++;
}
}
nCount++;
}
@@ -1333,10 +1361,10 @@ void SFilterProcess::DataPowerCafeCount(QString _strFilter,QString _strCompanyNu
InsertLog("Power Cafe Rank Count Make End");
InsertLog("Power Cafe Rank Send Start ");
{
m_db.setHostName(D_DB_WEB_HOST);
m_db.setUserName(D_DB_WEB_USER);
m_db.setPassword(D_DB_WEB_PASS);
m_db.setDatabaseName(D_DB_WEB_NAME);
m_db.setHostName(m_strWebDataBaseHost);
m_db.setUserName(m_strWebDataBaseUser);
m_db.setPassword(m_strWebDataBasePass);
m_db.setDatabaseName(m_strWebDataBaseName);
if (m_db.open() == false)
{
InsertLog(m_db.lastError().text());
@@ -1440,10 +1468,10 @@ bool QSortMarketer(const SMaketer &stMaketer1, const SMaketer &stMaketer2)
void SFilterProcess::DataConsumerSupervisionCount(QString _strCompanyNum)
{
m_db.setHostName(D_DB_WEB_HOST);
m_db.setUserName(D_DB_WEB_USER);
m_db.setPassword(D_DB_WEB_PASS);
m_db.setDatabaseName(D_DB_WEB_NAME);
m_db.setHostName(m_strWebDataBaseHost);
m_db.setUserName(m_strWebDataBaseUser);
m_db.setPassword(m_strWebDataBasePass);
m_db.setDatabaseName(m_strWebDataBaseName);
if (m_db.open() == false)
{
InsertLog(m_db.lastError().text());
@@ -1578,10 +1606,10 @@ bool SFilterProcess::RenameTable(QString _strOld, QString _strNew , QString _str
void SFilterProcess::DataPut(QString _strCompanyNum)
{
m_db.setHostName(D_DB_WEB_HOST);
m_db.setUserName(D_DB_WEB_USER);
m_db.setPassword(D_DB_WEB_PASS);
m_db.setDatabaseName(D_DB_WEB_NAME);
m_db.setHostName(m_strWebDataBaseHost);
m_db.setUserName(m_strWebDataBaseUser);
m_db.setPassword(m_strWebDataBasePass);
m_db.setDatabaseName(m_strWebDataBaseName);
if (m_db.open() == false)
{
InsertLog(m_db.lastError().text());
@@ -1615,7 +1643,7 @@ void SFilterProcess::DataPut(QString _strCompanyNum)
" VALUES (:NUM,:ID_NUM,:NICKNAME_NUM,:COMMUNITY_NUM,:ID_ID,:PLATFORMNAME_NUM,:PLATFORMFORM_NUM,:TITLE,:DATA,:URL,:VIEW,:DATE,:REPLY_STARTNUM,:REPLY_ENDNUM,:REPLY_COUNT,:LASTUPDATE,:REALBYCATEGORYNUM)").toUtf8();
QString strMapQuery = QString("insert into body_category_map_" + _strCompanyNum + "_update (num,body_num,category_num,realin) VALUES (:NUM,:BODY_NUM,:CATEGORY_NUM,:REALIN)").toUtf8();
QString strCommunityQuery = QString("insert into community_" + _strCompanyNum + "_update (num,id,title,url,platformname_num,platformform_num) values (");
QString strCommunityQuery = QString("insert into community_" + _strCompanyNum + "_update (num,id,title,url,=platformname_num,platformform_num) values (");
foreach (SCommunity stCommunity,m_mapCommunity.values())
{
strQuery = strCommunityQuery;

View File

@@ -211,6 +211,7 @@ public:
SFilterProcess();
~SFilterProcess();
void run(QString _strFindID,QString _strFilterGroupName);
bool ReloadSetup();
private:
QSqlDatabase m_db;
int m_anData[E_DATA_MAX];
@@ -235,6 +236,15 @@ private:
const int C_MAP_REAL_BODY;
const int C_MAP_REAL_REPLY;
QString m_strWebDataBaseHost;
QString m_strWebDataBaseUser;
QString m_strWebDataBasePass;
QString m_strWebDataBaseName;
double m_adSpammer[E_SPAMER_MAX];
int m_nCutDays;
private:
bool LockTable(QString _strTable);
void UnLockTables();
@@ -258,7 +268,7 @@ private:
void FilterReplace(QString strJson);
void FilterCounter(QString _strJson);
bool ReloadColumn();
bool ReloadColumn();
void ReloadData();
QString SeqDelString(QString _strData,QChar _chChar,int _nMax);
QString MakeInfluencerrankQuery(const SInfluenceCount &_stIn,int _nRank,QString _strSubject,QString _strCompanyNum);