added coin market cap
This commit is contained in:
parent
2ac80c0414
commit
182c2a0004
0
coinmarketcap/README.md
Normal file
0
coinmarketcap/README.md
Normal file
12
coinmarketcap/coinmarketcap.pro
Normal file
12
coinmarketcap/coinmarketcap.pro
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
include(../plugins.pri)
|
||||||
|
|
||||||
|
QT += network
|
||||||
|
|
||||||
|
TARGET = $$qtLibraryTarget(nymea_deviceplugincoinmarketcap)
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
deviceplugincoinmarketcap.cpp \
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
deviceplugincoinmarketcap.h \
|
||||||
|
|
||||||
86
coinmarketcap/compile_commands.json
Normal file
86
coinmarketcap/compile_commands.json
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"clang++",
|
||||||
|
"-c",
|
||||||
|
"-m64",
|
||||||
|
"-target",
|
||||||
|
"x86_64-linux-gnu",
|
||||||
|
"-std=c++11",
|
||||||
|
"-fcxx-exceptions",
|
||||||
|
"-fexceptions",
|
||||||
|
"-DQT_QML_DEBUG",
|
||||||
|
"-DQT_PLUGIN",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_NETWORK_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-DBOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING=(39, 1, true, \"T = \")",
|
||||||
|
"-fPIC",
|
||||||
|
"-I",
|
||||||
|
"/home/nymea/Developer/nymea-coinmarketcapplugin",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/nymea",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/x86_64-linux-gnu/qt5",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/x86_64-linux-gnu/qt5/QtGui",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/x86_64-linux-gnu/qt5/QtNetwork",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/x86_64-linux-gnu/qt5/QtCore",
|
||||||
|
"-I",
|
||||||
|
"/home/nymea/Developer/build-coinmarketcap-Desktop-Debug",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/libdrm",
|
||||||
|
"-I",
|
||||||
|
"/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++",
|
||||||
|
"-x",
|
||||||
|
"c++",
|
||||||
|
"/home/nymea/Developer/nymea-coinmarketcapplugin/deviceplugincoinmarketcap.cpp"
|
||||||
|
],
|
||||||
|
"directory": "/home/nymea/Developer/build-coinmarketcap-Desktop-Debug",
|
||||||
|
"file": "/home/nymea/Developer/nymea-coinmarketcapplugin/deviceplugincoinmarketcap.cpp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
"clang",
|
||||||
|
"-c",
|
||||||
|
"-m64",
|
||||||
|
"-target",
|
||||||
|
"x86_64-linux-gnu",
|
||||||
|
"-std=c++11",
|
||||||
|
"-fcxx-exceptions",
|
||||||
|
"-fexceptions",
|
||||||
|
"-DQT_QML_DEBUG",
|
||||||
|
"-DQT_PLUGIN",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_NETWORK_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-DBOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING=(39, 1, true, \"T = \")",
|
||||||
|
"-fPIC",
|
||||||
|
"-I",
|
||||||
|
"/home/nymea/Developer/nymea-coinmarketcapplugin",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/nymea",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/x86_64-linux-gnu/qt5",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/x86_64-linux-gnu/qt5/QtGui",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/x86_64-linux-gnu/qt5/QtNetwork",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/x86_64-linux-gnu/qt5/QtCore",
|
||||||
|
"-I",
|
||||||
|
"/home/nymea/Developer/build-coinmarketcap-Desktop-Debug",
|
||||||
|
"-I",
|
||||||
|
"/usr/include/libdrm",
|
||||||
|
"-I",
|
||||||
|
"/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++",
|
||||||
|
"-x",
|
||||||
|
"c++-header",
|
||||||
|
"/home/nymea/Developer/nymea-coinmarketcapplugin/deviceplugincoinmarketcap.h"
|
||||||
|
],
|
||||||
|
"directory": "/home/nymea/Developer/build-coinmarketcap-Desktop-Debug",
|
||||||
|
"file": "/home/nymea/Developer/nymea-coinmarketcapplugin/deviceplugincoinmarketcap.h"
|
||||||
|
}
|
||||||
|
]
|
||||||
166
coinmarketcap/deviceplugincoinmarketcap.cpp
Normal file
166
coinmarketcap/deviceplugincoinmarketcap.cpp
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* *
|
||||||
|
* Copyright (C) 2019 Bernhard Trinnes <bernhard.trinnes@nymea.io *
|
||||||
|
* *
|
||||||
|
* This file is part of nymea. *
|
||||||
|
* *
|
||||||
|
* Guh is free software: you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation, version 2 of the License. *
|
||||||
|
* *
|
||||||
|
* Guh 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 General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with guh. If not, see <http://www.gnu.org/licenses/>. *
|
||||||
|
* *
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
#include "deviceplugincoinmarketcap.h"
|
||||||
|
#include "network/networkaccessmanager.h"
|
||||||
|
#include "plugininfo.h"
|
||||||
|
|
||||||
|
#include <QJsonDocument>
|
||||||
|
|
||||||
|
DevicePluginCoinMarketCap::DevicePluginCoinMarketCap()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
DeviceManager::DeviceSetupStatus DevicePluginCoinMarketCap::setupDevice(Device *device)
|
||||||
|
{
|
||||||
|
if(!m_pluginTimer) {
|
||||||
|
m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(60);
|
||||||
|
connect(m_pluginTimer, &PluginTimer::timeout, this, &DevicePluginCoinMarketCap::onPluginTimer);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (device->deviceClassId() == currentPricesDeviceClassId) {
|
||||||
|
getPriceCall(device);
|
||||||
|
return DeviceManager::DeviceSetupStatusSuccess;
|
||||||
|
}
|
||||||
|
return DeviceManager::DeviceSetupStatusFailure;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DevicePluginCoinMarketCap::deviceRemoved(Device *device)
|
||||||
|
{
|
||||||
|
while (m_httpRequests.values().contains(device)) {
|
||||||
|
QNetworkReply *reply = m_httpRequests.key(device);
|
||||||
|
m_httpRequests.remove(reply);
|
||||||
|
reply->deleteLater();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (myDevices().empty()) {
|
||||||
|
hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DevicePluginCoinMarketCap::onPluginTimer()
|
||||||
|
{
|
||||||
|
foreach (Device *device, myDevices()) {
|
||||||
|
if (device->deviceClassId() == currentPricesDeviceClassId) {
|
||||||
|
getPriceCall(device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DevicePluginCoinMarketCap::onPriceCallFinished()
|
||||||
|
{
|
||||||
|
QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
|
||||||
|
qCDebug(dcCoinMarketCap()) << "GET reply finished";
|
||||||
|
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||||
|
|
||||||
|
if (!m_httpRequests.contains(reply)) {
|
||||||
|
reply->deleteLater();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Device *device = m_httpRequests.take(reply);
|
||||||
|
|
||||||
|
// Check HTTP status code
|
||||||
|
if (status != 200 || reply->error() != QNetworkReply::NoError) {
|
||||||
|
qCWarning(dcCoinMarketCap()) << "Request error:" << status << reply->errorString();
|
||||||
|
device->setStateValue(currentPricesConnectedStateTypeId, false);
|
||||||
|
}
|
||||||
|
reply->deleteLater();
|
||||||
|
|
||||||
|
// check JSON file
|
||||||
|
QJsonParseError error;
|
||||||
|
QJsonDocument jsonResponse = QJsonDocument::fromJson(reply->readAll(), &error);
|
||||||
|
qDebug(dcCoinMarketCap()) << jsonResponse;
|
||||||
|
if (error.error != QJsonParseError::NoError) {
|
||||||
|
qCWarning(dcCoinMarketCap()) << "Update reply JSON error:" << error.errorString();
|
||||||
|
reply->deleteLater();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariantList list = jsonResponse.toVariant().toList();
|
||||||
|
|
||||||
|
foreach (QVariant element, list) {
|
||||||
|
QVariantMap elementMap = element.toMap();
|
||||||
|
device->setStateValue(currentPricesConnectedStateTypeId, true);
|
||||||
|
double price;
|
||||||
|
|
||||||
|
if (elementMap.value("id").toString() == "bitcoin") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
qDebug(dcCoinMarketCap()) << "Bitcoin Price in" << QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower() << price;
|
||||||
|
device->setStateValue(currentPricesBtcStateTypeId, price);
|
||||||
|
|
||||||
|
} else if (elementMap.value("id").toString() == "ethereum") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
qDebug(dcCoinMarketCap()) << "Etherium Price in" << QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower() << price;
|
||||||
|
device->setStateValue(currentPricesEthStateTypeId, price);
|
||||||
|
|
||||||
|
} else if (elementMap.value("id").toString() == "ripple") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
qDebug(dcCoinMarketCap()) << "Ripple Price in" << QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower() << price;
|
||||||
|
device->setStateValue(currentPricesXrpStateTypeId, price);
|
||||||
|
|
||||||
|
} else if (elementMap.value("id").toString() == "bitcoin-cash") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
qDebug(dcCoinMarketCap()) << "Bitcoin-cash Price in" << QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower() << price;
|
||||||
|
device->setStateValue(currentPricesBchStateTypeId, price);
|
||||||
|
|
||||||
|
} else if (elementMap.value("id").toString() == "litecoin") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
qDebug(dcCoinMarketCap()) << "Litecoin Price in" << QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower() << price;
|
||||||
|
device->setStateValue(currentPricesLtcStateTypeId, price);
|
||||||
|
|
||||||
|
} else if (elementMap.value("id").toString() == "nem") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
qDebug(dcCoinMarketCap()) << "Nem Price in" << QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower() << price;
|
||||||
|
device->setStateValue(currentPricesXemStateTypeId, price);
|
||||||
|
|
||||||
|
} else if (elementMap.value("id").toString() == "ethereum-classic") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
qDebug(dcCoinMarketCap()) << "Ethereum Classic Price in" << QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower() << price;
|
||||||
|
device->setStateValue(currentPricesEtcStateTypeId, price);
|
||||||
|
|
||||||
|
} else if (elementMap.value("id").toString() == "dash") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
device->setStateValue(currentPricesDashStateTypeId, price);
|
||||||
|
|
||||||
|
} else if (elementMap.value("id").toString() == "iota") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
device->setStateValue(currentPricesMiotaStateTypeId, price);
|
||||||
|
|
||||||
|
} else if (elementMap.value("id").toString() == "neo") {
|
||||||
|
price = elementMap.value(QString("price_%1").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower())).toDouble();
|
||||||
|
device->setStateValue(currentPricesAnsStateTypeId, price);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DevicePluginCoinMarketCap::getPriceCall(Device *device)
|
||||||
|
{
|
||||||
|
QUrl url;
|
||||||
|
url.setUrl(QString("https://api.coinmarketcap.com/v1/ticker/?convert=%1&limit=30").arg(QString(device->paramValue(currentPricesDeviceFiatParamTypeId).toString()).toLower()));
|
||||||
|
QNetworkRequest request;
|
||||||
|
request.setUrl(url);
|
||||||
|
request.setRawHeader("User-Agent", "nymea 1.0");
|
||||||
|
|
||||||
|
QNetworkReply *reply = hardwareManager()->networkManager()->get(request);
|
||||||
|
connect(reply, &QNetworkReply::finished, this, &DevicePluginCoinMarketCap::onPriceCallFinished);
|
||||||
|
|
||||||
|
m_httpRequests.insert(reply, device);
|
||||||
|
}
|
||||||
57
coinmarketcap/deviceplugincoinmarketcap.h
Normal file
57
coinmarketcap/deviceplugincoinmarketcap.h
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
* *
|
||||||
|
* Copyright (C) 2019 Bernhard Trinnes <bernhard.trinnes@nymea.io *
|
||||||
|
* *
|
||||||
|
* This file is part of nymea. *
|
||||||
|
* *
|
||||||
|
* Guh is free software: you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation, version 2 of the License. *
|
||||||
|
* *
|
||||||
|
* Guh 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 General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with guh. If not, see <http://www.gnu.org/licenses/>. *
|
||||||
|
* *
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
#ifndef DEVICEPLUGINCOINMARKETCAP_H
|
||||||
|
#define DEVICEPLUGINCOINMARKETCAP_H
|
||||||
|
|
||||||
|
#include "plugin/deviceplugin.h"
|
||||||
|
#include "devicemanager.h"
|
||||||
|
#include "plugintimer.h"
|
||||||
|
|
||||||
|
#include <QNetworkReply>
|
||||||
|
#include <QHostInfo>
|
||||||
|
|
||||||
|
class DevicePluginCoinMarketCap : public DevicePlugin
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "deviceplugincoinmarketcap.json")
|
||||||
|
Q_INTERFACES(DevicePlugin)
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit DevicePluginCoinMarketCap();
|
||||||
|
|
||||||
|
DeviceManager::DeviceSetupStatus setupDevice(Device *device) override;
|
||||||
|
void deviceRemoved(Device *device) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
PluginTimer *m_pluginTimer = nullptr;
|
||||||
|
|
||||||
|
QHash<QUrl, Device *> m_priceRequests;
|
||||||
|
QHash<QNetworkReply *, Device *> m_httpRequests;
|
||||||
|
|
||||||
|
void getPriceCall(Device *device);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void onPluginTimer();
|
||||||
|
void onPriceCallFinished();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DEVICEPLUGINCOINMARKETCAP_H
|
||||||
140
coinmarketcap/deviceplugincoinmarketcap.json
Normal file
140
coinmarketcap/deviceplugincoinmarketcap.json
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
{
|
||||||
|
"displayName": "Coin market cap",
|
||||||
|
"name": "coinMarketCap",
|
||||||
|
"id": "532757cf-fc6f-4ce5-ae5b-e6f5bdb67fb4",
|
||||||
|
"vendors": [
|
||||||
|
{
|
||||||
|
"displayName": "Coin Market Cap",
|
||||||
|
"name": "coinMarketCap",
|
||||||
|
"id": "28eeecbd-4178-45aa-81a6-fd95851444fd",
|
||||||
|
"deviceClasses": [
|
||||||
|
{
|
||||||
|
"id": "f5b794f7-7e2a-4409-8445-23ead80f2a8f",
|
||||||
|
"name": "currentPrices",
|
||||||
|
"displayName": "Crypto Prices",
|
||||||
|
"createMethods": ["user"],
|
||||||
|
"interfaces": ["connectable"],
|
||||||
|
"paramTypes": [
|
||||||
|
{
|
||||||
|
"id": "92747d75-d18a-4915-bd48-0edd5cc5f19a",
|
||||||
|
"name": "fiat",
|
||||||
|
"displayName": "Fiat Currency",
|
||||||
|
"type": "QString",
|
||||||
|
"allowedValues": [
|
||||||
|
"USD",
|
||||||
|
"AUD",
|
||||||
|
"BRL",
|
||||||
|
"CAD",
|
||||||
|
"CHF",
|
||||||
|
"CNY",
|
||||||
|
"EUR",
|
||||||
|
"GBP",
|
||||||
|
"HKD",
|
||||||
|
"IDR",
|
||||||
|
"INR",
|
||||||
|
"JPY",
|
||||||
|
"KRW",
|
||||||
|
"MXN",
|
||||||
|
"RUB"
|
||||||
|
],
|
||||||
|
"defaultValue": "EUR"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateTypes":[
|
||||||
|
{
|
||||||
|
"id": "19f079f0-1654-44c3-ab10-e7d7f9742e09",
|
||||||
|
"name": "connected",
|
||||||
|
"displayName": "Connected",
|
||||||
|
"type": "bool",
|
||||||
|
"defaultValue": false,
|
||||||
|
"displayNameEvent": "Connection status changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "721c91c8-8eb1-402e-8bfc-8e2d496be032",
|
||||||
|
"name": "btc",
|
||||||
|
"displayName": "Bitcoin",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "bitcoin value changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "5c58bb9f-dcdf-47c9-a0b7-f0ffc968f824",
|
||||||
|
"name": "eth",
|
||||||
|
"displayName": "Ethereum",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "ethereum value changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "d8517cf8-2ebd-4be3-8573-00b595cc2ab5",
|
||||||
|
"name": "xrp",
|
||||||
|
"displayName": "Ripple",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "ripple value changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "cc5b4fe5-aa43-43b3-952f-90c0e3e20740",
|
||||||
|
"name": "bch",
|
||||||
|
"displayName": "Bitcoin Cash",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "bitcoin cash value changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "f591f699-ae68-4f64-a221-254f836a31d3",
|
||||||
|
"name": "ltc",
|
||||||
|
"displayName": "Litecoin",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "Litecoin value changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "adecda44-fade-4dba-8b41-cfb07579dea9",
|
||||||
|
"name": "xem",
|
||||||
|
"displayName": "NEM",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "NEM cash value changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "fc9a61b7-c3df-4f13-ba31-d7743f3d2dc2",
|
||||||
|
"name": "etc",
|
||||||
|
"displayName": "Ethereum Classic",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "etherium classic value changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "0b602f14-1596-4091-a0ab-6c5efa087a3f",
|
||||||
|
"name": "dash",
|
||||||
|
"displayName": "Dash",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "Dash value changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2c6e341f-5940-40bb-b495-89c3ecaaf9e7",
|
||||||
|
"name": "miota",
|
||||||
|
"displayName": "IOTA",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "IOTA value changed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "7583c720-1786-4c32-9552-e731578ff113",
|
||||||
|
"name": "ans",
|
||||||
|
"displayName": "NEO",
|
||||||
|
"type": "double",
|
||||||
|
"defaultValue": 0.00,
|
||||||
|
"displayNameEvent": "NEO value changed"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
58
coinmarketcap/plugins.pri
Normal file
58
coinmarketcap/plugins.pri
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
TEMPLATE = lib
|
||||||
|
CONFIG += plugin
|
||||||
|
|
||||||
|
QMAKE_CXXFLAGS += -Werror -std=c++11 -g
|
||||||
|
QMAKE_LFLAGS += -std=c++11
|
||||||
|
|
||||||
|
CONFIG += link_pkgconfig
|
||||||
|
PKGCONFIG += nymea
|
||||||
|
|
||||||
|
HEADERS += $${OUT_PWD}/plugininfo.h \
|
||||||
|
$${OUT_PWD}/extern-plugininfo.h
|
||||||
|
|
||||||
|
# Check if this is a snap build
|
||||||
|
snappy{
|
||||||
|
INCLUDEPATH+=$$(SNAPCRAFT_STAGE)/usr/include/nymea
|
||||||
|
}
|
||||||
|
|
||||||
|
# Make the device plugin json file visible in the Qt Creator
|
||||||
|
OTHER_FILES += $$PWD/deviceplugin"$$TARGET".json
|
||||||
|
|
||||||
|
# NOTE: if the code includes "plugininfo.h", it would fail if we only give it a compiler for $$OUT_PWD/plugininfo.h
|
||||||
|
# Let's add a dummy target with the plugininfo.h file without any path to allow the developer to just include it like that.
|
||||||
|
|
||||||
|
# Create plugininfo file
|
||||||
|
plugininfo.target = $$OUT_PWD/plugininfo.h
|
||||||
|
plugininfo_dummy.target = plugininfo.h
|
||||||
|
plugininfo.depends = FORCE
|
||||||
|
plugininfo.commands = nymea-generateplugininfo --filetype i --jsonfile $$PWD/deviceplugin"$$TARGET".json --output plugininfo.h --builddir $$OUT_PWD
|
||||||
|
plugininfo_dummy.commands = $$plugininfo.commands
|
||||||
|
QMAKE_EXTRA_TARGETS += plugininfo plugininfo_dummy
|
||||||
|
|
||||||
|
# Create extern-plugininfo file
|
||||||
|
extern_plugininfo.target = $$OUT_PWD/extern-plugininfo.h
|
||||||
|
extern_plugininfo_dummy.target = extern-plugininfo.h
|
||||||
|
extern_plugininfo.depends = FORCE
|
||||||
|
extern_plugininfo.commands = nymea-generateplugininfo --filetype e --jsonfile $$PWD/deviceplugin"$$TARGET".json --output extern-plugininfo.h --builddir $$OUT_PWD
|
||||||
|
extern_plugininfo_dummy.commands = $$extern_plugininfo.commands
|
||||||
|
QMAKE_EXTRA_TARGETS += extern_plugininfo extern_plugininfo_dummy
|
||||||
|
|
||||||
|
# Clean up autogenerated plugin info files
|
||||||
|
plugininfo_clean.commands = rm -fv $$OUT_PWD/plugininfo.h $$OUT_PWD/extern-plugininfo.h
|
||||||
|
clean.depends = plugininfo_clean
|
||||||
|
QMAKE_EXTRA_TARGETS += clean plugininfo_clean
|
||||||
|
|
||||||
|
# Install translation files
|
||||||
|
TRANSLATIONS *= $$files($${PWD}/translations/*ts, true)
|
||||||
|
lupdate.depends = FORCE
|
||||||
|
lupdate.depends += plugininfo.h
|
||||||
|
lupdate.commands = lupdate -recursive -no-obsolete $$PWD/"$$TARGET".pro;
|
||||||
|
QMAKE_EXTRA_TARGETS += lupdate
|
||||||
|
|
||||||
|
translations.path = /usr/share/nymea/translations
|
||||||
|
translations.files = $$[QT_SOURCE_TREE]/translations/*.qm
|
||||||
|
TRANSLATIONS += $$files($$[QT_SOURCE_TREE]/translations/*.ts, true)
|
||||||
|
|
||||||
|
# Install plugin
|
||||||
|
target.path = $$[QT_INSTALL_LIBS]/nymea/plugins/
|
||||||
|
INSTALLS += target translations
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
</TS>
|
||||||
175
coinmarketcap/translations/de_DE.ts
Normal file
175
coinmarketcap/translations/de_DE.ts
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1" language="de_DE">
|
||||||
|
<context>
|
||||||
|
<name>CoinMarketCap</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="63"/>
|
||||||
|
<source>coin market cap</source>
|
||||||
|
<extracomment>The name of the plugin coin market cap (532757cf-fc6f-4ce5-ae5b-e6f5bdb67fb4)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="66"/>
|
||||||
|
<source>Server Url</source>
|
||||||
|
<extracomment>The name of the paramType (45e920d7-804c-4242-8435-ba4d2e6d06f7) of coin market cap</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="69"/>
|
||||||
|
<source>Coin Market Cap</source>
|
||||||
|
<extracomment>The name of the vendor (28eeecbd-4178-45aa-81a6-fd95851444fd)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="72"/>
|
||||||
|
<source>Current Prices</source>
|
||||||
|
<extracomment>The name of the DeviceClass (f5b794f7-7e2a-4409-8445-23ead80f2a8f)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="75"/>
|
||||||
|
<source>Fiat Currency</source>
|
||||||
|
<extracomment>The name of the paramType (92747d75-d18a-4915-bd48-0edd5cc5f19a) of Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="78"/>
|
||||||
|
<source>reachable status changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (19f079f0-1654-44c3-ab10-e7d7f9742e09)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="81"/>
|
||||||
|
<source>Server Reachable</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (19f079f0-1654-44c3-ab10-e7d7f9742e09) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="84"/>
|
||||||
|
<source>bitcoin value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (721c91c8-8eb1-402e-8bfc-8e2d496be032)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="87"/>
|
||||||
|
<source>Bitcoin</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (721c91c8-8eb1-402e-8bfc-8e2d496be032) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="90"/>
|
||||||
|
<source>ethereum value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (5c58bb9f-dcdf-47c9-a0b7-f0ffc968f824)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="93"/>
|
||||||
|
<source>Ethereum</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (5c58bb9f-dcdf-47c9-a0b7-f0ffc968f824) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="96"/>
|
||||||
|
<source>ripple value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (d8517cf8-2ebd-4be3-8573-00b595cc2ab5)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="99"/>
|
||||||
|
<source>Ripple</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (d8517cf8-2ebd-4be3-8573-00b595cc2ab5) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="102"/>
|
||||||
|
<source>bitcoin cash value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (cc5b4fe5-aa43-43b3-952f-90c0e3e20740)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="105"/>
|
||||||
|
<source>Bitcoin Cash</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (cc5b4fe5-aa43-43b3-952f-90c0e3e20740) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="108"/>
|
||||||
|
<source>Litecoin value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (f591f699-ae68-4f64-a221-254f836a31d3)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="111"/>
|
||||||
|
<source>Litecoin</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (f591f699-ae68-4f64-a221-254f836a31d3) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="114"/>
|
||||||
|
<source>NEM cash value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (adecda44-fade-4dba-8b41-cfb07579dea9)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="117"/>
|
||||||
|
<source>NEM</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (adecda44-fade-4dba-8b41-cfb07579dea9) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="120"/>
|
||||||
|
<source>etherium classic value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (fc9a61b7-c3df-4f13-ba31-d7743f3d2dc2)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="123"/>
|
||||||
|
<source>Ethereum Classic</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (fc9a61b7-c3df-4f13-ba31-d7743f3d2dc2) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="126"/>
|
||||||
|
<source>Dash value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (0b602f14-1596-4091-a0ab-6c5efa087a3f)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="129"/>
|
||||||
|
<source>Dash</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (0b602f14-1596-4091-a0ab-6c5efa087a3f) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="132"/>
|
||||||
|
<source>IOTA value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (2c6e341f-5940-40bb-b495-89c3ecaaf9e7)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="135"/>
|
||||||
|
<source>IOTA</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (2c6e341f-5940-40bb-b495-89c3ecaaf9e7) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="138"/>
|
||||||
|
<source>NEO value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (7583c720-1786-4c32-9552-e731578ff113)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="141"/>
|
||||||
|
<source>NEO</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (7583c720-1786-4c32-9552-e731578ff113) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="144"/>
|
||||||
|
<source>refresh</source>
|
||||||
|
<extracomment>The name of the ActionType 11eb83d4-aa95-4a9c-a314-da7ee2d0786a of deviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
</TS>
|
||||||
175
coinmarketcap/translations/en_US.ts
Normal file
175
coinmarketcap/translations/en_US.ts
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1">
|
||||||
|
<context>
|
||||||
|
<name>CoinMarketCap</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="63"/>
|
||||||
|
<source>coin market cap</source>
|
||||||
|
<extracomment>The name of the plugin coin market cap (532757cf-fc6f-4ce5-ae5b-e6f5bdb67fb4)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="66"/>
|
||||||
|
<source>Server Url</source>
|
||||||
|
<extracomment>The name of the paramType (45e920d7-804c-4242-8435-ba4d2e6d06f7) of coin market cap</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="69"/>
|
||||||
|
<source>Coin Market Cap</source>
|
||||||
|
<extracomment>The name of the vendor (28eeecbd-4178-45aa-81a6-fd95851444fd)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="72"/>
|
||||||
|
<source>Current Prices</source>
|
||||||
|
<extracomment>The name of the DeviceClass (f5b794f7-7e2a-4409-8445-23ead80f2a8f)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="75"/>
|
||||||
|
<source>Fiat Currency</source>
|
||||||
|
<extracomment>The name of the paramType (92747d75-d18a-4915-bd48-0edd5cc5f19a) of Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="78"/>
|
||||||
|
<source>reachable status changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (19f079f0-1654-44c3-ab10-e7d7f9742e09)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="81"/>
|
||||||
|
<source>Server Reachable</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (19f079f0-1654-44c3-ab10-e7d7f9742e09) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="84"/>
|
||||||
|
<source>bitcoin value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (721c91c8-8eb1-402e-8bfc-8e2d496be032)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="87"/>
|
||||||
|
<source>Bitcoin</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (721c91c8-8eb1-402e-8bfc-8e2d496be032) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="90"/>
|
||||||
|
<source>ethereum value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (5c58bb9f-dcdf-47c9-a0b7-f0ffc968f824)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="93"/>
|
||||||
|
<source>Ethereum</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (5c58bb9f-dcdf-47c9-a0b7-f0ffc968f824) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="96"/>
|
||||||
|
<source>ripple value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (d8517cf8-2ebd-4be3-8573-00b595cc2ab5)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="99"/>
|
||||||
|
<source>Ripple</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (d8517cf8-2ebd-4be3-8573-00b595cc2ab5) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="102"/>
|
||||||
|
<source>bitcoin cash value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (cc5b4fe5-aa43-43b3-952f-90c0e3e20740)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="105"/>
|
||||||
|
<source>Bitcoin Cash</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (cc5b4fe5-aa43-43b3-952f-90c0e3e20740) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="108"/>
|
||||||
|
<source>Litecoin value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (f591f699-ae68-4f64-a221-254f836a31d3)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="111"/>
|
||||||
|
<source>Litecoin</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (f591f699-ae68-4f64-a221-254f836a31d3) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="114"/>
|
||||||
|
<source>NEM cash value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (adecda44-fade-4dba-8b41-cfb07579dea9)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="117"/>
|
||||||
|
<source>NEM</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (adecda44-fade-4dba-8b41-cfb07579dea9) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="120"/>
|
||||||
|
<source>etherium classic value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (fc9a61b7-c3df-4f13-ba31-d7743f3d2dc2)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="123"/>
|
||||||
|
<source>Ethereum Classic</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (fc9a61b7-c3df-4f13-ba31-d7743f3d2dc2) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="126"/>
|
||||||
|
<source>Dash value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (0b602f14-1596-4091-a0ab-6c5efa087a3f)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="129"/>
|
||||||
|
<source>Dash</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (0b602f14-1596-4091-a0ab-6c5efa087a3f) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="132"/>
|
||||||
|
<source>IOTA value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (2c6e341f-5940-40bb-b495-89c3ecaaf9e7)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="135"/>
|
||||||
|
<source>IOTA</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (2c6e341f-5940-40bb-b495-89c3ecaaf9e7) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="138"/>
|
||||||
|
<source>NEO value changed</source>
|
||||||
|
<extracomment>The name of the autocreated EventType (7583c720-1786-4c32-9552-e731578ff113)</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="141"/>
|
||||||
|
<source>NEO</source>
|
||||||
|
<extracomment>The name of the ParamType of StateType (7583c720-1786-4c32-9552-e731578ff113) of DeviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../build-coinmarketcap-Desktop-Debug/plugininfo.h" line="144"/>
|
||||||
|
<source>refresh</source>
|
||||||
|
<extracomment>The name of the ActionType 11eb83d4-aa95-4a9c-a314-da7ee2d0786a of deviceClass Current Prices</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
</TS>
|
||||||
@ -6,6 +6,7 @@ PLUGIN_DIRS = \
|
|||||||
awattar \
|
awattar \
|
||||||
boblight \
|
boblight \
|
||||||
bose \
|
bose \
|
||||||
|
coinmarketcap \
|
||||||
commandlauncher \
|
commandlauncher \
|
||||||
conrad \
|
conrad \
|
||||||
datetime \
|
datetime \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user