timeout시 재접속 할수 있도록 수정 git-svn-id: svn://192.168.0.12/source@239 8346c931-da38-4b9b-9d4c-e48b93cbd075
90 lines
2.3 KiB
C++
90 lines
2.3 KiB
C++
#include "sfacebookusermanage.h"
|
|
#include <QThread>
|
|
#include "widget.h"
|
|
SFacebookUserManage::SFacebookUserManage(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 SFacebookUserManage::Start()
|
|
{
|
|
m_nMode = E_PROCESS_RUN;
|
|
m_bFinalLast = false;
|
|
}
|
|
|
|
bool SFacebookUserManage::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() << "webbasedcrawler.py" << "facebook" << m_strKeywordID << m_strGroupID << m_pMain->StartDay() << m_pMain->UntilPage());
|
|
#else
|
|
m_pro[0].start("/usr/bin/python3", QStringList() << "webbasedcrawler.py" << "facebook" << m_strKeywordID << m_strGroupID << m_pMain->StartDay() << m_pMain->UntilPage());
|
|
#endif
|
|
m_nMode = E_PROCESS_FINISH_WAIT;
|
|
}
|
|
break;
|
|
|
|
case E_PROCESS_FINISH_WAIT:
|
|
break;
|
|
}
|
|
|
|
return m_bFinalLast;
|
|
}
|
|
|
|
void SFacebookUserManage::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 SFacebookUserManage::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 SFacebookUserManage::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);
|
|
}
|
|
}
|