SMS download
This commit is contained in:
parent
6b7ff8e86a
commit
0c16233403
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user