SMS download
This commit is contained in:
parent
6b7ff8e86a
commit
0c16233403
@ -27,18 +27,18 @@ unsigned int CVoipMsSMSClient::SetVOIPMsSettings(CVoipMSSMSSettings *SettingsDat
|
|||||||
int CVoipMsSMSClient::DownloadSMSFromServer()
|
int CVoipMsSMSClient::DownloadSMSFromServer()
|
||||||
{
|
{
|
||||||
|
|
||||||
QDate EndDate;
|
// QDate EndDate;
|
||||||
mCurStartDate = mVOIPMsSettings.mStartDate;
|
// mCurStartDate = mVOIPMsSettings.mStartDate;
|
||||||
if(mCurStartDate.daysTo(QDate::currentDate()) > VOIP_MS_SMS_DATESPAN)
|
// if(mCurStartDate.daysTo(QDate::currentDate()) > VOIP_MS_SMS_DATESPAN)
|
||||||
{
|
// {
|
||||||
EndDate = mCurStartDate.addDays(VOIP_MS_SMS_DATESPAN);
|
// EndDate = mCurStartDate.addDays(VOIP_MS_SMS_DATESPAN);
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
EndDate = mCurStartDate.addDays(mCurStartDate.daysTo(QDate::currentDate()));
|
// EndDate = mCurStartDate.addDays(mCurStartDate.daysTo(QDate::currentDate()));
|
||||||
}
|
// }
|
||||||
|
mCurStartDate = QDate::currentDate().addDays(-VOIP_MS_SMS_DATESPAN);
|
||||||
SendSMSDownloadRequest(mCurStartDate,EndDate);
|
SendSMSDownloadRequest(mCurStartDate,QDate::currentDate());
|
||||||
|
|
||||||
// QString Url;
|
// QString Url;
|
||||||
// Url.clear();
|
// Url.clear();
|
||||||
@ -79,7 +79,7 @@ int CVoipMsSMSClient::SendSMSDownloadRequest(QDate StartDate, QDate EndDate)
|
|||||||
<< "from=" << StartDate.toString("yyyy-MM-dd") << "&"
|
<< "from=" << StartDate.toString("yyyy-MM-dd") << "&"
|
||||||
<< "to=" << EndDate.toString("yyyy-MM-dd") << "&"
|
<< "to=" << EndDate.toString("yyyy-MM-dd") << "&"
|
||||||
<< "did=" << mVOIPMsSettings.mDefaultDID << "&"
|
<< "did=" << mVOIPMsSettings.mDefaultDID << "&"
|
||||||
<< "limit=" << "50";
|
<< "limit=" << VOIP_MS_SMS_MAX_COUNT;
|
||||||
|
|
||||||
qDebug() << "Cmd: " << Url;
|
qDebug() << "Cmd: " << Url;
|
||||||
mVOIPMSSocket->get(QNetworkRequest(Url));
|
mVOIPMSSocket->get(QNetworkRequest(Url));
|
||||||
@ -127,19 +127,20 @@ void CVoipMsSMSClient::VoipServerReplyFinished(QNetworkReply *NetworkReply)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
qDebug() << "VOIP.MS reply: " << JsonObject["status"].toString();
|
||||||
if(JsonObject["status"].toString() == "no_sms")
|
if(JsonObject["status"].toString() == "no_sms")
|
||||||
{
|
{
|
||||||
SMSReceived(0);
|
SMSReceived(0);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
qDebug() << "Failed VOIP.MS reply: " << JsonObject["status"].toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
QList<CSMSMessage> NewMessages;
|
||||||
|
int NBMsgReceived;
|
||||||
|
|
||||||
if(SMSArray != 0)
|
if(SMSArray != 0)
|
||||||
{
|
{
|
||||||
foreach (const QJsonValue & value, *SMSArray)
|
foreach (const QJsonValue & value, *SMSArray)
|
||||||
@ -152,32 +153,96 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
|||||||
NewMessage.mMessageText = obj["message"].toString();
|
NewMessage.mMessageText = obj["message"].toString();
|
||||||
NewMessage.mType = (SmsType_t)obj["type"].toString().toInt();
|
NewMessage.mType = (SmsType_t)obj["type"].toString().toInt();
|
||||||
NewMessage.mVOIPMSDatabaseID = obj["id"].toString();//.toLongLong();
|
NewMessage.mVOIPMSDatabaseID = obj["id"].toString();//.toLongLong();
|
||||||
mSMSMessagesList.append(NewMessage);
|
NewMessages.append(NewMessage);
|
||||||
qDebug() << obj["contact"].toString().toUtf8() << " : " << obj["message"].toString().toUtf8();
|
//qDebug() << obj["date"].toString() << " : " << obj["id"].toString();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(mCurStartDate != QDate::currentDate())
|
|
||||||
{
|
|
||||||
if(mSMSMessagesList.size() != 0)
|
|
||||||
{
|
|
||||||
mCurStartDate = QDate::fromString(mSMSMessagesList.last().mDateTime.toString("yyyy-MM-dd"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QDate EndDate;
|
NBMsgReceived = NewMessages.size();
|
||||||
if(mCurStartDate.daysTo(QDate::currentDate()) > VOIP_MS_SMS_DATESPAN)
|
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
|
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;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
#define VOIP_MS_API_URL "https://www.voip.ms/api/v1/rest.php?"
|
#define VOIP_MS_API_URL "https://www.voip.ms/api/v1/rest.php?"
|
||||||
#define VOIP_MS_SMS_DATESPAN 90
|
#define VOIP_MS_SMS_DATESPAN 90
|
||||||
|
#define VOIP_MS_SMS_MAX_COUNT 500
|
||||||
|
|
||||||
enum VoipMSRetValues
|
enum VoipMSRetValues
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user