diff --git a/node-polo.demo.js b/node-polo.demo.js index 1e24d68..17dd29f 100644 --- a/node-polo.demo.js +++ b/node-polo.demo.js @@ -1,7 +1,7 @@ 'use strict' const SAVEDATA = false; -const LOADDATA = false; +const LOADDATA = true; // Bring in the ability to create the 'require' method import { @@ -16,6 +16,7 @@ const url = 'https://api.poloniex.com' const axios = require('axios') const CryptoJS = require('crypto-js') const Table = require('cli-table'); +const sendmail = require('sendmail'); const limit = 20; const { @@ -165,6 +166,21 @@ function post(url, path, param = {}) { }); } + + +// email - sendmail via localhost +function sendEmailReport(report) { + +sendmail({ + from: 'kevin@thecolyers.net', + to: 'kevin@thecolyers.net ', + subject: 'Poloniex Report', + text: report, + }, function(err, reply) { + console.log(err && err.stack); + console.dir(reply); +}); +} /* function del(url, path, param = {}, apiKey, secretKey) { const sign = new Sign('DELETE', path, param, apiKey, secretKey).sign() @@ -432,15 +448,19 @@ tableOfCoins.sort((a, b) => b[4] - a[4]); tableOfCoins.push(['', '', '', 'TOTALS', moneydollar(tot_usd), moneybitcoin(tot_btc)]); -// ouput -console.log("Markets"); -console.log(tableOfMarkets.toString()); -console.log("\n"); -console.log("\n"); -console.log("Orders"); -console.log(tableOfOrders.toString()) -console.log("\n"); -console.log("\n"); -console.log("Balances"); -console.log(tableOfCoins.toString()); +// output +var report="MARKETS\n"; +report+=tableOfMarkets.toString(); +report+="\n\n\n"; +report+="Orders\n"; +report+=tableOfOrders.toString(); +report+="\n\n\n"; +report+="Balances\n"; + +report+=tableOfCoins.toString(); +report+="\n"; + +console.log(report) console.log("Load data=", LOADDATA); + +sendmail(report); diff --git a/package-lock.json b/package-lock.json index 3be3634..794fee6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "cli-table": "^0.3.11", "crypto-js": "^4.1.1", "jsonfile": "^6.1.0", - "poloniex-node-api": "^5.0.2" + "poloniex-node-api": "^5.0.2", + "sendmail": "^1.6.1" } }, "node_modules/@types/node": { @@ -27,6 +28,11 @@ "@types/node": "*" } }, + "node_modules/addressparser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", + "integrity": "sha512-aQX7AISOMM7HFE0iZ3+YnD07oIeJqWGVnJ+ZIKaBZAk03ftmVYVqsGas/rbXKR21n4D/hKCSHypvcyOkds/xzg==" + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -41,6 +47,38 @@ "form-data": "^4.0.0" } }, + "node_modules/buildmail": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-3.10.0.tgz", + "integrity": "sha512-6e5sDN/pl3en5Klqdfyir7LEIBiFr9oqZuvYaEyVwjxpIbBZN+98e0j87Fz2Ukl8ud32rbk9VGOZAnsOZ7pkaA==", + "deprecated": "This project is unmaintained", + "dependencies": { + "addressparser": "1.0.1", + "libbase64": "0.1.0", + "libmime": "2.1.0", + "libqp": "1.1.0", + "nodemailer-fetch": "1.6.0", + "nodemailer-shared": "1.1.0" + } + }, + "node_modules/buildmail/node_modules/iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha512-QwVuTNQv7tXC5mMWFX5N5wGjmybjNBBD8P3BReTkPmipoxTUFgWM2gXNvldHQr6T14DH0Dh6qBVg98iJt7u4mQ==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/buildmail/node_modules/libmime": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-2.1.0.tgz", + "integrity": "sha512-4be2R6/jOasyPTw0BkpIZBVk2cElqjdIdS0PRPhbOCV4wWuL/ZcYYpN1BCTVB+6eIQ0uuAwp5hQTHFrM5Joa8w==", + "dependencies": { + "iconv-lite": "0.4.13", + "libbase64": "0.1.0", + "libqp": "1.1.0" + } + }, "node_modules/cli-table": { "version": "0.3.11", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", @@ -92,6 +130,14 @@ "node": ">=0.4.0" } }, + "node_modules/dkim-signer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dkim-signer/-/dkim-signer-0.2.2.tgz", + "integrity": "sha512-24OZ3cCA30UTRz+Plpg+ibfPq3h7tDtsJRg75Bo0pGakZePXcPBddY80bKi1Bi7Jsz7tL5Cw527mhCRDvNFgfg==", + "dependencies": { + "libmime": "^2.0.3" + } + }, "node_modules/fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -163,6 +209,14 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "optional": true }, + "node_modules/iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha512-RGR+c9Lm+tLsvU57FTJJtdbv2hQw42Yl2n26tVIBaYmZzLN+EGfroUugN/z9nJf9kOXd49hBmpoGr4FEm+A4pw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -174,6 +228,54 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/libbase64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", + "integrity": "sha512-B91jifmFw1DKEqEWstSpg1PbtUbBzR4yQAPT86kCQXBtud1AJVA+Z6RSklSrqmKe4q2eiEufgnhqJKPgozzfIQ==" + }, + "node_modules/libmime": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-2.1.3.tgz", + "integrity": "sha512-ABr2f4O+K99sypmkF/yPz2aXxUFHEZzv+iUkxItCeKZWHHXdQPpDXd6rV1kBBwL4PserzLU09EIzJ2lxC9hPfQ==", + "dependencies": { + "iconv-lite": "0.4.15", + "libbase64": "0.1.0", + "libqp": "1.1.0" + } + }, + "node_modules/libqp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", + "integrity": "sha512-4Rgfa0hZpG++t1Vi2IiqXG9Ad1ig4QTmtuZF946QJP4bPqOYC78ixUXgz5TW/wE7lNaNKlplSYTxQ+fR2KZ0EA==" + }, + "node_modules/mailcomposer": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-3.12.0.tgz", + "integrity": "sha512-zBeDoKUTNI8IAsazoMQFt3eVSVRtDtgrvBjBVdBjxDEX+5KLlKtEFCrBXnxPhs8aTYufUS1SmbFnGpjHS53deg==", + "deprecated": "This project is unmaintained", + "dependencies": { + "buildmail": "3.10.0", + "libmime": "2.1.0" + } + }, + "node_modules/mailcomposer/node_modules/iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha512-QwVuTNQv7tXC5mMWFX5N5wGjmybjNBBD8P3BReTkPmipoxTUFgWM2gXNvldHQr6T14DH0Dh6qBVg98iJt7u4mQ==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/mailcomposer/node_modules/libmime": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-2.1.0.tgz", + "integrity": "sha512-4be2R6/jOasyPTw0BkpIZBVk2cElqjdIdS0PRPhbOCV4wWuL/ZcYYpN1BCTVB+6eIQ0uuAwp5hQTHFrM5Joa8w==", + "dependencies": { + "iconv-lite": "0.4.13", + "libbase64": "0.1.0", + "libqp": "1.1.0" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -228,6 +330,19 @@ "url": "https://opencollective.com/node-fetch" } }, + "node_modules/nodemailer-fetch": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", + "integrity": "sha512-P7S5CEVGAmDrrpn351aXOLYs1R/7fD5NamfMCHyi6WIkbjS2eeZUB/TkuvpOQr0bvRZicVqo59+8wbhR3yrJbQ==" + }, + "node_modules/nodemailer-shared": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz", + "integrity": "sha512-68xW5LSyPWv8R0GLm6veAvm7E+XFXkVgvE3FW0FGxNMMZqMkPFeGDVALfR1DPdSfcoO36PnW7q5AAOgFImEZGg==", + "dependencies": { + "nodemailer-fetch": "1.6.0" + } + }, "node_modules/poloniex-node-api": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/poloniex-node-api/-/poloniex-node-api-5.0.2.tgz", @@ -264,6 +379,18 @@ "url": "https://commerce.coinbase.com/checkout/32948818-f4bb-4087-ae5e-1d29ecb86e64" } }, + "node_modules/sendmail": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sendmail/-/sendmail-1.6.1.tgz", + "integrity": "sha512-lIhvnjSi5e5jL8wA1GPP6j2QVlx6JOEfmdn0QIfmuJdmXYGmJ375kcOU0NSm/34J+nypm4sa1AXrYE5w3uNIIA==", + "dependencies": { + "dkim-signer": "0.2.2", + "mailcomposer": "3.12.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -317,6 +444,11 @@ "@types/node": "*" } }, + "addressparser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", + "integrity": "sha512-aQX7AISOMM7HFE0iZ3+YnD07oIeJqWGVnJ+ZIKaBZAk03ftmVYVqsGas/rbXKR21n4D/hKCSHypvcyOkds/xzg==" + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -331,6 +463,36 @@ "form-data": "^4.0.0" } }, + "buildmail": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-3.10.0.tgz", + "integrity": "sha512-6e5sDN/pl3en5Klqdfyir7LEIBiFr9oqZuvYaEyVwjxpIbBZN+98e0j87Fz2Ukl8ud32rbk9VGOZAnsOZ7pkaA==", + "requires": { + "addressparser": "1.0.1", + "libbase64": "0.1.0", + "libmime": "2.1.0", + "libqp": "1.1.0", + "nodemailer-fetch": "1.6.0", + "nodemailer-shared": "1.1.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha512-QwVuTNQv7tXC5mMWFX5N5wGjmybjNBBD8P3BReTkPmipoxTUFgWM2gXNvldHQr6T14DH0Dh6qBVg98iJt7u4mQ==" + }, + "libmime": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-2.1.0.tgz", + "integrity": "sha512-4be2R6/jOasyPTw0BkpIZBVk2cElqjdIdS0PRPhbOCV4wWuL/ZcYYpN1BCTVB+6eIQ0uuAwp5hQTHFrM5Joa8w==", + "requires": { + "iconv-lite": "0.4.13", + "libbase64": "0.1.0", + "libqp": "1.1.0" + } + } + } + }, "cli-table": { "version": "0.3.11", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", @@ -367,6 +529,14 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, + "dkim-signer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dkim-signer/-/dkim-signer-0.2.2.tgz", + "integrity": "sha512-24OZ3cCA30UTRz+Plpg+ibfPq3h7tDtsJRg75Bo0pGakZePXcPBddY80bKi1Bi7Jsz7tL5Cw527mhCRDvNFgfg==", + "requires": { + "libmime": "^2.0.3" + } + }, "fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -405,6 +575,11 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "optional": true }, + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha512-RGR+c9Lm+tLsvU57FTJJtdbv2hQw42Yl2n26tVIBaYmZzLN+EGfroUugN/z9nJf9kOXd49hBmpoGr4FEm+A4pw==" + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -414,6 +589,52 @@ "universalify": "^2.0.0" } }, + "libbase64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", + "integrity": "sha512-B91jifmFw1DKEqEWstSpg1PbtUbBzR4yQAPT86kCQXBtud1AJVA+Z6RSklSrqmKe4q2eiEufgnhqJKPgozzfIQ==" + }, + "libmime": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-2.1.3.tgz", + "integrity": "sha512-ABr2f4O+K99sypmkF/yPz2aXxUFHEZzv+iUkxItCeKZWHHXdQPpDXd6rV1kBBwL4PserzLU09EIzJ2lxC9hPfQ==", + "requires": { + "iconv-lite": "0.4.15", + "libbase64": "0.1.0", + "libqp": "1.1.0" + } + }, + "libqp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", + "integrity": "sha512-4Rgfa0hZpG++t1Vi2IiqXG9Ad1ig4QTmtuZF946QJP4bPqOYC78ixUXgz5TW/wE7lNaNKlplSYTxQ+fR2KZ0EA==" + }, + "mailcomposer": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-3.12.0.tgz", + "integrity": "sha512-zBeDoKUTNI8IAsazoMQFt3eVSVRtDtgrvBjBVdBjxDEX+5KLlKtEFCrBXnxPhs8aTYufUS1SmbFnGpjHS53deg==", + "requires": { + "buildmail": "3.10.0", + "libmime": "2.1.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha512-QwVuTNQv7tXC5mMWFX5N5wGjmybjNBBD8P3BReTkPmipoxTUFgWM2gXNvldHQr6T14DH0Dh6qBVg98iJt7u4mQ==" + }, + "libmime": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-2.1.0.tgz", + "integrity": "sha512-4be2R6/jOasyPTw0BkpIZBVk2cElqjdIdS0PRPhbOCV4wWuL/ZcYYpN1BCTVB+6eIQ0uuAwp5hQTHFrM5Joa8w==", + "requires": { + "iconv-lite": "0.4.13", + "libbase64": "0.1.0", + "libqp": "1.1.0" + } + } + } + }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -442,6 +663,19 @@ "formdata-polyfill": "^4.0.10" } }, + "nodemailer-fetch": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", + "integrity": "sha512-P7S5CEVGAmDrrpn351aXOLYs1R/7fD5NamfMCHyi6WIkbjS2eeZUB/TkuvpOQr0bvRZicVqo59+8wbhR3yrJbQ==" + }, + "nodemailer-shared": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz", + "integrity": "sha512-68xW5LSyPWv8R0GLm6veAvm7E+XFXkVgvE3FW0FGxNMMZqMkPFeGDVALfR1DPdSfcoO36PnW7q5AAOgFImEZGg==", + "requires": { + "nodemailer-fetch": "1.6.0" + } + }, "poloniex-node-api": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/poloniex-node-api/-/poloniex-node-api-5.0.2.tgz", @@ -459,6 +693,15 @@ "node-fetch": "^3.2.6" } }, + "sendmail": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sendmail/-/sendmail-1.6.1.tgz", + "integrity": "sha512-lIhvnjSi5e5jL8wA1GPP6j2QVlx6JOEfmdn0QIfmuJdmXYGmJ375kcOU0NSm/34J+nypm4sa1AXrYE5w3uNIIA==", + "requires": { + "dkim-signer": "0.2.2", + "mailcomposer": "3.12.0" + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", diff --git a/package.json b/package.json index 40d304c..22fdd42 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "cli-table": "^0.3.11", "crypto-js": "^4.1.1", "jsonfile": "^6.1.0", - "poloniex-node-api": "^5.0.2" + "poloniex-node-api": "^5.0.2", + "sendmail": "^1.6.1" }, "type": "module" }