NaverCafeListManager 추가

git-svn-id: svn://192.168.0.12/source@222 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
admin
2015-11-11 06:51:11 +00:00
parent 65767c20cc
commit c12705430c
7 changed files with 146 additions and 5 deletions

View File

@@ -18,12 +18,14 @@ SOURCES += main.cpp\
snavercafemanage.cpp \
snaverblogmanage.cpp \
sdaumcafemanage.cpp \
snavernewsmanage.cpp
snavernewsmanage.cpp \
snavercafelistmanager.cpp
HEADERS += widget.h \
smanage.h \
snavercafemanage.h \
snaverblogmanage.h \
sdaumcafemanage.h \
snavernewsmanage.h
snavernewsmanage.h \
snavercafelistmanager.h

View File

@@ -16,7 +16,7 @@ class SManage : public QObject
private:
QVector <QStringList> m_vecList;
private slots:
void processFinished(int exitCode, QProcess::ExitStatus exitStatus);
void processFinished(int exitCode, QProcess::ExitStatus exitStatus);
public:
explicit SManage(QObject *parent = 0);
~SManage();

View File

@@ -0,0 +1,89 @@
#include "snavercafelistmanager.h"
#include <QThread>
#include "widget.h"
SNaverCafeListManage::SNaverCafeListManage(QObject *pObject) : SManage(pObject)
{
m_nID = 0;
connect(&m_pro[0], SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput()));
connect(&m_pro[0], SIGNAL(readyReadStandardError()), this, SLOT(readStandardError()));
}
void SNaverCafeListManage::Start()
{
m_nMode = E_PROCESS_RUN;
m_bFinalLast = false;
}
bool SNaverCafeListManage::Update()
{
if(m_bFinalLast) return m_bFinalLast;
switch(m_nMode)
{
case E_PROCESS_RUN:
if(UseProcess() == false)
{
#if defined(Q_OS_WIN32)
m_pro[0].start("python", QStringList() << "navercrawl.py" << m_strKeywordID << m_strGroupID << m_pMain->StartDay());
#else
m_pro[0].start("/usr/bin/python3", QStringList() << "navercrawl.py" << m_strKeywordID << m_strGroupID << m_pMain->StartDay());
#endif
m_nMode = E_PROCESS_FINISH_WAIT;
}
break;
case E_PROCESS_FINISH_WAIT:
break;
}
return m_bFinalLast;
}
void SNaverCafeListManage::processFinished(QProcess *pPro, QString _strOut)
{
switch(m_nMode)
{
case E_PROCESS_FINISH_WAIT:
m_nMode = E_PROCESS_RUN;
m_bFinalLast = true;
m_pMain->InsertLog("Finish Crawling :)");
m_pMain->SetCrawlingState("Finish");
m_ncList=1;
m_bLast = false;
break;
}
}
void SNaverCafeListManage::readStandardOutput()
{
QProcess *pPro = (QProcess*)sender();
QThread::msleep(100);
QString str = pPro->readAllStandardOutput();
QStringList list = str.split("\n", QString::SkipEmptyParts);
foreach(QString log,list)
{
if (m_pMain)
{
m_pMain->InsertLog(log);
}
else
exit(0);
}
}
void SNaverCafeListManage::readStandardError()
{
QProcess *pPro = (QProcess*)sender();
QThread::msleep(100);
QString str = pPro->readAllStandardError();
QStringList list = str.split("\n", QString::SkipEmptyParts);
foreach(QString log,list)
{
if (m_pMain)
{
m_pMain->InsertLog(log);
}
else
exit(0);
}
}

View File

@@ -0,0 +1,32 @@
#ifndef SNAVERCAFELISTMANAGER_H
#define SNAVERCAFELISTMANAGER_H
#include "smanage.h"
class SNaverCafeListManage : public SManage
{
Q_OBJECT
public:
enum E_PROCESS_STATE
{
E_PROCESS_RUN = 0,
E_PROCESS_FINISH_WAIT,
};
SNaverCafeListManage(QObject *pObject);
private:
QString makeGetListQuery(QString _str,QDate _date,int _nPage);
private:
QString m_strListQuery;
QVector <QString> m_strListURL;
protected:
bool Update();
void Start();
void processFinished(QProcess *pPro,QString _strOut);
void ReLoadList();
private slots:
void readStandardOutput();
void readStandardError();
};
#endif // SNAVERCAFELISTMANAGER_H

View File

@@ -5,6 +5,7 @@
SNaverNewsManage::SNaverNewsManage(QObject *pObject) : SManage(pObject)
{
m_nID = 0;
connect(&m_pro[0], SIGNAL(readyReadStandardOutput()), this, SLOT());
}
QString SNaverNewsManage::makeGetListQuery(QString _str,QDate _date,int _nPage)

View File

@@ -12,6 +12,7 @@
#include "snaverblogmanage.h"
#include "sdaumcafemanage.h"
#include "snavernewsmanage.h"
#include "snavercafelistmanager.h"
#include <QApplication>
#include <QLabel>
@@ -31,10 +32,12 @@ Widget::Widget(QWidget *parent) : QWidget(parent) , m_nMode(E_MODE_WAIT)
m_pNaverBlog = new SNaverBlogManage(this);
m_pDaumCafe = new SDaumCafeManage(this);
m_pNaverNews = new SNaverNewsManage(this);
m_pNaverCafeList = new SNaverCafeListManage(this);
m_pManage[0] = m_pNaverCafe;
m_pManage[1] = m_pNaverBlog;
m_pManage[2] = m_pDaumCafe;
m_pManage[3] = m_pNaverNews;
m_pManage[4] = m_pNaverCafeList;
m_db = QSqlDatabase::addDatabase("QMYSQL");
m_db.setHostName("bigbird.iptime.org");
@@ -253,7 +256,6 @@ void Widget::Update()
if (m_strCrawlingID.isEmpty() == false)
{
Start();
}
}
break;
@@ -292,7 +294,18 @@ void Widget::RefreshButton()
case 1:str += ", Naver Blog";break;
case 2:str += ", Daum Cafe"; break;
case 3:str += ", Naver News"; break;
case 4:str += ", Naver Cafe List"; break;
}
m_pcb->addItem(str,query.value(7));
}
}
QString Widget::StartDay()
{
return m_pedStartDay->text().trimmed();
}
QString Widget::UntilPage()
{
return m_pedUntilPage->text().trimmed();
}

View File

@@ -15,6 +15,7 @@ class SNaverCafeManage;
class SNaverBlogManage;
class SDaumCafeManage;
class SNaverNewsManage;
class SNaverCafeListManage;
class SManage;
#define SAFE_DELETE(p) {if(p) delete (p); (p) = NULL; }
@@ -31,6 +32,8 @@ public:
bool LockTable();
void UnLockTables();
void Debug(QString _strMsg);
QString StartDay();
QString UntilPage();
enum E_MODE
{
@@ -43,7 +46,7 @@ private:
QLineEdit *m_pedStartDay;
QTimer m_timer,m_timerAlive;
QSqlDatabase m_db;
static const int C_PLATFORM_MAX = 4;
static const int C_PLATFORM_MAX = 5;
SManage *m_pManage[C_PLATFORM_MAX];
QListWidget *m_pResultList;
QString m_strFileName;
@@ -53,6 +56,7 @@ private:
SNaverBlogManage *m_pNaverBlog;
SDaumCafeManage *m_pDaumCafe;
SNaverNewsManage *m_pNaverNews;
SNaverCafeListManage *m_pNaverCafeList;
int m_nStartTime,m_nRangeTime,m_nPlatform;
//QGroupBox *m_pgbManual;
QCheckBox *m_pcheckboxReal;