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 bool Remote::operator==(const Remote &other) const
67 return (m_name == other.m_name &&
68 m_mfg == other.m_mfg &&
69 m_rating == other.m_rating &&
70 m_voteCount == other.m_voteCount);
73 void Remote::saveToFile()
75 if (!m_name.isEmpty()) {
77 m_remoteNAM = new QNetworkAccessManager(this);
78 connect(m_remoteNAM, SIGNAL(finished(QNetworkReply*)),
79 this, SLOT(remoteDownloadFinished(QNetworkReply*)));
81 QSettings settings(this);
82 QString url = settings.value("baseUrl",
83 "http://mercury.wipsl.com/irwi/").toString()
86 m_remoteNAM->get(QNetworkRequest(QUrl(url)));
87 settings.setValue("remoteName", m_name);
91 void Remote::updateInfo()
93 if (!m_name.isEmpty()) {
95 m_infoNAM = new QNetworkAccessManager(this);
96 connect(m_infoNAM, SIGNAL(finished(QNetworkReply*)),
97 this, SLOT(infoRequestFinished(QNetworkReply *)));
99 QSettings settings(this);
100 QString url = settings.value("baseUrl",
101 "http://mercury.wipsl.com/irwi/").toString()
104 m_infoNAM->get(QNetworkRequest(QUrl(url)));
108 void Remote::sendRating(Rating::Rating r)
110 if (!m_name.isEmpty()) {
112 m_ratingNAM = new QNetworkAccessManager(this);
114 QSettings settings(this);
115 m_ratingNAM->get(QNetworkRequest(QUrl(
116 settings.value("baseUrl",
117 "http://mercury.wipsl.com/irwi/").toString()
119 + ((r == Rating::Up) ? "up" : "down")
125 void Remote::remoteDownloadFinished(QNetworkReply *reply)
127 if (reply->error() == QNetworkReply::NoError) {
128 QFile file(QSettings(this).value("lircConf",
129 "/etc/lircd.conf").toString());
130 if(file.open(QIODevice::WriteOnly)) {
131 file.write(reply->readAll());
136 reply->deleteLater();
138 std::system("sudo /etc/init.d/lirc reload");
143 void Remote::infoRequestFinished(QNetworkReply *reply)
145 if (reply->error() == QNetworkReply::NoError) {
146 m_rating = QString(reply->readLine(20)).toInt();
147 m_voteCount = QString(reply->readLine(20)).toInt();
148 m_mfg = QString(reply->readLine(20)).trimmed();
151 reply->deleteLater();