Files
clients/CrawlerList/sfacebookusermanage.cpp
admin f25230c652 facebook 추가
timeout시 재접속 할수 있도록 수정

git-svn-id: svn://192.168.0.12/source@239 8346c931-da38-4b9b-9d4c-e48b93cbd075
2016-01-19 06:47:32 +00:00

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);
}
}