7 #include <QNetworkAccessManager>
8 #include <QNetworkRequest>
9 #include <QNetworkReply>
23 Remote::Remote(const QString &name, const QString &mfg,
24 int rating, int voteCount)
28 , m_voteCount(voteCount)
35 Remote::Remote(const Remote &r)
39 , m_rating(r.m_rating)
40 , m_voteCount(r.m_voteCount)
54 Remote &Remote::operator=(const Remote &other)
57 m_name = other.m_name;
59 m_rating = other.m_rating;
60 m_voteCount = other.m_voteCount;
65 void Remote::saveToFile()
67 if (!m_name.isEmpty()) {
69 m_remoteNAM = new QNetworkAccessManager(this);
70 connect(m_remoteNAM, SIGNAL(finished(QNetworkReply*)),
71 this, SLOT(remoteDownloadFinished(QNetworkReply*)));
73 QSettings settings(this);
74 QString url = settings.value("baseUrl",
75 "http://mercury.wipsl.com/irwi/").toString()
78 m_remoteNAM->get(QNetworkRequest(QUrl(url)));
79 settings.setValue("remoteName", m_name);
83 void Remote::updateInfo()
85 if (!m_name.isEmpty()) {
87 m_infoNAM = new QNetworkAccessManager(this);
88 connect(m_infoNAM, SIGNAL(finished(QNetworkReply*)),
89 this, SLOT(infoRequestFinished(QNetworkReply *)));
91 QSettings settings(this);
92 QString url = settings.value("baseUrl",
93 "http://mercury.wipsl.com/irwi/").toString()
96 m_infoNAM->get(QNetworkRequest(QUrl(url)));
100 void Remote::sendRating(Rating::Rating r)
104 m_ratingNAM = new QNetworkAccessManager(this);
106 QSettings settings(this);
107 m_ratingNAM->get(QNetworkRequest(QUrl(
108 settings.value("baseUrl",
109 "http://mercury.wipsl.com/irwi/").toString()
111 + ((r == Rating::Up) ? "up" : "down")
117 void Remote::remoteDownloadFinished(QNetworkReply *reply)
119 if (reply->error() == QNetworkReply::NoError) {
120 QFile file(QSettings(this).value("lircConf",
121 "/etc/lircd.conf").toString());
122 if(file.open(QIODevice::WriteOnly)) {
123 file.write(reply->readAll());
128 reply->deleteLater();
130 std::system("sudo /etc/init.d/lirc reload");
135 void Remote::infoRequestFinished(QNetworkReply *reply)
137 if (reply->error() == QNetworkReply::NoError) {
138 m_rating = QString(reply->readLine(20)).toInt();
139 m_voteCount = QString(reply->readLine(20)).toInt();
140 m_mfg = QString(reply->readLine(20));
143 reply->deleteLater();