SMS download

This commit is contained in:
J-F Martel 2015-12-11 14:14:36 -05:00
parent 6b7ff8e86a
commit 0c16233403
2 changed files with 100 additions and 34 deletions

View File

@ -27,18 +27,18 @@ unsigned int CVoipMsSMSClient::SetVOIPMsSettings(CVoipMSSMSSettings *SettingsDat
int CVoipMsSMSClient::DownloadSMSFromServer()
{
QDate EndDate;
mCurStartDate = mVOIPMsSettings.mStartDate;
if(mCurStartDate.daysTo(QDate::currentDate()) > VOIP_MS_SMS_DATESPAN)
{
EndDate = mCurStartDate.addDays(VOIP_MS_SMS_DATESPAN);
}
else
{
EndDate = mCurStartDate.addDays(mCurStartDate.daysTo(QDate::currentDate()));
}
SendSMSDownloadRequest(mCurStartDate,EndDate);
// QDate EndDate;
// mCurStartDate = mVOIPMsSettings.mStartDate;
// if(mCurStartDate.daysTo(QDate::currentDate()) > VOIP_MS_SMS_DATESPAN)
// {
// EndDate = mCurStartDate.addDays(VOIP_MS_SMS_DATESPAN);
// }
// else
// {
// EndDate = mCurStartDate.addDays(mCurStartDate.daysTo(QDate::currentDate()));
// }
mCurStartDate = QDate::currentDate().addDays(-VOIP_MS_SMS_DATESPAN);
SendSMSDownloadRequest(mCurStartDate,QDate::currentDate());
// QString Url;
// Url.clear();
@ -79,7 +79,7 @@ int CVoipMsSMSClient::SendSMSDownloadRequest(QDate StartDate, QDate EndDate)
<< "from=" << StartDate.toString("yyyy-MM-dd") << "&"
<< "to=" << EndDate.toString("yyyy-MM-dd") << "&"
<< "did=" << mVOIPMsSettings.mDefaultDID << "&"
<< "limit=" << "50";
<< "limit=" << VOIP_MS_SMS_MAX_COUNT;
qDebug() << "Cmd: " << Url;
mVOIPMSSocket->get(QNetworkRequest(Url));
@ -127,19 +127,20 @@ void CVoipMsSMSClient::VoipServerReplyFinished(QNetworkReply *NetworkReply)
}
else
{
qDebug() << "VOIP.MS reply: " << JsonObject["status"].toString();
if(JsonObject["status"].toString() == "no_sms")
{
SMSReceived(0);
}
else
{
qDebug() << "Failed VOIP.MS reply: " << JsonObject["status"].toString();
}
}
}
unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
{
QList<CSMSMessage> NewMessages;
int NBMsgReceived;
if(SMSArray != 0)
{
foreach (const QJsonValue & value, *SMSArray)
@ -152,32 +153,96 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
NewMessage.mMessageText = obj["message"].toString();
NewMessage.mType = (SmsType_t)obj["type"].toString().toInt();
NewMessage.mVOIPMSDatabaseID = obj["id"].toString();//.toLongLong();
mSMSMessagesList.append(NewMessage);
qDebug() << obj["contact"].toString().toUtf8() << " : " << obj["message"].toString().toUtf8();
}
}
if(mCurStartDate != QDate::currentDate())
{
if(mSMSMessagesList.size() != 0)
{
mCurStartDate = QDate::fromString(mSMSMessagesList.last().mDateTime.toString("yyyy-MM-dd"));
NewMessages.append(NewMessage);
//qDebug() << obj["date"].toString() << " : " << obj["id"].toString();
}
QDate EndDate;
if(mCurStartDate.daysTo(QDate::currentDate()) > VOIP_MS_SMS_DATESPAN)
NBMsgReceived = NewMessages.size();
qDebug() << "Received " << NBMsgReceived << "messages";
if(mSMSMessagesList.size() >0 && NewMessages.size() > 0)
{
EndDate = mCurStartDate.addDays(VOIP_MS_SMS_DATESPAN);
//remove existing messages...
bool finished = false;
int i = 0;
while(!finished)
{
//compare starting from the end for efficiency...
QDateTime NewDate = NewMessages.at(0).mDateTime;
QDateTime OldDate = mSMSMessagesList.last().mDateTime;
if(NewDate >= OldDate)
{
NewMessages.removeAt(0);
if(NewMessages.size() == 0)
{
finished = true;
}
}
else
{
finished = true;
}
}
}
mSMSMessagesList.append(NewMessages);
if(NBMsgReceived == VOIP_MS_SMS_MAX_COUNT)
{
//Restart at the last day received...
mCurStartDate = mSMSMessagesList.last().mDateTime.date();
QDate EarlierDate = mCurStartDate.addDays(-VOIP_MS_SMS_DATESPAN);
SendSMSDownloadRequest(EarlierDate,mCurStartDate);
}
else
{
EndDate = mCurStartDate.addDays(mCurStartDate.daysTo(QDate::currentDate()));
}
qDebug() << "Finished download of " << mSMSMessagesList.size() << " SMS messages";
qDebug("-----------------------------------------------------------------------");
qDebug(" ");
for(int i = 0; i < mSMSMessagesList.size(); i++)
{
qDebug() << mSMSMessagesList.at(i).mDateTime.toString("yyyy:MM:dd hh:mm:ss") << " : " << mSMSMessagesList.at(i).mContact << " : " << mSMSMessagesList.at(i).mMessageText.toUtf8().data();
}
qDebug("-----------------------------------------------------------------------");
qDebug(" ");
SendSMSDownloadRequest(mCurStartDate,EndDate);
}
}
else
{
qDebug("No SMS to download in this period.");
}
qDebug("Added %d messages in the list",mSMSMessagesList.size());
// if(mCurStartDate != QDate::currentDate())
// {
// if(mSMSMessagesList.size() != 0)
// {
// mCurStartDate = QDate::fromString(mSMSMessagesList.last().mDateTime.toString("yyyy-MM-dd"));
// }
// QDate EndDate;
// if(mCurStartDate.daysTo(QDate::currentDate()) > VOIP_MS_SMS_DATESPAN)
// {
// EndDate = mCurStartDate.addDays(VOIP_MS_SMS_DATESPAN);
// }
// else
// {
// EndDate = mCurStartDate.addDays(mCurStartDate.daysTo(QDate::currentDate()));
// }
// SendSMSDownloadRequest(mCurStartDate,EndDate);
// }
// qDebug("Added %d messages in the list",mSMSMessagesList.size());
return RET_OK;
}

View File

@ -13,6 +13,7 @@
#define VOIP_MS_API_URL "https://www.voip.ms/api/v1/rest.php?"
#define VOIP_MS_SMS_DATESPAN 90
#define VOIP_MS_SMS_MAX_COUNT 500
enum VoipMSRetValues
{