3 GoogleLatitude::GoogleLatitude(QObject *parent) : QObject(parent) {
10 worker = new QNetworkAccessManager();
11 connect(worker, SIGNAL(finished(QNetworkReply *)), this, SLOT(finishedreply(QNetworkReply *)));
13 urllogin = QUrl::fromEncoded("https://www.google.com/accounts/ServiceLogin?service=friendview");
14 urldologin = QUrl::fromEncoded("https://www.google.com/accounts/ServiceLoginAuth?service=friendview");
15 urlupdate = QUrl::fromEncoded("http://maps.google.com/glm/mmap/mwmfr?hl=en");
21 void GoogleLatitude::login(QString u, QString p) {
22 if ( !u.contains('@') ) u.append("@gmail.com");
27 void GoogleLatitude::set(double la, double lo, double ac) {
32 qDebug() << "GoogleLatitude: set la = " << la << " lo = " << lo << " ac = " << ac;
33 qDebug() << "GoogleLatitude: set lastupdate = " << lastupdate << " current = " << QDateTime::currentMSecsSinceEpoch();
34 if (login_error) return;
35 if (la*lo == 0) return;
36 if ( QDateTime::currentMSecsSinceEpoch() < lastupdate + 120*1000 ) return;
37 worker->get(QNetworkRequest(urllogin));
40 void GoogleLatitude::finishedreply(QNetworkReply *r) {
41 if ( r->url() == urllogin ) {
42 qDebug() << "GoogleLatitude: login";
43 QString aidis = r->readAll();
44 QRegExp regexp ("type=\"hidden\".*name=\"GALX\".*value=\"(.*)\"");
46 regexp.indexIn(aidis, 1);
47 QString googleGALX = regexp.capturedTexts().last();
50 datalogin += "&service=friendview";
51 datalogin += "&GALX=" + googleGALX;
52 datalogin += "&Email=" + user;
53 datalogin += "&Passwd=" + pass;
54 worker->post(QNetworkRequest(urldologin), datalogin);
55 } else if ( r->url() == urldologin ) {
56 qDebug() << "GoogleLatitude: dologin";
59 datagps += "&lat=" + QString::number(latitude);
60 datagps += "&lng=" + QString::number(longitude);
61 datagps += "&accuracy=" + QString::number(accuracy);
63 QNetworkRequest request(urlupdate);
64 request.setRawHeader("X-ManualHeader", QString("true").toAscii() );
65 worker->post(request, datagps);
66 } else if ( r->url() == urlupdate ) {
67 QString output = r->readAll();
68 QRegExp regexp ("Authentication required");
69 if (regexp.indexIn(output, 1) != -1) {
70 qDebug() << "GoogleLatitude: update error";
74 lastupdate = QDateTime::currentMSecsSinceEpoch();
75 qDebug() << "GoogleLatitude: update ok " << " lastupdate = " << lastupdate;
79 qDebug() << "GoogleLatitude Error url:" << r->url();
80 qDebug() << r->rawHeaderList();
81 qDebug() << r->readAll();