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("remoteUrl",
75 "http://mercury.wipsl.com/irwi/uploaded/").toString()
77 m_remoteNAM->get(QNetworkRequest(QUrl(url)));
78 settings.setValue("remoteName", m_name);
82 void Remote::updateInfo()
84 if (!m_name.isEmpty()) {
86 m_infoNAM = new QNetworkAccessManager(this);
87 connect(m_infoNAM, SIGNAL(finished(QNetworkReply*)),
88 this, SLOT(infoRequestFinished(QNetworkReply *)));
90 QSettings settings(this);
91 QString url = settings.value("baseUrl",
92 "http://mercury.wipsl.com/irwi/").toString()
95 m_infoNAM->get(QNetworkRequest(QUrl(url)));
99 void Remote::sendRating(Rating::Rating r)
103 m_ratingNAM = new QNetworkAccessManager(this);
105 QSettings settings(this);
106 m_ratingNAM->get(QNetworkRequest(QUrl(
107 settings.value("baseUrl",
108 "http://mercury.wipsl.com/irwi/db.xml").toString()
110 + ((r == Rating::Up) ? "up" : "down")
116 void Remote::remoteDownloadFinished(QNetworkReply *reply)
118 if (reply->error() == QNetworkReply::NoError) {
119 QFile file(QSettings(this).value("lircConf",
120 "/etc/lircd.conf").toString());
121 if(file.open(QIODevice::WriteOnly)) {
122 file.write(reply->readAll());
127 reply->deleteLater();
129 std::system("sudo /etc/init.d/lirc reload");
134 void Remote::infoRequestFinished(QNetworkReply *reply)
136 if (reply->error() == QNetworkReply::NoError) {
137 m_rating = QString(reply->readLine(20)).toInt();
138 m_voteCount = QString(reply->readLine(20)).toInt();
141 reply->deleteLater();