Voip.MS dev
This commit is contained in:
parent
0c16233403
commit
3090a711e8
@ -17,7 +17,9 @@ HEADERS += \
|
||||
Sources/VoipSMS/CSMSMessage.h \
|
||||
Sources/Gui/SystemTrayManager.h \
|
||||
Sources/Gui/SettingsWindow.h \
|
||||
Sources/ProgramSettings.h
|
||||
Sources/ProgramSettings.h \
|
||||
Sources/Gui/AppIconWidget.h \
|
||||
../../SMSClient/Sources/SMSClient.h
|
||||
|
||||
SOURCES += \
|
||||
Sources/main.cpp \
|
||||
@ -32,7 +34,9 @@ SOURCES += \
|
||||
Sources/VoipSMS/CSMSMessage.cpp \
|
||||
Sources/Gui/SystemTrayManager.cpp \
|
||||
Sources/Gui/SettingsWindow.cpp \
|
||||
Sources/ProgramSettings.cpp
|
||||
Sources/ProgramSettings.cpp \
|
||||
Sources/Gui/AppIconWidget.cpp \
|
||||
../../SMSClient/Sources/SMSClient.cpp
|
||||
|
||||
|
||||
#win32:SOURCES += $$PWD/Source/qextserialport/win_qextserialport.cpp \
|
||||
|
||||
22
Sources/Gui/AppIconWidget.cpp
Normal file
22
Sources/Gui/AppIconWidget.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
#include "AppIconWidget.h"
|
||||
#include <Qpainter>
|
||||
|
||||
|
||||
CAppIconWidget::CAppIconWidget()
|
||||
{
|
||||
setWindowFlags(Qt::Popup | Qt::FramelessWindowHint);
|
||||
setParent(0); // Create TopLevel-Widget
|
||||
setAttribute(Qt::WA_NoSystemBackground, true);
|
||||
setAttribute(Qt::WA_TranslucentBackground, true);
|
||||
setAttribute(Qt::WA_PaintOnScreen); // not needed in Qt 5.2 and up
|
||||
}
|
||||
|
||||
|
||||
void CAppIconWidget::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
QRectF Rect(100,100,100,100);
|
||||
QPainter Painter(this);
|
||||
|
||||
Painter.fillRect(Rect,Qt::SolidPattern);
|
||||
}
|
||||
|
||||
18
Sources/Gui/AppIconWidget.h
Normal file
18
Sources/Gui/AppIconWidget.h
Normal file
@ -0,0 +1,18 @@
|
||||
#ifndef CAPPICONWIDGET_H
|
||||
#define CAPPICONWIDGET_H
|
||||
|
||||
#include "GlobalDefine.h"
|
||||
#include <QWidget>
|
||||
|
||||
class CAppIconWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CAppIconWidget();
|
||||
|
||||
|
||||
|
||||
virtual void paintEvent(QPaintEvent *event);
|
||||
};
|
||||
|
||||
#endif // CAPPICONWIDGET_H
|
||||
@ -37,6 +37,11 @@ void CMasterCtrl::Start()
|
||||
|
||||
mSettingsManager.LoadSettings(&mMasterCtrlSettings);
|
||||
mSettingsWindow->SetSettingsData(&mMasterCtrlSettings);
|
||||
mVoipMsSMSClient->SetVOIPMsSettings(&mMasterCtrlSettings.mVoipMSSettings);
|
||||
mVoipMsSMSClient->DownloadSMSFromServer();
|
||||
|
||||
// mAppWidget.show();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
#include "SystemTrayManager.h"
|
||||
#include "SettingsWindow.h"
|
||||
#include "ProgramSettings.h"
|
||||
//#include "AppIconWidget.h"
|
||||
|
||||
class CMasterCtrl : public QObject
|
||||
{
|
||||
@ -23,6 +24,7 @@ public:
|
||||
CSystemTrayManager *mSystemTrayManager;
|
||||
CSettingsWindow *mSettingsWindow;
|
||||
CProgramSettings mSettingsManager;
|
||||
// CAppIconWidget mAppWidget;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -4,17 +4,25 @@
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QDateTime>
|
||||
#include <QStringList>
|
||||
|
||||
CVoipMsSMSClient::CVoipMsSMSClient()
|
||||
{
|
||||
mVOIPMSSocket = new QNetworkAccessManager();
|
||||
connect(mVOIPMSSocket,SIGNAL(finished(QNetworkReply*)),this,SLOT(VoipServerReplyFinished(QNetworkReply*)));
|
||||
|
||||
mVOIPMsNotificationServer = new QTcpServer;
|
||||
connect(mVOIPMsNotificationServer,SIGNAL(newConnection()),this,SLOT(VoipNotificationServerConnected()));
|
||||
mVOIPMsNotificationServer->listen(QHostAddress::Any,80);
|
||||
|
||||
}
|
||||
|
||||
CVoipMsSMSClient::~CVoipMsSMSClient()
|
||||
{
|
||||
delete mVOIPMSSocket;
|
||||
mSMSMessagesList.clear();
|
||||
mVOIPMsNotificationServer->close();
|
||||
delete mVOIPMsNotificationServer;
|
||||
}
|
||||
|
||||
unsigned int CVoipMsSMSClient::SetVOIPMsSettings(CVoipMSSMSSettings *SettingsData)
|
||||
@ -27,37 +35,9 @@ 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()));
|
||||
// }
|
||||
mCurStartDate = QDate::currentDate().addDays(-VOIP_MS_SMS_DATESPAN);
|
||||
SendSMSDownloadRequest(mCurStartDate,QDate::currentDate());
|
||||
|
||||
// QString Url;
|
||||
// Url.clear();
|
||||
// QTextStream UrlStream(&Url);
|
||||
|
||||
// // Url = "https://www.voip.ms/api/v1/rest.php?api_username=jean-francois.martel@polymtl.ca&api_password=Pentium2&method=getSMS&from=2015-11-01&to=2015-11-11&did=5143606463&limit=50";
|
||||
|
||||
// UrlStream << VOIP_MS_API_URL
|
||||
// << "api_username=" << mVOIPMsSettings.mUsername << "&"
|
||||
// << "api_password=" << mVOIPMsSettings.mPassword << "&"
|
||||
// << "method=" << "getSMS" << "&"
|
||||
// << "from=" << mCurStartDate.toString("yyyy-MM-dd") << "&"
|
||||
// << "to=" << EndDate.toString("yyyy-MM-dd") << "&"
|
||||
// << "did=" << mVOIPMsSettings.mDefaultDID << "&"
|
||||
// << "limit=" << "50";
|
||||
|
||||
// qDebug() << "Cmd: " << Url;
|
||||
// mVOIPMSSocket->get(QNetworkRequest(Url));
|
||||
// mCurStartDate = EndDate;
|
||||
mSMSMessagesList.clear();
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@ -85,9 +65,15 @@ int CVoipMsSMSClient::SendSMSDownloadRequest(QDate StartDate, QDate EndDate)
|
||||
mVOIPMSSocket->get(QNetworkRequest(Url));
|
||||
mCurStartDate = EndDate;
|
||||
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CVoipMsSMSClient::DownloadNewSMS()
|
||||
{
|
||||
SendSMSDownloadRequest(QDate::currentDate(),QDate::currentDate());
|
||||
}
|
||||
|
||||
unsigned int CVoipMsSMSClient::GetDidFromUserAccount(const QString username, const QString Password)
|
||||
{
|
||||
QString Method = "getDIDsInfo";
|
||||
@ -160,33 +146,71 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
||||
NBMsgReceived = NewMessages.size();
|
||||
qDebug() << "Received " << NBMsgReceived << "messages";
|
||||
|
||||
|
||||
if(mSMSMessagesList.size() >0 && NewMessages.size() > 0)
|
||||
{
|
||||
//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)
|
||||
QDateTime NewDate = NewMessages.at(0).mDateTime;
|
||||
QDateTime OldDate = mSMSMessagesList.at(0).mDateTime;
|
||||
|
||||
if(NewDate > OldDate)
|
||||
{
|
||||
while(!finished)
|
||||
{
|
||||
NewMessages.removeAt(0);
|
||||
if(NewMessages.size() == 0)
|
||||
//compare starting from the end for efficiency...
|
||||
NewDate = NewMessages.last().mDateTime;
|
||||
OldDate = mSMSMessagesList.at(0).mDateTime;
|
||||
|
||||
if(NewDate <= OldDate)
|
||||
{
|
||||
NewMessages.removeLast();
|
||||
if(NewMessages.size() == 0)
|
||||
{
|
||||
finished = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
finished = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
NewMessages.append(mSMSMessagesList);
|
||||
mSMSMessagesList = NewMessages;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
while(!finished)
|
||||
{
|
||||
finished = true;
|
||||
//compare starting from the end for efficiency...
|
||||
NewDate = NewMessages.at(0).mDateTime;
|
||||
OldDate = mSMSMessagesList.last().mDateTime;
|
||||
|
||||
if(NewDate >= OldDate)
|
||||
{
|
||||
NewMessages.removeAt(0);
|
||||
if(NewMessages.size() == 0)
|
||||
{
|
||||
finished = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
finished = true;
|
||||
}
|
||||
}
|
||||
mSMSMessagesList.append(NewMessages);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mSMSMessagesList.append(NewMessages);
|
||||
}
|
||||
|
||||
|
||||
mSMSMessagesList.append(NewMessages);
|
||||
|
||||
|
||||
if(NBMsgReceived == VOIP_MS_SMS_MAX_COUNT)
|
||||
@ -203,7 +227,7 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
||||
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() << mSMSMessagesList.at(i).mDateTime.toString("yyyy-MM-dd hh:mm:ss") << " : " << mSMSMessagesList.at(i).mContact << " : " << mSMSMessagesList.at(i).mMessageText.toUtf8().data();
|
||||
}
|
||||
qDebug("-----------------------------------------------------------------------");
|
||||
qDebug(" ");
|
||||
@ -215,34 +239,17 @@ unsigned int CVoipMsSMSClient::SMSReceived(QJsonArray *SMSArray)
|
||||
qDebug("No SMS to download in this period.");
|
||||
}
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
unsigned int CVoipMsSMSClient::NewSMSNotification(QString DID)
|
||||
{
|
||||
if(DID != mVOIPMsSettings.mDefaultDID)
|
||||
{
|
||||
return RET_ERROR;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 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());
|
||||
DownloadNewSMS();
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@ -268,6 +275,54 @@ unsigned int CVoipMsSMSClient::DIDsInfoReceived(QJsonArray *DIDsInfoPtr)
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
void CVoipMsSMSClient::VoipNotificationServerConnected()
|
||||
{
|
||||
qDebug("Client Connected");
|
||||
|
||||
mClientConnection = mVOIPMsNotificationServer->nextPendingConnection();
|
||||
connect(mClientConnection,SIGNAL(readyRead()),this,SLOT(VoipNotificationServerDataAvail()));
|
||||
// ClientConnection->waitForReadyRead();
|
||||
|
||||
}
|
||||
|
||||
void CVoipMsSMSClient::VoipNotificationServerDataAvail()
|
||||
{
|
||||
QString Notification(mClientConnection->readAll());
|
||||
QStringList Parts = Notification.split(" ");
|
||||
QString Data;
|
||||
QString Did;
|
||||
|
||||
for(int i = 0; i < Parts.size(); i++)
|
||||
{
|
||||
if(Parts.at(i).contains("/?"))
|
||||
{
|
||||
Data = Parts.at(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(Data.isEmpty() == false)
|
||||
{
|
||||
Parts = Data.remove("/?").split("&");
|
||||
|
||||
for(int i = 0; i < Parts.size(); i++)
|
||||
{
|
||||
if(Parts.at(i).contains("did="))
|
||||
{
|
||||
Data = Parts.at(i);
|
||||
Did = Data.remove("did=");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
qDebug() << "New SMS from did: " << Did;
|
||||
|
||||
// qDebug() << Notification;
|
||||
mClientConnection->close();
|
||||
|
||||
NewSMSNotification(Did);
|
||||
}
|
||||
|
||||
//https://www.voip.ms/api/v1/rest.php?api_username=jean-francois.martel@polymtl.ca&api_password=Pentium2&method=getBalance&advanced=True
|
||||
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
#include <QStringList>
|
||||
#include <QJsonArray>
|
||||
#include "ProgramSettings.h"
|
||||
#include <QTcpServer>
|
||||
|
||||
#define VOIP_MS_API_URL "https://www.voip.ms/api/v1/rest.php?"
|
||||
#define VOIP_MS_SMS_DATESPAN 90
|
||||
@ -31,11 +32,13 @@ public:
|
||||
|
||||
int DownloadSMSFromServer();
|
||||
int SendSMSDownloadRequest(QDate StartDate, QDate EndDate);
|
||||
int DownloadNewSMS();
|
||||
|
||||
QList<CSMSMessage> mSMSMessagesList;
|
||||
|
||||
unsigned int GetDidFromUserAccount(const QString username, const QString Password);
|
||||
unsigned int SetVOIPMsSettings(CVoipMSSMSSettings *SettingsData);
|
||||
unsigned int NewSMSNotification(QString DID);
|
||||
|
||||
private:
|
||||
QNetworkAccessManager *mVOIPMSSocket;
|
||||
@ -47,12 +50,18 @@ private:
|
||||
|
||||
QDate mCurStartDate;
|
||||
|
||||
QTcpServer *mVOIPMsNotificationServer;
|
||||
QTcpSocket *mClientConnection;
|
||||
|
||||
|
||||
signals:
|
||||
void DIDSFetched(QStringList);
|
||||
|
||||
public slots:
|
||||
void VoipServerReplyFinished(QNetworkReply*);
|
||||
void VoipNotificationServerConnected();
|
||||
void VoipNotificationServerDataAvail();
|
||||
|
||||
};
|
||||
|
||||
#endif // CVOIPMSSMSCLIENT_H
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user