Merge PR #98: New plugin: Pushbullet
commit
e84d44f045
|
|
@ -467,6 +467,21 @@ Description: nymea.io plugin for plantcare
|
|||
This package will install the nymea.io plugin for plantcare
|
||||
|
||||
|
||||
Package: nymea-plugin-pushbullet
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends},
|
||||
${misc:Depends},
|
||||
nymea-plugins-translations,
|
||||
Replaces: guh-plugin-pushbullet
|
||||
Description: nymea.io plugin for Pushbullet
|
||||
The nymea daemon is a plugin based IoT (Internet of Things) server. The
|
||||
server works like a translator for devices, things and services and
|
||||
allows them to interact.
|
||||
With the powerful rule engine you are able to connect any device available
|
||||
in the system and create individual scenes and behaviors for your environment.
|
||||
.
|
||||
This package will install the nymea.io plugin for sending messages via Pushbullet.
|
||||
|
||||
|
||||
Package: nymea-plugin-tasmota
|
||||
Architecture: any
|
||||
|
|
@ -750,6 +765,7 @@ Depends: nymea-plugin-awattar,
|
|||
nymea-plugin-networkdetector,
|
||||
nymea-plugin-openweathermap,
|
||||
nymea-plugin-philipshue,
|
||||
nymea-plugin-pushbullet,
|
||||
nymea-plugin-wakeonlan,
|
||||
nymea-plugin-tasmota,
|
||||
nymea-plugin-wemo,
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginpushbullet.so
|
||||
|
|
@ -32,6 +32,7 @@ PLUGIN_DIRS = \
|
|||
osdomotics \
|
||||
philipshue \
|
||||
plantcare \
|
||||
pushbullet \
|
||||
remotessh \
|
||||
senic \
|
||||
serialportcommander \
|
||||
|
|
|
|||
|
|
@ -0,0 +1,149 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* Copyright (C) 2019 Michael Zanetti <michael.zanetti@nymea.io> *
|
||||
* *
|
||||
* This file is part of nymea. *
|
||||
* *
|
||||
* This library 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 2.1 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library 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 this library; If not, see *
|
||||
* <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/*!
|
||||
\page pushbullet.html
|
||||
\title Pushbullet
|
||||
\brief Plugin to send notifications via Pushbullet.
|
||||
|
||||
\ingroup plugins
|
||||
\ingroup nymea-plugins
|
||||
|
||||
This plugin allows to send notifications via Pushbullet.
|
||||
|
||||
\chapter Usage
|
||||
|
||||
When setting up a device for the pushbullet service, an API token from Pushbullet is required. Please visit
|
||||
https://www.pushbullet.com and create an account if you haven't done so already. After logging in successfully,
|
||||
open the "Settings" tab and in "Account Settings", create a new access token. Use that token as the device
|
||||
parameter when setting up the device.
|
||||
*/
|
||||
|
||||
#include "devicepluginpushbullet.h"
|
||||
#include "plugininfo.h"
|
||||
|
||||
#include "network/networkaccessmanager.h"
|
||||
|
||||
#include <QJsonDocument>
|
||||
|
||||
DevicePluginPushbullet::DevicePluginPushbullet(QObject* parent): DevicePlugin (parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
DevicePluginPushbullet::~DevicePluginPushbullet()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
DeviceManager::DeviceSetupStatus DevicePluginPushbullet::setupDevice(Device *device)
|
||||
{
|
||||
qCDebug(dcPushbullet()) << "Setting up Pushbullet device" << device->name() << device->id().toString();
|
||||
|
||||
QNetworkRequest request(QUrl("https://api.pushbullet.com/v2/users/me"));
|
||||
request.setRawHeader("Access-Token", device->paramValue(pushNotificationDeviceTokenParamTypeId).toByteArray().trimmed());
|
||||
QNetworkReply *reply = hardwareManager()->networkManager()->get(request);
|
||||
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
|
||||
connect(reply, &QNetworkReply::finished, device, [this, reply, device]() {
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
qCWarning(dcPushbullet()) << "Error fetching user profile:" << reply->errorString() << reply->error();
|
||||
emit deviceSetupFinished(device, DeviceManager::DeviceSetupStatusFailure);
|
||||
return;
|
||||
}
|
||||
|
||||
QByteArray data = reply->readAll();
|
||||
|
||||
QJsonParseError error;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
|
||||
if (error.error != QJsonParseError::NoError) {
|
||||
qCWarning(dcPushbullet()) << "Error parsing reply from Pushbullet:" << error.errorString();
|
||||
qCWarning(dcPushbullet()) << qUtf8Printable(data);
|
||||
emit deviceSetupFinished(device, DeviceManager::DeviceSetupStatusFailure);
|
||||
return;
|
||||
}
|
||||
|
||||
QVariantMap replyMap = jsonDoc.toVariant().toMap();
|
||||
if (!replyMap.value("active").toBool()) {
|
||||
qCWarning(dcPushbullet()) << "Pushbullet account seems to be deactivated.";
|
||||
emit deviceSetupFinished(device, DeviceManager::DeviceSetupStatusFailure);
|
||||
return;
|
||||
}
|
||||
|
||||
qCDebug(dcPushbullet()) << "Pushbullet device" << device->name() << device->id().toString() << "setup complete";
|
||||
emit deviceSetupFinished(device, DeviceManager::DeviceSetupStatusSuccess);
|
||||
});
|
||||
|
||||
return DeviceManager::DeviceSetupStatusAsync;
|
||||
}
|
||||
|
||||
DeviceManager::DeviceError DevicePluginPushbullet::executeAction(Device *device, const Action &action)
|
||||
{
|
||||
qCDebug(dcPushbullet()) << "Executing action" << action.actionTypeId() << "for device" << device->name() << device->id().toString();
|
||||
|
||||
QNetworkRequest request(QUrl("https://api.pushbullet.com/v2/pushes"));
|
||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
||||
request.setRawHeader("Access-Token", device->paramValue(pushNotificationDeviceTokenParamTypeId).toByteArray().trimmed());
|
||||
|
||||
QVariantMap params;
|
||||
params.insert("type", "note");
|
||||
params.insert("title", action.param(pushNotificationNotifyActionTitleParamTypeId).value().toString());
|
||||
params.insert("body", action.param(pushNotificationNotifyActionBodyParamTypeId).value().toString());
|
||||
QNetworkReply *reply = hardwareManager()->networkManager()->post(request, QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact));
|
||||
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
|
||||
connect(reply, &QNetworkReply::finished, device, [this, reply, device, action]{
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
qCWarning(dcPushbullet()) << "Push message sending failed for" << device->name() << device->id() << reply->errorString() << reply->error();
|
||||
emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorHardwareNotAvailable);
|
||||
return;
|
||||
}
|
||||
|
||||
QByteArray data = reply->readAll();
|
||||
|
||||
QJsonParseError error;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
|
||||
if (error.error != QJsonParseError::NoError) {
|
||||
qCWarning(dcPushbullet()) << "Error reading reply from Pushbullet for" << device->name() << device->id().toString() << error.errorString();
|
||||
qCWarning(dcPushbullet()) << qUtf8Printable(data);
|
||||
emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorHardwareFailure);
|
||||
return;
|
||||
}
|
||||
|
||||
QVariantMap replyMap = jsonDoc.toVariant().toMap();
|
||||
if (!replyMap.value("active").toBool()) {
|
||||
qCWarning(dcPushbullet()) << "Error sending message. The account seems to be deactivated" << device->name() << device->id().toString();
|
||||
emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorHardwareFailure);
|
||||
return;
|
||||
}
|
||||
|
||||
if (replyMap.value("dismissed", true).toBool()) {
|
||||
qCWarning(dcPushbullet()) << "Error sending message. The message has been dismissed by the server" << device->name() << device->id().toString();
|
||||
emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorHardwareFailure);
|
||||
return;
|
||||
}
|
||||
|
||||
qCDebug(dcPushbullet()) << "Message sent successfully";
|
||||
emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorNoError);
|
||||
});
|
||||
|
||||
return DeviceManager::DeviceErrorAsync;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* *
|
||||
* Copyright (C) 2019 Michael Zanetti <michael.zanetti@nymea.io> *
|
||||
* *
|
||||
* This file is part of nymea. *
|
||||
* *
|
||||
* This library 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 2.1 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library 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 this library; If not, see *
|
||||
* <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef DEVICEPLUGINPUSHBULLET_H
|
||||
#define DEVICEPLUGINPUSHBULLET_H
|
||||
|
||||
#include "plugin/deviceplugin.h"
|
||||
|
||||
class DevicePluginPushbullet: public DevicePlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginpushbullet.json")
|
||||
Q_INTERFACES(DevicePlugin)
|
||||
|
||||
public:
|
||||
explicit DevicePluginPushbullet(QObject *parent = nullptr);
|
||||
~DevicePluginPushbullet() override;
|
||||
|
||||
DeviceManager::DeviceSetupStatus setupDevice(Device *device) override;
|
||||
DeviceManager::DeviceError executeAction(Device *device, const Action &action) override;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"displayName": "Pushbullet",
|
||||
"name": "Pushbullet",
|
||||
"id": "46986575-0e62-483d-b5a8-76ac356fcce7",
|
||||
"vendors": [
|
||||
{
|
||||
"displayName": "Pushbullet",
|
||||
"name": "pushbullet",
|
||||
"id": "b5e1896e-b7fa-4c19-ac2b-10bd489f8302",
|
||||
"deviceClasses": [
|
||||
{
|
||||
"id": "56029c6d-777b-4889-9e17-29f813d34da4",
|
||||
"name": "pushNotification",
|
||||
"displayName": "Push Notification",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["notifications"],
|
||||
"paramTypes": [
|
||||
{
|
||||
"id": "1f37ce22-50b8-4183-8b74-557fdb2d3076",
|
||||
"name": "token",
|
||||
"displayName": "access token",
|
||||
"type": "QString"
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
{
|
||||
"id": "1378480f-6583-44e2-8fdd-22afe979a9a3",
|
||||
"name": "notify",
|
||||
"displayName": "notify",
|
||||
"paramTypes": [
|
||||
{
|
||||
"id": "ceed6e66-0dcb-4405-832d-e9091f882acc",
|
||||
"name": "title",
|
||||
"displayName": "title",
|
||||
"type": "QString",
|
||||
"inputType": "TextLine",
|
||||
"defaultValue": ""
|
||||
},
|
||||
{
|
||||
"id": "f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2",
|
||||
"name": "body",
|
||||
"displayName": "body",
|
||||
"type": "QString",
|
||||
"inputType": "TextArea",
|
||||
"defaultValue": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
include(../plugins.pri)
|
||||
|
||||
TARGET = $$qtLibraryTarget(nymea_devicepluginpushbullet)
|
||||
|
||||
QT+= network
|
||||
|
||||
SOURCES += \
|
||||
devicepluginpushbullet.cpp
|
||||
|
||||
HEADERS += \
|
||||
devicepluginpushbullet.h
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="cs">
|
||||
<context>
|
||||
<name>Pushbullet</name>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="31"/>
|
||||
<location filename="../plugininfo.h" line="34"/>
|
||||
<source>Pushbullet</source>
|
||||
<extracomment>The name of the plugin Pushbullet (46986575-0e62-483d-b5a8-76ac356fcce7)
|
||||
----------
|
||||
The name of the vendor (b5e1896e-b7fa-4c19-ac2b-10bd489f8302)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="37"/>
|
||||
<source>Push Notification</source>
|
||||
<extracomment>The name of the DeviceClass (56029c6d-777b-4889-9e17-29f813d34da4)</extracomment>
|
||||
<translation>Push Notification</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="40"/>
|
||||
<source>access token</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, Type: device, ID: 1f37ce22-50b8-4183-8b74-557fdb2d3076)</extracomment>
|
||||
<translation>access token</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="43"/>
|
||||
<source>notify</source>
|
||||
<extracomment>The name of the ActionType 1378480f-6583-44e2-8fdd-22afe979a9a3 of deviceClass pushNotification</extracomment>
|
||||
<translation>oznámit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="46"/>
|
||||
<source>title</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: ceed6e66-0dcb-4405-832d-e9091f882acc)</extracomment>
|
||||
<translation>název</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="49"/>
|
||||
<source>body</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2)</extracomment>
|
||||
<translation>tělo</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="da">
|
||||
<context>
|
||||
<name>Pushbullet</name>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="31"/>
|
||||
<location filename="../plugininfo.h" line="34"/>
|
||||
<source>Pushbullet</source>
|
||||
<extracomment>The name of the plugin Pushbullet (46986575-0e62-483d-b5a8-76ac356fcce7)
|
||||
----------
|
||||
The name of the vendor (b5e1896e-b7fa-4c19-ac2b-10bd489f8302)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="37"/>
|
||||
<source>Push Notification</source>
|
||||
<extracomment>The name of the DeviceClass (56029c6d-777b-4889-9e17-29f813d34da4)</extracomment>
|
||||
<translation>Pushmeddelelser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="40"/>
|
||||
<source>access token</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, Type: device, ID: 1f37ce22-50b8-4183-8b74-557fdb2d3076)</extracomment>
|
||||
<translation>adgangskode</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="43"/>
|
||||
<source>notify</source>
|
||||
<extracomment>The name of the ActionType 1378480f-6583-44e2-8fdd-22afe979a9a3 of deviceClass pushNotification</extracomment>
|
||||
<translation>informér</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="46"/>
|
||||
<source>title</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: ceed6e66-0dcb-4405-832d-e9091f882acc)</extracomment>
|
||||
<translation>titel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="49"/>
|
||||
<source>body</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2)</extracomment>
|
||||
<translation>instans</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="de_DE">
|
||||
<context>
|
||||
<name>Pushbullet</name>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="31"/>
|
||||
<location filename="../plugininfo.h" line="34"/>
|
||||
<source>Pushbullet</source>
|
||||
<extracomment>The name of the plugin Pushbullet (46986575-0e62-483d-b5a8-76ac356fcce7)
|
||||
----------
|
||||
The name of the vendor (b5e1896e-b7fa-4c19-ac2b-10bd489f8302)</extracomment>
|
||||
<translation>Pushbullet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="37"/>
|
||||
<source>Push Notification</source>
|
||||
<extracomment>The name of the DeviceClass (56029c6d-777b-4889-9e17-29f813d34da4)</extracomment>
|
||||
<translation>Pushbullet Benachrichtigung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="40"/>
|
||||
<source>access token</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, Type: device, ID: 1f37ce22-50b8-4183-8b74-557fdb2d3076)</extracomment>
|
||||
<translation>Zugangs Token</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="43"/>
|
||||
<source>notify</source>
|
||||
<extracomment>The name of the ActionType 1378480f-6583-44e2-8fdd-22afe979a9a3 of deviceClass pushNotification</extracomment>
|
||||
<translation>Benachrichtigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="46"/>
|
||||
<source>title</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: ceed6e66-0dcb-4405-832d-e9091f882acc)</extracomment>
|
||||
<translation>Titel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="49"/>
|
||||
<source>body</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2)</extracomment>
|
||||
<translation>Nachrichten Inhalt</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
<context>
|
||||
<name>Pushbullet</name>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="31"/>
|
||||
<location filename="../plugininfo.h" line="34"/>
|
||||
<source>Pushbullet</source>
|
||||
<extracomment>The name of the plugin Pushbullet (46986575-0e62-483d-b5a8-76ac356fcce7)
|
||||
----------
|
||||
The name of the vendor (b5e1896e-b7fa-4c19-ac2b-10bd489f8302)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="37"/>
|
||||
<source>Push Notification</source>
|
||||
<extracomment>The name of the DeviceClass (56029c6d-777b-4889-9e17-29f813d34da4)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="40"/>
|
||||
<source>access token</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, Type: device, ID: 1f37ce22-50b8-4183-8b74-557fdb2d3076)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="43"/>
|
||||
<source>notify</source>
|
||||
<extracomment>The name of the ActionType 1378480f-6583-44e2-8fdd-22afe979a9a3 of deviceClass pushNotification</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="46"/>
|
||||
<source>title</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: ceed6e66-0dcb-4405-832d-e9091f882acc)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="49"/>
|
||||
<source>body</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="es">
|
||||
<context>
|
||||
<name>Pushbullet</name>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="31"/>
|
||||
<location filename="../plugininfo.h" line="34"/>
|
||||
<source>Pushbullet</source>
|
||||
<extracomment>The name of the plugin Pushbullet (46986575-0e62-483d-b5a8-76ac356fcce7)
|
||||
----------
|
||||
The name of the vendor (b5e1896e-b7fa-4c19-ac2b-10bd489f8302)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="37"/>
|
||||
<source>Push Notification</source>
|
||||
<extracomment>The name of the DeviceClass (56029c6d-777b-4889-9e17-29f813d34da4)</extracomment>
|
||||
<translation>Notificación push</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="40"/>
|
||||
<source>access token</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, Type: device, ID: 1f37ce22-50b8-4183-8b74-557fdb2d3076)</extracomment>
|
||||
<translation>símbolo de acceso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="43"/>
|
||||
<source>notify</source>
|
||||
<extracomment>The name of the ActionType 1378480f-6583-44e2-8fdd-22afe979a9a3 of deviceClass pushNotification</extracomment>
|
||||
<translation>notificar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="46"/>
|
||||
<source>title</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: ceed6e66-0dcb-4405-832d-e9091f882acc)</extracomment>
|
||||
<translation>título</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="49"/>
|
||||
<source>body</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2)</extracomment>
|
||||
<translation>cuerpo</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="fr">
|
||||
<context>
|
||||
<name>Pushbullet</name>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="31"/>
|
||||
<location filename="../plugininfo.h" line="34"/>
|
||||
<source>Pushbullet</source>
|
||||
<extracomment>The name of the plugin Pushbullet (46986575-0e62-483d-b5a8-76ac356fcce7)
|
||||
----------
|
||||
The name of the vendor (b5e1896e-b7fa-4c19-ac2b-10bd489f8302)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="37"/>
|
||||
<source>Push Notification</source>
|
||||
<extracomment>The name of the DeviceClass (56029c6d-777b-4889-9e17-29f813d34da4)</extracomment>
|
||||
<translation>notification pushbullet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="40"/>
|
||||
<source>access token</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, Type: device, ID: 1f37ce22-50b8-4183-8b74-557fdb2d3076)</extracomment>
|
||||
<translation>jeton pour accés</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="43"/>
|
||||
<source>notify</source>
|
||||
<extracomment>The name of the ActionType 1378480f-6583-44e2-8fdd-22afe979a9a3 of deviceClass pushNotification</extracomment>
|
||||
<translation>notifier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="46"/>
|
||||
<source>title</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: ceed6e66-0dcb-4405-832d-e9091f882acc)</extracomment>
|
||||
<translation>titre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="49"/>
|
||||
<source>body</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2)</extracomment>
|
||||
<translation>Contenu des informations</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="it">
|
||||
<context>
|
||||
<name>Pushbullet</name>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="31"/>
|
||||
<location filename="../plugininfo.h" line="34"/>
|
||||
<source>Pushbullet</source>
|
||||
<extracomment>The name of the plugin Pushbullet (46986575-0e62-483d-b5a8-76ac356fcce7)
|
||||
----------
|
||||
The name of the vendor (b5e1896e-b7fa-4c19-ac2b-10bd489f8302)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="37"/>
|
||||
<source>Push Notification</source>
|
||||
<extracomment>The name of the DeviceClass (56029c6d-777b-4889-9e17-29f813d34da4)</extracomment>
|
||||
<translation>Notifica push</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="40"/>
|
||||
<source>access token</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, Type: device, ID: 1f37ce22-50b8-4183-8b74-557fdb2d3076)</extracomment>
|
||||
<translation>token d'accesso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="43"/>
|
||||
<source>notify</source>
|
||||
<extracomment>The name of the ActionType 1378480f-6583-44e2-8fdd-22afe979a9a3 of deviceClass pushNotification</extracomment>
|
||||
<translation>notifica</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="46"/>
|
||||
<source>title</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: ceed6e66-0dcb-4405-832d-e9091f882acc)</extracomment>
|
||||
<translation>titolo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="49"/>
|
||||
<source>body</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2)</extracomment>
|
||||
<translation>corpo</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="nl">
|
||||
<context>
|
||||
<name>Pushbullet</name>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="31"/>
|
||||
<location filename="../plugininfo.h" line="34"/>
|
||||
<source>Pushbullet</source>
|
||||
<extracomment>The name of the plugin Pushbullet (46986575-0e62-483d-b5a8-76ac356fcce7)
|
||||
----------
|
||||
The name of the vendor (b5e1896e-b7fa-4c19-ac2b-10bd489f8302)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="37"/>
|
||||
<source>Push Notification</source>
|
||||
<extracomment>The name of the DeviceClass (56029c6d-777b-4889-9e17-29f813d34da4)</extracomment>
|
||||
<translation>push-melding</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="40"/>
|
||||
<source>access token</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, Type: device, ID: 1f37ce22-50b8-4183-8b74-557fdb2d3076)</extracomment>
|
||||
<translation>push-melding</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="43"/>
|
||||
<source>notify</source>
|
||||
<extracomment>The name of the ActionType 1378480f-6583-44e2-8fdd-22afe979a9a3 of deviceClass pushNotification</extracomment>
|
||||
<translation>melden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="46"/>
|
||||
<source>title</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: ceed6e66-0dcb-4405-832d-e9091f882acc)</extracomment>
|
||||
<translation>titel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="49"/>
|
||||
<source>body</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2)</extracomment>
|
||||
<translation>body</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="pt">
|
||||
<context>
|
||||
<name>Pushbullet</name>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="31"/>
|
||||
<location filename="../plugininfo.h" line="34"/>
|
||||
<source>Pushbullet</source>
|
||||
<extracomment>The name of the plugin Pushbullet (46986575-0e62-483d-b5a8-76ac356fcce7)
|
||||
----------
|
||||
The name of the vendor (b5e1896e-b7fa-4c19-ac2b-10bd489f8302)</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="37"/>
|
||||
<source>Push Notification</source>
|
||||
<extracomment>The name of the DeviceClass (56029c6d-777b-4889-9e17-29f813d34da4)</extracomment>
|
||||
<translation>Notificação Push</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="40"/>
|
||||
<source>access token</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, Type: device, ID: 1f37ce22-50b8-4183-8b74-557fdb2d3076)</extracomment>
|
||||
<translation>token de acesso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="43"/>
|
||||
<source>notify</source>
|
||||
<extracomment>The name of the ActionType 1378480f-6583-44e2-8fdd-22afe979a9a3 of deviceClass pushNotification</extracomment>
|
||||
<translation>notificar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="46"/>
|
||||
<source>title</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: ceed6e66-0dcb-4405-832d-e9091f882acc)</extracomment>
|
||||
<translation>título</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../plugininfo.h" line="49"/>
|
||||
<source>body</source>
|
||||
<extracomment>The name of the ParamType (DeviceClass: pushNotification, ActionType: notify, ID: f72cc56c-4d0b-4b96-ab9b-ff3ca92b00e2)</extracomment>
|
||||
<translation>corpo</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
Loading…
Reference in New Issue