805 lines
28 KiB
C++
805 lines
28 KiB
C++
#include "widget.h"
|
|
#include <QVBoxLayout>
|
|
#include <QLabel>
|
|
#include <QSqlDatabase>
|
|
#include <QSqlError>
|
|
#include <QSqlQuery>
|
|
#include <QDebug>
|
|
#include <QPushButton>
|
|
#include <QThread>
|
|
#include <QTime>
|
|
|
|
#define D_NONE -1
|
|
|
|
Widget::Widget(QWidget *parent)
|
|
: QWidget(parent)
|
|
{
|
|
QVBoxLayout *vMainLayout = new QVBoxLayout;
|
|
{
|
|
{
|
|
QHBoxLayout *hLayout = new QHBoxLayout;
|
|
QStringList strList;
|
|
strList << "Data" << "Filter" << "Company" << "Catalog";
|
|
m_plw = new QListWidget[E_LIST_MAX];
|
|
int i = 0;
|
|
foreach(QString str , strList)
|
|
{
|
|
QVBoxLayout *vLayout = new QVBoxLayout;
|
|
vLayout->addWidget(new QLabel(str));
|
|
vLayout->addWidget(&m_plw[i++]);
|
|
hLayout->addLayout(vLayout);
|
|
}
|
|
connect(&m_plw[E_LIST_COMPANY],SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),this,SLOT(CompanyItemChanged(QListWidgetItem*,QListWidgetItem*)));
|
|
vMainLayout->addLayout(hLayout);
|
|
}
|
|
{
|
|
QHBoxLayout *hLayout = new QHBoxLayout;
|
|
{
|
|
QVBoxLayout *vLayout = new QVBoxLayout;
|
|
vLayout->addWidget(new QLabel("Filter Process"));
|
|
m_plwFilterProcess = new QListWidget;
|
|
vLayout->addWidget(m_plwFilterProcess);
|
|
{
|
|
QHBoxLayout *hLayoutEdit = new QHBoxLayout;
|
|
hLayoutEdit->addWidget(new QLabel("Cycle : "));
|
|
m_pleCycle = new QLineEdit;
|
|
hLayoutEdit->addWidget(m_pleCycle);
|
|
m_pleCycle->setText("172800");
|
|
m_pleCycle->setEnabled(false);
|
|
QPushButton *ppbInsert = new QPushButton("Insert");
|
|
connect(ppbInsert, SIGNAL(released()),this, SLOT(on_insert()));
|
|
hLayoutEdit->addWidget(ppbInsert);
|
|
QPushButton *ppbDelete = new QPushButton("Delete");
|
|
connect(ppbDelete, SIGNAL(released()),this, SLOT(on_delete()));
|
|
hLayoutEdit->addWidget(ppbDelete);
|
|
vLayout->addLayout(hLayoutEdit);
|
|
}
|
|
hLayout->addLayout(vLayout);
|
|
}
|
|
{
|
|
QVBoxLayout *vLayout = new QVBoxLayout;
|
|
vLayout->addWidget(new QLabel("Log"));
|
|
m_plwLog = new QListWidget;
|
|
vLayout->addWidget(m_plwLog);
|
|
hLayout->addLayout(vLayout);
|
|
}
|
|
vMainLayout->addLayout(hLayout);
|
|
}
|
|
QPushButton *ppbRefresh = new QPushButton("Refresh");
|
|
connect(ppbRefresh, SIGNAL(released()),this, SLOT(on_refresh()));
|
|
vMainLayout->addWidget(ppbRefresh);
|
|
}
|
|
/*
|
|
QPushButton *ppbSend = new QPushButton("Send");
|
|
vMainLayout->addWidget(ppbSend);
|
|
connect(ppbSend, SIGNAL(released()),this, SLOT(on_send()));
|
|
*/
|
|
connect(&m_timer, SIGNAL(timeout()), this, SLOT(Update()));
|
|
//m_pThread = new SGetThread;
|
|
setLayout(vMainLayout);
|
|
//m_pPutThread = new SPutThread[QThread::idealThreadCount()];
|
|
m_nMode = 0;
|
|
db = QSqlDatabase::addDatabase("QMYSQL");
|
|
m_timer.start(100);
|
|
Refresh();
|
|
FilterProcssRefresh();
|
|
}
|
|
|
|
Widget::~Widget()
|
|
{
|
|
}
|
|
|
|
void Widget::InsertLog(QString str)
|
|
{
|
|
QTime time = QTime::currentTime();
|
|
QString strOut = time.toString("[hh:mm:ss] ") + str;
|
|
m_plwLog->addItem(strOut);
|
|
|
|
if (m_plwLog->count() > 1024)
|
|
{
|
|
m_plwLog->removeItemWidget(m_plwLog->item(0));
|
|
QListWidgetItem* item = m_plwLog->takeItem(0);
|
|
delete item;
|
|
}
|
|
m_plwLog->setCurrentRow( m_plwLog->count() - 1 );
|
|
m_plwLog->repaint();
|
|
}
|
|
|
|
void Widget::Refresh()
|
|
{
|
|
db.setHostName("bigbird.iptime.org");
|
|
db.setUserName("admin");
|
|
db.setPassword("admin123");
|
|
db.setDatabaseName("concepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
|
|
for (int i = 0; i < E_LIST_MAX ; i++)
|
|
m_plw[i].clear();
|
|
|
|
{
|
|
QSqlQuery query("select id,name from filtergroup");
|
|
while (query.next())
|
|
{
|
|
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),&m_plw[E_LIST_FILTER]);
|
|
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
|
}
|
|
}
|
|
|
|
{
|
|
QSqlQuery query("select id,name FROM datagroup");
|
|
while(query.next())
|
|
{
|
|
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),&m_plw[E_LIST_DATA]);
|
|
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
|
}
|
|
}
|
|
db.close();
|
|
|
|
db.setHostName("db.big-bird.co.kr");
|
|
db.setUserName("concepters");
|
|
db.setPassword("con97996655");
|
|
db.setDatabaseName("dbconcepters");
|
|
|
|
if (db.open() == false)
|
|
{
|
|
qDebug() << db.lastError().text();
|
|
return;
|
|
}
|
|
|
|
{
|
|
QSqlQuery query("select num,name FROM company");
|
|
while(query.next())
|
|
{
|
|
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),&m_plw[E_LIST_COMPANY]);
|
|
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
|
}
|
|
}
|
|
db.close();
|
|
}
|
|
|
|
void Widget::CompanyItemChanged(QListWidgetItem* _current,QListWidgetItem*)
|
|
{
|
|
if (_current == 0) return;
|
|
db.setHostName("db.big-bird.co.kr");
|
|
db.setUserName("concepters");
|
|
db.setPassword("con97996655");
|
|
db.setDatabaseName("dbconcepters");
|
|
if (db.open() == false)
|
|
{
|
|
qDebug() << db.lastError().text();
|
|
return;
|
|
}
|
|
m_plw[E_LIST_CATALOG].clear();
|
|
QSqlQuery query("select num,name FROM category where company_num = '" +_current->data(Qt::UserRole).toString()+ "'");
|
|
while(query.next())
|
|
{
|
|
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),&m_plw[E_LIST_CATALOG]);
|
|
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
|
}
|
|
db.close();
|
|
}
|
|
|
|
void Widget::on_send()
|
|
{
|
|
//if (m_nMode != 0) return ;
|
|
//m_nMode = 1;
|
|
}
|
|
|
|
void Widget::on_insert()
|
|
{
|
|
if (m_pleCycle->text().isEmpty())
|
|
{
|
|
InsertLog("Cycle is null");
|
|
return;
|
|
}
|
|
|
|
int aId[E_LIST_MAX];
|
|
QString aStr[E_LIST_MAX];
|
|
for (int i = 0; i < E_LIST_MAX;i++)
|
|
{
|
|
aId[i] = D_NONE;
|
|
foreach (QListWidgetItem *item,m_plw[i].selectedItems())
|
|
{
|
|
aId[i] = item->data(Qt::UserRole).toInt();
|
|
aStr[i] = item->text();
|
|
}
|
|
if (aId[i] == D_NONE) return;
|
|
}
|
|
|
|
/*
|
|
db.setHostName("bigbird.iptime.org");
|
|
db.setUserName("admin");
|
|
db.setPassword("admin123");
|
|
db.setDatabaseName("concepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
QString sql("insert into filterprocess (datagroup_id,datagroup_name,filtergroup_id,filtergroup_name, company_num, company_name , category_name , cycletime , lastruntime ) value (");
|
|
sql += QString::number(aId[E_LIST_DATA]) + ","; // datagroup_id
|
|
sql += "'" + aStr[E_LIST_DATA] + "',"; // datagroup_name
|
|
sql += QString::number(aId[E_LIST_FILTER]) + ","; // filtergroup_id
|
|
sql += "'" + aStr[E_LIST_FILTER] + "',"; // datagroup_name
|
|
sql += QString::number(aId[E_LIST_COMPANY]) + ","; // company_num
|
|
sql += "'" +aStr[E_LIST_COMPANY]+ "'," ; // company_name
|
|
sql += "'" +aStr[E_LIST_CATALOG]+ "'," ; // category_name
|
|
sql += m_pleCycle->text() + ","; //cycletime
|
|
QDateTime NowTime(QDateTime::currentDateTime().addDays(-3));
|
|
sql += "'" + NowTime.toString("yyyy-MM-dd HH:mm:ss") + "')"; //lastruntime
|
|
QSqlQuery query;
|
|
if(query.exec(sql) == false)
|
|
{
|
|
qDebug() << sql;
|
|
InsertLog(query.lastError().text());
|
|
}
|
|
db.close();
|
|
*/
|
|
QStringList list;
|
|
list.append("0");
|
|
list.append(QString::number(aId[E_LIST_DATA]));
|
|
list.append(aStr[E_LIST_DATA]);
|
|
list.append(QString::number(aId[E_LIST_FILTER]));
|
|
list.append(aStr[E_LIST_FILTER]);
|
|
list.append(QString::number(aId[E_LIST_COMPANY]));
|
|
list.append(aStr[E_LIST_COMPANY]); // company_name
|
|
list.append(aStr[E_LIST_CATALOG]);// category_name
|
|
list.append(m_pleCycle->text());
|
|
InsertLog("Run (" + list.at(2) + "," + list.at(4) + ") -> (" + list.at(6) + "," + list.at(7) +")" );
|
|
InsertLog("Data Get ..." );
|
|
m_body_data.clear();
|
|
m_reply_data.clear();
|
|
DataGet(list);
|
|
InsertLog("Data Filter ..." );
|
|
//DataFilter(list);
|
|
InsertLog("Data Put ..." );
|
|
DataPut(list);
|
|
InsertLog("Finish");
|
|
FilterProcssRefresh();
|
|
}
|
|
|
|
void Widget::on_delete()
|
|
{
|
|
db.setHostName("bigbird.iptime.org");
|
|
db.setUserName("admin");
|
|
db.setPassword("admin123");
|
|
db.setDatabaseName("concepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
foreach (QListWidgetItem *item,m_plwFilterProcess->selectedItems())
|
|
{
|
|
QSqlQuery query;
|
|
QString sql("delete from filterprocess where id = " + item->data(Qt::UserRole).toString());
|
|
if(query.exec(sql) == false)
|
|
{
|
|
InsertLog(query.lastError().text());
|
|
}
|
|
}
|
|
db.close();
|
|
FilterProcssRefresh();
|
|
}
|
|
|
|
void Widget::FilterProcssRefresh()
|
|
{
|
|
db.setHostName("bigbird.iptime.org");
|
|
db.setUserName("admin");
|
|
db.setPassword("admin123");
|
|
db.setDatabaseName("concepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
|
|
QString sql("select id,datagroup_name,filtergroup_name,company_name,category_name,cycletime,lastruntime from filterprocess");
|
|
QSqlQuery query;
|
|
|
|
if(query.exec(sql) == false)
|
|
{
|
|
InsertLog(query.lastError().text());
|
|
}
|
|
m_plwFilterProcess->clear();
|
|
while(query.next())
|
|
{
|
|
QString str;
|
|
str += "(Data : " + query.value(1).toString();
|
|
str += ",Filter : " + query.value(2).toString();
|
|
str += ") -> (Company : " + query.value(3).toString();
|
|
str += ",Category : " + query.value(4).toString();
|
|
str += ") (Cycle : " + query.value(5).toString();
|
|
str += " sec, Last Run Time : " + query.value(6).toString() +")";
|
|
QListWidgetItem *pItem = new QListWidgetItem(str,m_plwFilterProcess);
|
|
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
|
}
|
|
db.close();
|
|
//datagroup,filtergroup company category cycletime , lastruntime
|
|
}
|
|
|
|
QString Widget::SqlString(QString _str)
|
|
{
|
|
_str.replace("\\","\\\\");
|
|
_str.replace("'","\\'");
|
|
_str.replace("\"","\\\"");
|
|
_str.replace(",","\\,");
|
|
return _str;
|
|
}
|
|
|
|
void Widget::Update()
|
|
{
|
|
/*
|
|
db.setHostName("bigbird.iptime.org");
|
|
db.setUserName("admin");
|
|
db.setPassword("admin123");
|
|
db.setDatabaseName("concepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
QString sql("select id,datagroup_id,datagroup_name,filtergroup_id,filtergroup_name,company_num,company_name,category_name,cycletime,lastruntime from filterprocess");
|
|
QSqlQuery query;
|
|
if(query.exec(sql) == false) { InsertLog(query.lastError().text());return;}
|
|
QVector <QStringList> vecData;
|
|
while(query.next())
|
|
{
|
|
QDateTime nextDateTime = query.value(9).toDateTime().addSecs(query.value(8).toInt());
|
|
if (QDateTime::currentDateTime() >= nextDateTime)
|
|
{
|
|
QStringList strlist;
|
|
for(int i = 0; i < 10 ; i++)
|
|
strlist.push_back(query.value(i).toString());
|
|
vecData.push_back(strlist);
|
|
}
|
|
}
|
|
db.close();
|
|
foreach(QStringList list,vecData)
|
|
{
|
|
InsertLog("Run (" + list.at(2) + "," + list.at(4) + ") -> (" + list.at(6) + "," + list.at(7) +")" );
|
|
InsertLog("Data Get ..." );
|
|
m_mainData.clear();
|
|
DataGet(list);
|
|
InsertLog("Data Filter ..." );
|
|
DataFilter(list);
|
|
InsertLog("Data Put ..." );
|
|
DataPut(list);
|
|
InsertLog("Finish");
|
|
}
|
|
*/
|
|
}
|
|
|
|
void Widget::DataGet(QStringList _list)
|
|
{
|
|
db.setHostName("bigbird.iptime.org");
|
|
db.setUserName("admin");
|
|
db.setPassword("admin123");
|
|
db.setDatabaseName("concepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
QString sql;
|
|
QSqlQuery query;
|
|
sql = "update filterprocess set lastruntime = '" + QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss") +"' where id = " + _list.at(0);
|
|
query.exec(sql);
|
|
if(query.exec(sql) == false) { InsertLog(query.lastError().text());return;}
|
|
|
|
QString strSelect;
|
|
strSelect = "select ";
|
|
strSelect += "CONVERT(platform_name USING utf8),"; //0
|
|
strSelect += "CONVERT(platform_form USING utf8),"; //1
|
|
strSelect += "CONVERT(platform_title USING utf8),"; //2
|
|
strSelect += "CONVERT(article_id USING utf8),"; //3
|
|
strSelect += "CONVERT(article_nickname USING utf8),"; //4
|
|
strSelect += "CONVERT(article_title USING utf8),"; //5
|
|
strSelect += "CONVERT(article_data USING utf8),"; //6
|
|
strSelect += "CONVERT(article_url USING utf8),"; //7
|
|
strSelect += "CONVERT(article_hit USING utf8),"; //8
|
|
strSelect += "CONVERT(article_date USING utf8)"; //9
|
|
//strSelect += "CONVERT(platform_id USING utf8)"; //10
|
|
strSelect += " from ";
|
|
strSelect += "data_" + _list.at(1);
|
|
strSelect += " where ";
|
|
strSelect += " article_form = 'body'";
|
|
strSelect += " Order by article_date";
|
|
|
|
//qDebug() << strSelect;
|
|
|
|
if(query.exec(strSelect) == false) { InsertLog(query.lastError().text());return;}
|
|
while(query.next())
|
|
{
|
|
QStringList strList;
|
|
if (query.value(3).toString().isEmpty()) continue;
|
|
for(int i = 0; i < 10; i++)
|
|
strList << " " + query.value(i).toString() + " ";
|
|
m_body_data.append(strList);
|
|
}
|
|
|
|
int i=0;
|
|
foreach(QStringList strList,m_body_data)
|
|
{
|
|
strSelect = "select ";
|
|
strSelect += "CONVERT(article_id USING utf8),"; //0
|
|
strSelect += "CONVERT(article_nickname USING utf8),"; //1
|
|
strSelect += "CONVERT(article_parent USING utf8),"; //2
|
|
strSelect += "CONVERT(article_data USING utf8),"; //3
|
|
strSelect += "CONVERT(article_date USING utf8)"; //4
|
|
strSelect += " from ";
|
|
strSelect += "data_" + _list.at(1);
|
|
strSelect += " where ";
|
|
strSelect += " article_form = 'reply' and";
|
|
strSelect += " article_url = '";
|
|
strSelect += strList.at(7).trimmed();
|
|
strSelect += "' Order by article_order";
|
|
if(query.exec(strSelect) == false) {
|
|
InsertLog(query.lastError().text());return;}
|
|
int nStart = m_reply_data.size() + 1;
|
|
int nEnd = nStart;
|
|
while(query.next())
|
|
{
|
|
QStringList strList;
|
|
for(int i = 0; i < 5; i++)
|
|
strList << " " + query.value(i).toString() + " ";
|
|
m_reply_data.append(strList);
|
|
nEnd++;
|
|
}
|
|
if (nStart == nEnd)
|
|
nStart = nEnd = -1;
|
|
else
|
|
nEnd--;
|
|
m_body_data[i].push_back(QString::number(nStart));
|
|
m_body_data[i++].push_back(QString::number(nEnd));
|
|
}
|
|
db.close();
|
|
}
|
|
|
|
void Widget::FilterDate(int _nCategory,QDate _dateStart,QDate _dateEnd)
|
|
{
|
|
int nColumn;
|
|
switch(_nCategory)
|
|
{
|
|
case 0:nColumn = 2;break; // main
|
|
case 1:nColumn = 10;break; // comment
|
|
default : return;
|
|
}
|
|
|
|
QVector <QStringList> copyData;
|
|
foreach(QStringList strList , m_body_data)
|
|
{
|
|
bool bFlag = false;
|
|
QString strTime = strList.at(nColumn).trimmed();
|
|
if (strTime.size() >= 10)
|
|
{
|
|
QChar ch = strTime.at(4);
|
|
QString strFormat = QString("yyyy")+ch+QString("MM")+ch+QString("dd");
|
|
QDate date = QDate::fromString(strTime.left(10),strFormat);
|
|
if (_dateStart <= date && _dateEnd >= date)
|
|
bFlag = true;
|
|
}
|
|
if (bFlag)
|
|
copyData.push_back(strList);
|
|
}
|
|
m_body_data.clear();
|
|
m_body_data = copyData;
|
|
}
|
|
|
|
void Widget::FilterSeracher(int _nCatalog,int _nMethod , int _nKeyword , QString _strSearch)
|
|
{
|
|
QStringList strListKeyword = _strSearch.split(" ");
|
|
if (_nMethod == 1)
|
|
{
|
|
for (int i = 0 ; i < strListKeyword.size(); i++ )
|
|
strListKeyword[i] = " " + strListKeyword[i] + " ";
|
|
}
|
|
|
|
QVector <QStringList> copyData;
|
|
foreach(QStringList strList , m_body_data)
|
|
{
|
|
bool bFlag = false;
|
|
QString strData = strList.at(_nCatalog);
|
|
switch(_nKeyword)
|
|
{
|
|
case 0:
|
|
{
|
|
foreach(QString strKey , strListKeyword)
|
|
if (strData.contains(strKey)){bFlag = true;break;}
|
|
break;
|
|
}
|
|
case 1:
|
|
{
|
|
int nKeyCount = 0;
|
|
foreach(QString strKey , strListKeyword)
|
|
if (strData.contains(strKey)) nKeyCount++;
|
|
if (nKeyCount == strListKeyword.size())
|
|
bFlag = true;
|
|
break;
|
|
}
|
|
case 2:
|
|
{
|
|
bFlag = true;
|
|
foreach(QString strKey , strListKeyword)
|
|
if (strData.contains(strKey)){bFlag = false;break;}
|
|
break;
|
|
}
|
|
case 3:
|
|
{
|
|
foreach(QString strKey , strListKeyword)
|
|
strList[_nCatalog].replace(strKey,"");
|
|
bFlag = true;
|
|
break;
|
|
}
|
|
}
|
|
if (bFlag) copyData.push_back(strList);
|
|
}
|
|
m_body_data.clear();
|
|
m_body_data = copyData;
|
|
}
|
|
|
|
void Widget::DataFilter(QStringList _list)
|
|
{
|
|
db.setHostName("bigbird.iptime.org");
|
|
db.setUserName("admin");
|
|
db.setPassword("admin123");
|
|
db.setDatabaseName("concepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
QString sql = "select id,type,timecategory,timestart,timeend,searchescategory,searchesmethod,searcheskeyword,searchesstring from filter where filtergroup_id = " + _list.at(3);
|
|
QSqlQuery query;
|
|
if(query.exec(sql) == false) { InsertLog(query.lastError().text());return;}
|
|
while (query.next())
|
|
{
|
|
switch(query.value(1).toInt())
|
|
{
|
|
case 0://Date
|
|
FilterDate(query.value(2).toInt(),query.value(3).toDate(),query.value(4).toDate());
|
|
break;
|
|
case 1:
|
|
FilterSeracher(query.value(5).toInt(),query.value(6).toInt(),query.value(7).toInt(),query.value(8).toString());
|
|
break;
|
|
}
|
|
}
|
|
db.close();
|
|
}
|
|
|
|
void Widget::DataPut(QStringList _list)
|
|
{
|
|
db.setHostName("db.big-bird.co.kr");
|
|
db.setUserName("concepters");
|
|
db.setPassword("con97996655");
|
|
db.setDatabaseName("dbconcepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
|
|
QSqlQuery query;
|
|
QString strQuery;
|
|
strQuery = "DROP TABLE body_" + _list.at(5) + QString("_0000");
|
|
if(query.exec(strQuery.toUtf8()) == false) /*{*/InsertLog(query.lastError().text());//return;}
|
|
|
|
strQuery = "DROP TABLE reply_" + _list.at(5) + QString("_0000");
|
|
if(query.exec(strQuery.toUtf8()) == false) /*{*/InsertLog(query.lastError().text());//return;}
|
|
|
|
strQuery = "CREATE TABLE body_" + _list.at(5) + QString("_0000 (");
|
|
strQuery += "num INT NOT NULL auto_increment primary key,"
|
|
"platform_name CHAR(64),"
|
|
"platform_form CHAR(64),"
|
|
"platform_title VARCHAR(256),"
|
|
"category_num INT,"
|
|
"id CHAR(128),"
|
|
"nickname VARCHAR(256),"
|
|
"title VARCHAR(1024),"
|
|
"data MEDIUMTEXT,"
|
|
"url CHAR(255),"
|
|
"hit INT,"
|
|
"date DATETIME,"
|
|
"reply_startnum INT,"
|
|
"reply_endnum INT,"
|
|
"isreal BOOLEAN,"
|
|
"bodyisreal BOOLEAN,"
|
|
"replyisreal BOOLEAN)DEFAULT CHARACTER SET = 'utf8' ENGINE=InnoDB;";
|
|
|
|
if(query.exec(strQuery.toUtf8()) == false)/*{*/InsertLog(query.lastError().text());//return;}
|
|
|
|
strQuery = "CREATE TABLE reply_" + _list.at(5) + QString("_0000 (");
|
|
strQuery += "num INT NOT NULL auto_increment primary key,"
|
|
"id CHAR(128),"
|
|
"nickname VARCHAR(256),"
|
|
"parent VARCHAR(256),"
|
|
"data MEDIUMTEXT,"
|
|
"date DATETIME,"
|
|
"isreal BOOLEAN,"
|
|
"body_num INT)DEFAULT CHARACTER SET = 'utf8' ENGINE=InnoDB;";
|
|
|
|
if(query.exec(strQuery.toUtf8()) == false)/*{*/InsertLog(query.lastError().text());//return;}
|
|
|
|
query.prepare("INSERT INTO body_" + _list.at(5) + QString("_0000 (") + "platform_name,"
|
|
"platform_form,"
|
|
"platform_title,"
|
|
"category_num,"
|
|
"id,"
|
|
"nickname,"
|
|
"title,"
|
|
"data,"
|
|
"url,"
|
|
"hit,"
|
|
"date,"
|
|
"reply_startnum,"
|
|
"reply_endnum,"
|
|
"isreal,"
|
|
"bodyisreal,"
|
|
"replyisreal"
|
|
") value ("
|
|
":platform_name,"
|
|
":platform_form,"
|
|
":platform_title,"
|
|
":category_num,"
|
|
":id,"
|
|
":nickname,"
|
|
":title,"
|
|
":data,"
|
|
":url,"
|
|
":hit,"
|
|
":date,"
|
|
":reply_startnum,"
|
|
":reply_endnum,"
|
|
":isreal,"
|
|
":bodyisreal,"
|
|
":replyisreal)");
|
|
foreach(QStringList strList,m_body_data)
|
|
{
|
|
query.bindValue(":platform_name",strList.at(0));
|
|
query.bindValue(":platform_form",strList.at(1));
|
|
query.bindValue(":platform_title",SqlString(strList.at(2)).toUtf8());
|
|
query.bindValue(":id",strList.at(3));
|
|
query.bindValue(":nickname",SqlString(strList.at(4)).toUtf8());
|
|
query.bindValue(":title",SqlString(strList.at(5)).toUtf8());
|
|
query.bindValue(":data",SqlString(strList.at(6)).toUtf8());
|
|
query.bindValue(":url",strList.at(7));
|
|
query.bindValue(":hit",strList.at(8));
|
|
query.bindValue(":date",strList.at(9));
|
|
query.bindValue(":reply_startnum",strList.at(10));
|
|
query.bindValue(":reply_endnum",strList.at(11));
|
|
query.bindValue(":isreal",true);
|
|
query.bindValue(":bodyisreal",false);
|
|
query.bindValue(":replyisreal",false);
|
|
if(query.exec() == false)
|
|
InsertLog(query.lastError().text());
|
|
}
|
|
query.prepare("INSERT INTO reply_" + _list.at(5) + QString("_0000 (") + QString("id,nickname,parent,data,date)"
|
|
" value "
|
|
"(:id,:nickname,:parent,:data,:date)"));
|
|
foreach(QStringList strList,m_reply_data)
|
|
{
|
|
query.bindValue(":id",strList.at(0));
|
|
query.bindValue(":nickname",SqlString(strList.at(1)));
|
|
query.bindValue(":parent",SqlString(strList.at(2)));
|
|
query.bindValue(":data",SqlString(strList.at(3)));
|
|
query.bindValue(":date",strList.at(4));
|
|
if(query.exec() == false)
|
|
InsertLog(query.lastError().text());
|
|
}
|
|
|
|
/*
|
|
QSqlQuery query;
|
|
QString strDelete = "delete from data where company_name = '" + _list.at(6) + "' AND category_name = '" + _list.at(7) + "'";
|
|
if(query.exec(strDelete.toUtf8()) == false) {
|
|
InsertLog(query.lastError().text());
|
|
return;}
|
|
|
|
//qDebug() << strDelete;
|
|
|
|
QString strInsert = "insert into data ( company_name , category_name , platform_name , platform_form , platform_title ,"
|
|
"article_num , article_rownum , article_form , article_title , article_url , article_id , article_nickname , "
|
|
"article_date , article_body , article_reply ) value (";
|
|
|
|
foreach(QStringList strList , m_body_data)
|
|
{
|
|
for (int i = 0; i < strList.size(); i++)
|
|
strList[i] = strList[i].trimmed();
|
|
QString strQuery = strInsert;
|
|
strQuery += "'"+_list.at(6)+ "',"; //company_name
|
|
strQuery += "'"+_list.at(7)+ "',"; //category_name
|
|
strQuery += "'" + strList.at(14) + "',"; //platform_name
|
|
strQuery += "'" + strList.at(15) + "',"; //platform_form
|
|
strQuery += "'" + SqlString(strList.at(6)) + "',"; //platform_title
|
|
strQuery += "'0',"; //article_num
|
|
strQuery += "'" + strList.at(17) + "',"; //article_rownum
|
|
strQuery += "'" + strList.at(16) + "',"; //article_type
|
|
strQuery += "'" + SqlString(strList.at(3)) + "',"; //article_title
|
|
strQuery += "'" + strList.at(7) + "',"; //article_url
|
|
strQuery += "'" + strList.at(0) + "',"; //article_id
|
|
QString str = strList.at(1);
|
|
str.replace("var isInitial","");
|
|
str.replace(";","");
|
|
strQuery += "'" + SqlString(str.trimmed()) + "',"; //article_nickname
|
|
if (strList.at(16) == "reply")
|
|
strQuery += "'" + strList.at(10) + "',"; //article_date
|
|
else
|
|
strQuery += "'" + strList.at(2) + "',"; //article_date
|
|
strQuery += "'" + SqlString(strList.at(4)) + "',"; //article_body
|
|
strQuery += "'" + SqlString(strList.at(11)) + "')"; //article_reply
|
|
|
|
if(query.exec(strQuery) == false){ InsertLog(query.lastError().text());return;}
|
|
}
|
|
*/
|
|
db.close();
|
|
}
|
|
|
|
void Widget::on_refresh()
|
|
{
|
|
Refresh();
|
|
FilterProcssRefresh();
|
|
}
|
|
|
|
|
|
/*
|
|
void Widget::Update()
|
|
{
|
|
switch(m_nMode)
|
|
{
|
|
case 1:
|
|
m_data.clear();
|
|
db.setHostName("bigbird.iptime.org");
|
|
db.setUserName("admin");
|
|
db.setPassword("admin123");
|
|
db.setDatabaseName("concepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
|
|
foreach (QListWidgetItem *item,m_plw[E_LIST_DATA].selectedItems())
|
|
{
|
|
m_pThread->SetData(QString("data_"+item->data(Qt::UserRole).toString()),&m_data);
|
|
}
|
|
m_pThread->start();
|
|
m_nMode = 2;
|
|
InsertLog("Data Read Start");
|
|
break;
|
|
case 2:
|
|
if (m_pThread->isRunning() == false)
|
|
{
|
|
db.close();
|
|
InsertLog("Data Read End");
|
|
InsertLog("Data Write Web Start");
|
|
db.setHostName("db.big-bird.co.kr");
|
|
db.setUserName("concepters");
|
|
db.setPassword("con97996655");
|
|
db.setDatabaseName("dbconcepters");
|
|
if (db.open() == false)
|
|
{
|
|
InsertLog(db.lastError().text());
|
|
return;
|
|
}
|
|
db.exec("delete from data");
|
|
qDebug() << QString::number(m_data.size());
|
|
m_pPutThread[0].SetData("data",&m_data,0,m_data.size());
|
|
m_pPutThread[0].start();
|
|
m_nMode = 3;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (m_pPutThread[0].isRunning() == false)
|
|
{
|
|
m_nMode = 0;
|
|
InsertLog("Data Write Web End");
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
*/
|
|
|