More implementation
authorTorste Aikio <zokier@zokier.laptop>
Fri, 18 Jun 2010 08:44:22 +0000 (11:44 +0300)
committerTorste Aikio <zokier@zokier.laptop>
Fri, 18 Jun 2010 08:44:22 +0000 (11:44 +0300)
src/remote.cpp

index b6d623b..a10deff 100644 (file)
@@ -1,14 +1,20 @@
 #include "remote.h"
 
+#include <cstdlib>
+
 #include <QString>
 #include <QSettings>
+#include <QFile>
 #include <QNetworkAccessManager>
 #include <QNetworkRequest>
+#include <QNetworkReply>
 #include <QUrl>
 
 Remote::Remote(const Remote::QString &name)
     : m_name(name)
 {
+    init();
+    updateInfo();
 }
 
 Remote::Remote(const QString &name, const QString &mfg,
@@ -16,28 +22,41 @@ Remote::Remote(const QString &name, const QString &mfg,
     : m_name(name), m_mfg(mfg),
     m_rating(rating), m_voteCount(voteCount)
 {
+    init();
+}
+
+void Remote::init()
+{
+    connect(&m_remoteNAM, SIGNAL(finished(QNetworkReply*)),
+            this, SLOT(remoteDownloadFinished(QNetworkReply*)));
+    connect(&m_infoNAM, SIGNAL(finished(QNetworkReply*)),
+            this, SLOT(infoRequestFinished(QNetworkReply *reply)));
 }
 
 void Remote::saveToFile()
 {
+    QSettings settings;
+    if (!m_name.isEmpty()) {
+        QString url = settings.value("remoteUrl", "http://mercury.wipsl.com/irwi/uploaded/").toString() + m_name;
+        m_remoteNAM.get(QNetworkRequest(QUrl(url)));
+        settings.setValue("remoteName", m_name);
+    }
 }
 
 void Remote::updateInfo()
 {
     QSettings settings;
-    if (m_name != "") {
-        m_infoNAM->get(QNetworkRequest(QUrl(
-              settings.value("baseUrl").toString() 
-                + "vote/get?name=" 
-                + m_name )));
+    if (!m_name.isEmpty()) {
+        QString url = settings.value("baseUrl", "http://mercury.wipsl.com/irwi/").toString() + "vote/get?name=" + m_name;
+        m_infoNAM.get(QNetworkRequest(QUrl(url)));
     }
 }
 
 void Remote::sendRating(Rating::Rating r)
 {
     QSettings settings;
-    if (m_name != "") {
-        m_ratingNAM->get(QNetworkRequest(QUrl(
+    if (!m_name.isEmpty()) {
+        m_ratingNAM.get(QNetworkRequest(QUrl(
               settings.value("baseUrl").toString() 
                 + "vote/"
                 + r == Rating::Up ? "up" : "down"
@@ -46,3 +65,33 @@ void Remote::sendRating(Rating::Rating r)
     }
 }
 
+void Remote::remoteDownloadFinished(QNetworkReply *reply)
+{
+    if (reply->error() == QNetworkReply::NoError) {
+        QFile file(settings->value("lircConf", "/etc/lircd.conf").toString());
+        if(file.open(QIODevice::WriteOnly))
+        {
+            file.write(reply->readAll());
+            file.close();
+        }
+    }
+    reply->close();
+    reply->deleteLater();
+
+    std::system("sudo /etc/init.d/lirc reload");
+
+    //emit remoteDownloaded();
+}
+
+void Remote::infoRequestFinished(QNetworkReply *reply)
+{
+    if (reply->error() == QNetworkReply::NoError) {
+        m_rating    = QString(reply->readline(20)).toInt();
+        m_voteCount = QString(reply->readline(20)).toInt();
+    }
+    reply->close();
+    reply->deleteLater();
+
+    emit infoUpdated();
+}
+