add notify my android backend

This commit is contained in:
Patrick von Reth 2015-04-17 14:27:21 +02:00
parent e072cc3203
commit 1a576df4e8
9 changed files with 249 additions and 14 deletions

View File

@ -14,6 +14,14 @@
<translation>Passwort:</translation>
</message>
</context>
<context>
<name>NotifyMyAndroidSettings</name>
<message>
<location filename="../src/plugins/secondary_backends/nma/nmasettings.cpp" line="28"/>
<source>Api Key:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
@ -99,22 +107,22 @@
<context>
<name>Snore::SettingsDialog</name>
<message>
<location filename="../src/libsnore/settingsdialog.cpp" line="79"/>
<location filename="../src/libsnore/settingsdialog.cpp" line="78"/>
<source>Hello World</source>
<translation>Hallo Welt</translation>
</message>
<message>
<location filename="../src/libsnore/settingsdialog.cpp" line="81"/>
<location filename="../src/libsnore/settingsdialog.cpp" line="80"/>
<source>This is Snore</source>
<translation>Dies ist Snore</translation>
</message>
<message>
<location filename="../src/libsnore/settingsdialog.cpp" line="81"/>
<location filename="../src/libsnore/settingsdialog.cpp" line="80"/>
<source>Project Website</source>
<translation>Projekt Webseite</translation>
</message>
<message>
<location filename="../src/libsnore/settingsdialog.cpp" line="83"/>
<location filename="../src/libsnore/settingsdialog.cpp" line="82"/>
<source>Test Action</source>
<translation>Test Aktion</translation>
</message>
@ -150,17 +158,22 @@
<context>
<name>SoundSettings</name>
<message>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="31"/>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="34"/>
<source>Volume:</source>
<translation>Lautstärke:</translation>
</message>
<message>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="36"/>
<source>Audio file:</source>
<translation>Audio Datei:</translation>
</message>
<message>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="32"/>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="37"/>
<source>Select a audio file</source>
<translation>Wähle eine Audio Datei</translation>
</message>
<message>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="35"/>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="40"/>
<source>All Audio files</source>
<translation>Alle Audio Dateien</translation>
</message>

View File

@ -14,6 +14,14 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotifyMyAndroidSettings</name>
<message>
<location filename="../src/plugins/secondary_backends/nma/nmasettings.cpp" line="28"/>
<source>Api Key:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
@ -99,22 +107,22 @@
<context>
<name>Snore::SettingsDialog</name>
<message>
<location filename="../src/libsnore/settingsdialog.cpp" line="79"/>
<location filename="../src/libsnore/settingsdialog.cpp" line="78"/>
<source>Hello World</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsnore/settingsdialog.cpp" line="81"/>
<location filename="../src/libsnore/settingsdialog.cpp" line="80"/>
<source>This is Snore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsnore/settingsdialog.cpp" line="81"/>
<location filename="../src/libsnore/settingsdialog.cpp" line="80"/>
<source>Project Website</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libsnore/settingsdialog.cpp" line="83"/>
<location filename="../src/libsnore/settingsdialog.cpp" line="82"/>
<source>Test Action</source>
<translation type="unfinished"></translation>
</message>
@ -150,17 +158,22 @@
<context>
<name>SoundSettings</name>
<message>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="31"/>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="34"/>
<source>Volume:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="36"/>
<source>Audio file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="32"/>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="37"/>
<source>Select a audio file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="35"/>
<location filename="../src/plugins/secondary_backends/sound/soundsettings.cpp" line="40"/>
<source>All Audio files</source>
<translation type="unfinished"></translation>
</message>

View File

@ -1,2 +1,3 @@
add_subdirectory(toasty)
add_subdirectory(nma)
add_subdirectory(sound)

View File

@ -0,0 +1,10 @@
set( NMA_SRC
nma.cpp
nmasettings.cpp
)
add_library(libsnore_secondary_backend_nma MODULE ${NMA_SRC} )
target_link_libraries(libsnore_secondary_backend_nma Snore::Libsnore)
install(TARGETS libsnore_secondary_backend_nma ${SNORE_PLUGIN_INSTALL_PATH})

View File

@ -0,0 +1,70 @@
/*
SnoreNotify is a Notification Framework based on Qt
Copyright (C) 2015 Patrick von Reth <vonreth@kde.org>
SnoreNotify is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SnoreNotify is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with SnoreNotify. If not, see <http://www.gnu.org/licenses/>.
*/
#include "nma.h"
#include "nmasettings.h"
#include"libsnore/utils.h"
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
using namespace Snore;
NotifyMyAndroid::NotifyMyAndroid():
SnoreSecondaryBackend("NotifyMyAndroid", false)
{
setDefaultValue("ApiKey", "");
}
NotifyMyAndroid::~NotifyMyAndroid()
{
}
void NotifyMyAndroid::slotNotify(Notification notification)
{
QString key = value("ApiKey").toString();
if (key.isEmpty()) {
return;
}
QNetworkRequest request(QUrl("https://www.notifymyandroid.com/publicapi/notify"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/x-www-form-urlencoded"));
// TODO: use toHTML?
QString data(QString("apikey=%1&application=%2&event=%3&description=%4&content-type=text/html")
.arg(key,
notification.application().name(),
Utils::toPlainText(notification.title()),
Utils::toPlainText(notification.text())));
QNetworkReply *reply = m_manager.post(request,data.toUtf8().constData());
connect(reply, &QNetworkReply::finished, [reply]() {
snoreDebug(SNORE_DEBUG) << reply->error();
snoreDebug(SNORE_DEBUG) << reply->readAll();
reply->close();
reply->deleteLater();
});
}
PluginSettingsWidget *NotifyMyAndroid::settingsWidget()
{
return new NotifyMyAndroidSettings(this);
}

View File

@ -0,0 +1,44 @@
/*
SnoreNotify is a Notification Framework based on Qt
Copyright (C) 2015 Patrick von Reth <vonreth@kde.org>
SnoreNotify is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SnoreNotify is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with SnoreNotify. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef NMA_H
#define NMA_H
#include "libsnore/plugins/snorebackend.h"
#include <QNetworkAccessManager>
class NotifyMyAndroid : public Snore::SnoreSecondaryBackend
{
Q_OBJECT
Q_INTERFACES(Snore::SnoreSecondaryBackend)
Q_PLUGIN_METADATA(IID "org.Snore.SecondaryNotificationBackend/1.0" FILE "plugin.json")
public:
NotifyMyAndroid();
~NotifyMyAndroid();
Snore::PluginSettingsWidget *settingsWidget() override;
public slots:
void slotNotify(Snore::Notification notification) override;
private:
QNetworkAccessManager m_manager;
};
#endif // NMA_H

View File

@ -0,0 +1,43 @@
/*
SnoreNotify is a Notification Framework based on Qt
Copyright (C) 2015 Patrick von Reth <vonreth@kde.org>
SnoreNotify is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SnoreNotify is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with SnoreNotify. If not, see <http://www.gnu.org/licenses/>.
*/
#include "nmasettings.h"
#include "plugins/plugins.h"
#include <QLineEdit>
NotifyMyAndroidSettings::NotifyMyAndroidSettings(Snore::SnorePlugin *plugin, QWidget *parent) :
Snore::PluginSettingsWidget(plugin, parent),
m_lineEdit(new QLineEdit)
{
addRow(tr("Api Key:"), m_lineEdit);
}
NotifyMyAndroidSettings::~NotifyMyAndroidSettings()
{
}
void NotifyMyAndroidSettings::load()
{
m_lineEdit->setText(value("ApiKey").toString());
}
void NotifyMyAndroidSettings::save()
{
setValue("ApiKey", m_lineEdit->text());
}

View File

@ -0,0 +1,40 @@
/*
SnoreNotify is a Notification Framework based on Qt
Copyright (C) 2015 Patrick von Reth <vonreth@kde.org>
SnoreNotify is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SnoreNotify is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with SnoreNotify. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef NOTIFYMYANDROID_H
#define NOTIFYMYANDROID_H
#include "plugins/pluginsettingswidget.h"
class QLineEdit;
class NotifyMyAndroidSettings : public Snore::PluginSettingsWidget
{
Q_OBJECT
public:
explicit NotifyMyAndroidSettings(Snore::SnorePlugin *plugin, QWidget *parent = 0);
~NotifyMyAndroidSettings();
void load() override;
void save() override;
private:
QLineEdit *m_lineEdit;
};
#endif // NOTIFYMYANDROID_HH

View File

@ -0,0 +1 @@
{ "type" : "secondary_backend", "name" : "NotifyMyAndroid" }