From 74a1960a94e29dacd5d4ab2ef3c5e1696690523a Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:24:04 -0700 Subject: [PATCH 01/77] Update MMM-MyScoreboard.js magic mirror > magicmirror2 --- MMM-MyScoreboard.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 1e5f89f..bf26a07 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -1,6 +1,6 @@ /********************************* - Magic Mirror Module: + MagicMirror² Module: MMM-MyScoreboard https://github.com/jclarke0000/MMM-MyScoreboard @@ -924,4 +924,4 @@ Module.register("MMM-MyScoreboard",{ } -}); \ No newline at end of file +}); From 56dd8bc5c84ed05b133b0748f4b6a857c3d76c5c Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:24:38 -0700 Subject: [PATCH 02/77] Update README.md michmich > magicmirror --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1662eb1..cf6f294 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This a module for MagicMirror
https://magicmirror.builders/
-https://github.com/MichMich/MagicMirror +https://github.com/MagicMirrorOrg/MagicMirror This module displays today's scores for your favourite teams across a number of different leagues, including: From 2f461af0a3bdfef160bf4c6a7f5b067b876bff4d Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:25:28 -0700 Subject: [PATCH 03/77] Update package.json superscript 2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 757d343..406ccbf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "mmm-myscoreboard", "version": "1.0.0", - "description": "Sports module for MagicMirror2", + "description": "Sports module for MagicMirror²", "repository": { "type": "git", "url": "git+https://github.com/jclarke0000/MMM-MyScoreboard.git" From 46dc4221b31d3a5fa8b8659f6bb81b77c4ad2084 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:26:13 -0700 Subject: [PATCH 04/77] Update package.json remove axios dependency --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 406ccbf..eb71aa3 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ "author": "Jeff Clarke", "license": "MIT", "dependencies": { - "axios": "^0.27.2", "directory-tree": "^3.3.1", "json-parse-async": "^1.0.3", "moment-timezone": "^0.5.37" From 073ba74bb3565884cae85275ce4a5f7f0779f88d Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:26:46 -0700 Subject: [PATCH 05/77] Update ESPN.js axios > fetch --- providers/ESPN.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index 91ee807..0051087 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -33,7 +33,7 @@ */ -const axios = require("axios"); +//const axios = require("axios"); const moment = require("moment-timezone"); const parseJSON = require("json-parse-async"); @@ -417,7 +417,7 @@ module.exports = { } - axios.get(url) + fetch.get(url) .then( function(response) { callback(self.formatScores(league, response.data, teams)); }) @@ -732,4 +732,4 @@ module.exports = { } -}; \ No newline at end of file +}; From a3806e79273c8ab65b0e75a0c24379c40d71abbd Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:27:18 -0700 Subject: [PATCH 06/77] Update SNET.js axios > fetch --- providers/SNET.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/providers/SNET.js b/providers/SNET.js index 65befdb..625d674 100644 --- a/providers/SNET.js +++ b/providers/SNET.js @@ -43,7 +43,7 @@ */ -const axios = require("axios"); +//const axios = require("axios"); const moment = require("moment-timezone"); const parseJSON = require("json-parse-async"); @@ -112,7 +112,7 @@ module.exports = { var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); - axios.get(url) + fetch.get(url) .then( function(response) { if(response.data.data) { self.scoresObj = response.data; @@ -426,4 +426,4 @@ module.exports = { } -}; \ No newline at end of file +}; From c0defe5c09632619b71722b166a686ba54fc764e Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:32:23 -0700 Subject: [PATCH 07/77] Delete package-lock.json --- package-lock.json | 666 ---------------------------------------------- 1 file changed, 666 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 2b39641..0000000 --- a/package-lock.json +++ /dev/null @@ -1,666 +0,0 @@ -{ - "name": "mmm-myscoreboard", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "mmm-myscoreboard", - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "axios": "^0.27.2", - "directory-tree": "^3.3.1", - "json-parse-async": "^1.0.3", - "moment-timezone": "^0.5.37" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/cb2promise": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cb2promise/-/cb2promise-1.0.7.tgz", - "integrity": "sha512-nJYSPnKm1ymJqmgi97VTtPq5I2yTt7uRYDStTJWUp/R0IWnKb6p5WJsIDAiT52cINGJW/v+QTIIqUyUMEI/XFQ==", - "dependencies": { - "sliced": "~1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coffee-script": { - "version": "1.12.7", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", - "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", - "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/directory-tree": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-3.3.1.tgz", - "integrity": "sha512-b92Uf33mHb+HwfC4CwvPxC78d1IQaXweg+jFUOw5JJpxrFSt516at1zm13JadVvtSl0cOYZ4zohJJ59wZw6B0A==", - "dependencies": { - "command-line-args": "^5.2.0", - "command-line-usage": "^6.1.1" - }, - "bin": { - "directory-tree": "bin/index.js" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-async": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/json-parse-async/-/json-parse-async-1.0.3.tgz", - "integrity": "sha512-+AAIuLYRpxsGiZQVxIXLndvEg8oCjU3LO1zmlH/Vkr1f2fGtULB6uiLO9K4EupLizNmk93NBQCZrwZSIVvAVoA==", - "dependencies": { - "cb2promise": "~1.0.0", - "whoops": "~1.0.0" - }, - "engines": { - "node": ">= 0.10.0", - "npm": ">= 1.4.0" - } - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "engines": { - "node": "*" - } - }, - "node_modules/moment-timezone": { - "version": "0.5.37", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.37.tgz", - "integrity": "sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg==", - "dependencies": { - "moment": ">= 2.9.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/sliced": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/whoops": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/whoops/-/whoops-1.0.1.tgz", - "integrity": "sha512-9NVRkn9cwvdlHUlE8gDkL1d9jjmsRZFaLMkI5wGHmpo3Ja5QH6FTRveZr6X7FwZKP+bl6T/4Rynh78AXQL9KbA==", - "dependencies": { - "coffee-script": "*" - }, - "engines": { - "node": ">= 0.10.0", - "npm": ">= 1.4.0" - } - }, - "node_modules/wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "dependencies": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "engines": { - "node": ">=8" - } - } - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "cb2promise": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cb2promise/-/cb2promise-1.0.7.tgz", - "integrity": "sha512-nJYSPnKm1ymJqmgi97VTtPq5I2yTt7uRYDStTJWUp/R0IWnKb6p5WJsIDAiT52cINGJW/v+QTIIqUyUMEI/XFQ==", - "requires": { - "sliced": "~1.0.1" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "coffee-script": { - "version": "1.12.7", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", - "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - } - }, - "command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "requires": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "directory-tree": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-3.3.1.tgz", - "integrity": "sha512-b92Uf33mHb+HwfC4CwvPxC78d1IQaXweg+jFUOw5JJpxrFSt516at1zm13JadVvtSl0cOYZ4zohJJ59wZw6B0A==", - "requires": { - "command-line-args": "^5.2.0", - "command-line-usage": "^6.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "requires": { - "array-back": "^3.0.1" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "json-parse-async": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/json-parse-async/-/json-parse-async-1.0.3.tgz", - "integrity": "sha512-+AAIuLYRpxsGiZQVxIXLndvEg8oCjU3LO1zmlH/Vkr1f2fGtULB6uiLO9K4EupLizNmk93NBQCZrwZSIVvAVoA==", - "requires": { - "cb2promise": "~1.0.0", - "whoops": "~1.0.0" - } - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" - }, - "moment-timezone": { - "version": "0.5.37", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.37.tgz", - "integrity": "sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg==", - "requires": { - "moment": ">= 2.9.0" - } - }, - "reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==" - }, - "sliced": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "requires": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } - } - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" - }, - "whoops": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/whoops/-/whoops-1.0.1.tgz", - "integrity": "sha512-9NVRkn9cwvdlHUlE8gDkL1d9jjmsRZFaLMkI5wGHmpo3Ja5QH6FTRveZr6X7FwZKP+bl6T/4Rynh78AXQL9KbA==", - "requires": { - "coffee-script": "*" - } - }, - "wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "requires": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "dependencies": { - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } - } - } - } -} From 0820acc46b8dc45ae9864225d2793ac21746c225 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:37:35 -0700 Subject: [PATCH 08/77] Revert "Delete package-lock.json" This reverts commit c0defe5c09632619b71722b166a686ba54fc764e. --- package-lock.json | 666 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 666 insertions(+) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2b39641 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,666 @@ +{ + "name": "mmm-myscoreboard", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "mmm-myscoreboard", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "axios": "^0.27.2", + "directory-tree": "^3.3.1", + "json-parse-async": "^1.0.3", + "moment-timezone": "^0.5.37" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/cb2promise": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cb2promise/-/cb2promise-1.0.7.tgz", + "integrity": "sha512-nJYSPnKm1ymJqmgi97VTtPq5I2yTt7uRYDStTJWUp/R0IWnKb6p5WJsIDAiT52cINGJW/v+QTIIqUyUMEI/XFQ==", + "dependencies": { + "sliced": "~1.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", + "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", + "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/directory-tree": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-3.3.1.tgz", + "integrity": "sha512-b92Uf33mHb+HwfC4CwvPxC78d1IQaXweg+jFUOw5JJpxrFSt516at1zm13JadVvtSl0cOYZ4zohJJ59wZw6B0A==", + "dependencies": { + "command-line-args": "^5.2.0", + "command-line-usage": "^6.1.1" + }, + "bin": { + "directory-tree": "bin/index.js" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-async": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-async/-/json-parse-async-1.0.3.tgz", + "integrity": "sha512-+AAIuLYRpxsGiZQVxIXLndvEg8oCjU3LO1zmlH/Vkr1f2fGtULB6uiLO9K4EupLizNmk93NBQCZrwZSIVvAVoA==", + "dependencies": { + "cb2promise": "~1.0.0", + "whoops": "~1.0.0" + }, + "engines": { + "node": ">= 0.10.0", + "npm": ">= 1.4.0" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.37", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.37.tgz", + "integrity": "sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg==", + "dependencies": { + "moment": ">= 2.9.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/whoops": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/whoops/-/whoops-1.0.1.tgz", + "integrity": "sha512-9NVRkn9cwvdlHUlE8gDkL1d9jjmsRZFaLMkI5wGHmpo3Ja5QH6FTRveZr6X7FwZKP+bl6T/4Rynh78AXQL9KbA==", + "dependencies": { + "coffee-script": "*" + }, + "engines": { + "node": ">= 0.10.0", + "npm": ">= 1.4.0" + } + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "engines": { + "node": ">=8" + } + } + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "cb2promise": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cb2promise/-/cb2promise-1.0.7.tgz", + "integrity": "sha512-nJYSPnKm1ymJqmgi97VTtPq5I2yTt7uRYDStTJWUp/R0IWnKb6p5WJsIDAiT52cINGJW/v+QTIIqUyUMEI/XFQ==", + "requires": { + "sliced": "~1.0.1" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", + "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "requires": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + } + }, + "command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "requires": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" + } + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "directory-tree": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/directory-tree/-/directory-tree-3.3.1.tgz", + "integrity": "sha512-b92Uf33mHb+HwfC4CwvPxC78d1IQaXweg+jFUOw5JJpxrFSt516at1zm13JadVvtSl0cOYZ4zohJJ59wZw6B0A==", + "requires": { + "command-line-args": "^5.2.0", + "command-line-usage": "^6.1.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "requires": { + "array-back": "^3.0.1" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "json-parse-async": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-async/-/json-parse-async-1.0.3.tgz", + "integrity": "sha512-+AAIuLYRpxsGiZQVxIXLndvEg8oCjU3LO1zmlH/Vkr1f2fGtULB6uiLO9K4EupLizNmk93NBQCZrwZSIVvAVoA==", + "requires": { + "cb2promise": "~1.0.0", + "whoops": "~1.0.0" + } + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + }, + "moment-timezone": { + "version": "0.5.37", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.37.tgz", + "integrity": "sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg==", + "requires": { + "moment": ">= 2.9.0" + } + }, + "reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==" + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "requires": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" + } + } + }, + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" + }, + "whoops": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/whoops/-/whoops-1.0.1.tgz", + "integrity": "sha512-9NVRkn9cwvdlHUlE8gDkL1d9jjmsRZFaLMkI5wGHmpo3Ja5QH6FTRveZr6X7FwZKP+bl6T/4Rynh78AXQL9KbA==", + "requires": { + "coffee-script": "*" + } + }, + "wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "requires": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "dependencies": { + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" + } + } + } + } +} From 7fef05c4065cdb3f65029e745e6548bf2ad7cb01 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:51:29 -0700 Subject: [PATCH 09/77] Update ESPN.js fetch.get > fetch --- providers/ESPN.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index 0051087..9e13891 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -417,7 +417,7 @@ module.exports = { } - fetch.get(url) + fetch(url) .then( function(response) { callback(self.formatScores(league, response.data, teams)); }) From 8b8b9ce6e2b449bd9bc5cadbdad5e10b7f17ccad Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 10:51:53 -0700 Subject: [PATCH 10/77] Update SNET.js fetch.get > fetch --- providers/SNET.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/SNET.js b/providers/SNET.js index 625d674..e76fd91 100644 --- a/providers/SNET.js +++ b/providers/SNET.js @@ -112,7 +112,7 @@ module.exports = { var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); - fetch.get(url) + fetch(url) .then( function(response) { if(response.data.data) { self.scoresObj = response.data; From 6945a6a4710fe78db524714f0fed57e460a6d1c5 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:17:48 -0700 Subject: [PATCH 11/77] Update package.json Add axios back (couldn't figure out how to get fetch working) --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index eb71aa3..406ccbf 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "author": "Jeff Clarke", "license": "MIT", "dependencies": { + "axios": "^0.27.2", "directory-tree": "^3.3.1", "json-parse-async": "^1.0.3", "moment-timezone": "^0.5.37" From 09febe96ab29361c4647690b14c8e4e61858b358 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:18:51 -0700 Subject: [PATCH 12/77] Update ESPN.js back to axios --- providers/ESPN.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index 9e13891..0de2c0d 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -33,7 +33,7 @@ */ -//const axios = require("axios"); +const axios = require("axios"); const moment = require("moment-timezone"); const parseJSON = require("json-parse-async"); @@ -417,7 +417,7 @@ module.exports = { } - fetch(url) + axios.get(url) .then( function(response) { callback(self.formatScores(league, response.data, teams)); }) From 1bfefbed1343c7f8795239197ad5bd663f1891c3 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:19:20 -0700 Subject: [PATCH 13/77] Update SNET.js Back to axios --- providers/SNET.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/providers/SNET.js b/providers/SNET.js index e76fd91..9429e55 100644 --- a/providers/SNET.js +++ b/providers/SNET.js @@ -43,7 +43,7 @@ */ -//const axios = require("axios"); +const axios = require("axios"); const moment = require("moment-timezone"); const parseJSON = require("json-parse-async"); @@ -112,7 +112,7 @@ module.exports = { var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); - fetch(url) + axios.get(url) .then( function(response) { if(response.data.data) { self.scoresObj = response.data; From 61680912c9b1a8a08348ff877128db7dbfacedf0 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:28:25 -0700 Subject: [PATCH 14/77] Revert "Update SNET.js" This reverts commit 1bfefbed1343c7f8795239197ad5bd663f1891c3. --- providers/SNET.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/providers/SNET.js b/providers/SNET.js index 9429e55..e76fd91 100644 --- a/providers/SNET.js +++ b/providers/SNET.js @@ -43,7 +43,7 @@ */ -const axios = require("axios"); +//const axios = require("axios"); const moment = require("moment-timezone"); const parseJSON = require("json-parse-async"); @@ -112,7 +112,7 @@ module.exports = { var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); - axios.get(url) + fetch(url) .then( function(response) { if(response.data.data) { self.scoresObj = response.data; From 7e360e2e02cc28935db4d918978f9a04242d4e09 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:28:30 -0700 Subject: [PATCH 15/77] Revert "Update ESPN.js" This reverts commit 09febe96ab29361c4647690b14c8e4e61858b358. --- providers/ESPN.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index 0de2c0d..9e13891 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -33,7 +33,7 @@ */ -const axios = require("axios"); +//const axios = require("axios"); const moment = require("moment-timezone"); const parseJSON = require("json-parse-async"); @@ -417,7 +417,7 @@ module.exports = { } - axios.get(url) + fetch(url) .then( function(response) { callback(self.formatScores(league, response.data, teams)); }) From 6d09c1c598806e1825cfa631cb1470bc4fff4d04 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:28:37 -0700 Subject: [PATCH 16/77] Revert "Update package.json" This reverts commit 6945a6a4710fe78db524714f0fed57e460a6d1c5. --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 406ccbf..eb71aa3 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ "author": "Jeff Clarke", "license": "MIT", "dependencies": { - "axios": "^0.27.2", "directory-tree": "^3.3.1", "json-parse-async": "^1.0.3", "moment-timezone": "^0.5.37" From ab9dd1e81573cb00253980212e6f9acebdc07d16 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:28:44 -0700 Subject: [PATCH 17/77] Revert "Update SNET.js" This reverts commit 8b8b9ce6e2b449bd9bc5cadbdad5e10b7f17ccad. --- providers/SNET.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/SNET.js b/providers/SNET.js index e76fd91..625d674 100644 --- a/providers/SNET.js +++ b/providers/SNET.js @@ -112,7 +112,7 @@ module.exports = { var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); - fetch(url) + fetch.get(url) .then( function(response) { if(response.data.data) { self.scoresObj = response.data; From a52e3ee64fbfe5e6e21b57cbc8a9391777b118de Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:28:48 -0700 Subject: [PATCH 18/77] Revert "Update ESPN.js" This reverts commit 7fef05c4065cdb3f65029e745e6548bf2ad7cb01. --- providers/ESPN.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index 9e13891..0051087 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -417,7 +417,7 @@ module.exports = { } - fetch(url) + fetch.get(url) .then( function(response) { callback(self.formatScores(league, response.data, teams)); }) From 1605a9020d06b2d8f52bac8141d644416d19af03 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:28:58 -0700 Subject: [PATCH 19/77] Revert "Update SNET.js" This reverts commit a3806e79273c8ab65b0e75a0c24379c40d71abbd. --- providers/SNET.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/providers/SNET.js b/providers/SNET.js index 625d674..65befdb 100644 --- a/providers/SNET.js +++ b/providers/SNET.js @@ -43,7 +43,7 @@ */ -//const axios = require("axios"); +const axios = require("axios"); const moment = require("moment-timezone"); const parseJSON = require("json-parse-async"); @@ -112,7 +112,7 @@ module.exports = { var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); - fetch.get(url) + axios.get(url) .then( function(response) { if(response.data.data) { self.scoresObj = response.data; @@ -426,4 +426,4 @@ module.exports = { } -}; +}; \ No newline at end of file From 43a581fbbd76c246662c31b507295cf12ee72dbb Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:29:02 -0700 Subject: [PATCH 20/77] Revert "Update ESPN.js" This reverts commit 073ba74bb3565884cae85275ce4a5f7f0779f88d. --- providers/ESPN.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index 0051087..91ee807 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -33,7 +33,7 @@ */ -//const axios = require("axios"); +const axios = require("axios"); const moment = require("moment-timezone"); const parseJSON = require("json-parse-async"); @@ -417,7 +417,7 @@ module.exports = { } - fetch.get(url) + axios.get(url) .then( function(response) { callback(self.formatScores(league, response.data, teams)); }) @@ -732,4 +732,4 @@ module.exports = { } -}; +}; \ No newline at end of file From d2bcbb6a8b14d0dc40fa1f8b6f1e11b55362a953 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 11:29:08 -0700 Subject: [PATCH 21/77] Revert "Update package.json" This reverts commit 46dc4221b31d3a5fa8b8659f6bb81b77c4ad2084. --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index eb71aa3..406ccbf 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "author": "Jeff Clarke", "license": "MIT", "dependencies": { + "axios": "^0.27.2", "directory-tree": "^3.3.1", "json-parse-async": "^1.0.3", "moment-timezone": "^0.5.37" From 330d66b742acaa807d37772e7560704959924921 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 12:04:19 -0700 Subject: [PATCH 22/77] Update package.json Add "Sport" keyword --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 406ccbf..2cce3b4 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "keywords": [ "MagicMirror", "Module", - "Sports" + "Sports", + "Sport", ], "bugs": { "url": "https://github.com/jclarke0000/MMM-MyScoreboard/issues" From 6a70c3e4bd229282269856961d44094dada4e3a8 Mon Sep 17 00:00:00 2001 From: dathbe Date: Mon, 25 Mar 2024 17:58:50 -0700 Subject: [PATCH 23/77] Update package.json remove trailing comma --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2cce3b4..d85fc07 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "MagicMirror", "Module", "Sports", - "Sport", + "Sport" ], "bugs": { "url": "https://github.com/jclarke0000/MMM-MyScoreboard/issues" From 78e8cc9469afce041cbcff260799fdc43ae6be2c Mon Sep 17 00:00:00 2001 From: dathbe Date: Tue, 26 Mar 2024 07:22:49 -0700 Subject: [PATCH 24/77] Update README.md ```js --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cf6f294..d299e99 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,7 @@ It should be noted that if you specify arrays for both teams and Date: Tue, 26 Mar 2024 15:21:59 -0700 Subject: [PATCH 25/77] Add files via upload --- example.jpg | Bin 0 -> 275694 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 example.jpg diff --git a/example.jpg b/example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2b25aaafb91500ce4f6c0647254761e23c30ed40 GIT binary patch literal 275694 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%0Du9WHTUq2fA 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 I{yFmB00X Date: Wed, 15 May 2024 10:14:59 -0700 Subject: [PATCH 26/77] Update ESPN.js replace --- providers/ESPN.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index 91ee807..8160acf 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -423,7 +423,6 @@ module.exports = { }) .catch( function(r_err) { console.log( "[MMM-MyScoreboard] " + moment().format("D-MMM-YY HH:mm") + " ** ERROR ** Couldn't retrieve " + league + " data for provider ESPN: " + r_err ); - console.log( "[MMM-MyScoreboard] " + url ); }) @@ -648,7 +647,8 @@ module.exports = { vScore: parseInt(vTeamData.score), status: status, hTeamLogoUrl: hTeamData.team.logo ? hTeamData.team.logo : "", - vTeamLogoUrl: vTeamData.team.logo ? vTeamData.team.logo : "" + vTeamLogoUrl: vTeamData.team.logo ? vTeamData.team.logo : "", + date: moment(gameDate).format("YYYY-MM-DD") }); }); @@ -732,4 +732,4 @@ module.exports = { } -}; \ No newline at end of file +}; From 93cf34be04f1df9290396220884569e52d8f0b72 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 10:15:25 -0700 Subject: [PATCH 27/77] Update SNET.js replace --- providers/SNET.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/providers/SNET.js b/providers/SNET.js index 65befdb..e06db5c 100644 --- a/providers/SNET.js +++ b/providers/SNET.js @@ -110,6 +110,7 @@ module.exports = { var self = this; var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); + self.usedDate = this.gameDate.format("YYYY-MM-DD"); axios.get(url) @@ -312,7 +313,8 @@ module.exports = { vTeamLogoUrl: game.visiting_team.img_url_90, hScore: game.home_team.score, vScore: game.visiting_team.score, - status: status + status: status, + date: self.usedDate }; formattedGames.push(formattedGame); @@ -426,4 +428,4 @@ module.exports = { } -}; \ No newline at end of file +}; From d64b32eaff12a72801974e578cb1072dc063bfd4 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 10:16:02 -0700 Subject: [PATCH 28/77] Add files via upload --- providers/SNET_YD.js | 429 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 429 insertions(+) create mode 100644 providers/SNET_YD.js diff --git a/providers/SNET_YD.js b/providers/SNET_YD.js new file mode 100644 index 0000000..667b91d --- /dev/null +++ b/providers/SNET_YD.js @@ -0,0 +1,429 @@ +/* + + ------------------------------------- + Provider for Sportsnet Scoreboard + ------------------------------------- + + Provides scores for + NHL (National Hockey League) + NFL (National Football League) + NBA (National Basketball Association) + CFL (Canadian Football League) + MLS (Major League Soccer) + MLB (Major League Baseball) + + + All sports are provided in a single feed at + https://mobile-statsv2.sportsnet.ca/ticker + + The feed takes one parameter: + + day - YYYY-MM-DD (e.g. 2018-11-20) + + It's also possible to request individual leagues with the + "league" parameter, but for some sports, more than one day's + worth of games are returned (e.g. CFL, NFL). This becomes + tricky when time zones come into effect, since the date stamps + are provided in UTC, and would report the next day's + games for anything 7:00 PM ET or later. It was easier + to continue to use the independent poll that was used with the + old feed. + + Sportsnet's Scoreboard feed is free and clear, so please + do not modify this to hammer the API with a flood of calls. + Doing so may trigger Sportsnet to lock down the API. + + Since this feed gets all the sports at once, the data + feed works independent of the front end's poll for + score updates. Polling for scores is kicked off the + first time the front end asks for data, but after that, + this module will keep a local data object up to date. + Subsequent requests from the front end will be queried + against this data object. + +*/ + +const axios = require("axios"); +const moment = require("moment-timezone"); +const parseJSON = require("json-parse-async"); + +module.exports = { + + PROVIDER_NAME: "SNET_YD", + + /* + Please don't make this any more frequent. If you have a + browser open to Sportsnet.ca, this feed gets pinged every + 10 seconds. Keeping ours to every minute should keep us + under the radar, but will still give us timely information. + In any case, the front end asks for data every 2 minutes, + so making this any more frequent doesn't change anything. + */ + POLL_FREQUENCY: 60 * 60 * 1000, //every hour. + + scoresObj: null, + dataPollStarted: false, + gameDate: null, + + getScores: function(league, teams, gameDate, callback) { + + var self = this; + this.gameDate = moment(gameDate); + + if (this.scoresObj == null) { + + //start the data poll. Set a timer to check every second to see if the scoresObj gets populated. + if (!this.dataPollStarted) { + this.startDataPoll(); + } + + var waitForDataTimer = setInterval(function() { + if (self.scoresObj != null) { + + clearInterval(waitForDataTimer); + waitForDataTimer = null; + + callback(self.getLeague(league, teams)); + } + }, 1000); + + } else { + callback(self.getLeague(league, teams)); + } + }, + + startDataPoll: function() { + + this.dataPollStarted = true; + this.getData(); + + var self = this; + setInterval(function() { + self.getData(); + }, this.POLL_FREQUENCY); + + }, + + getData: function() { + + // console.log("Get SNET JSON"); + var self = this; + + var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); + self.usedDate = this.gameDate.format("YYYY-MM-DD"); + + + axios.get(url) + .then( function(response) { + if(response.data.data) { + self.scoresObj = response.data; + } + }) + .catch( function(r_err) { + console.log( "[MMM-MyScoreboard] " + moment().format("D-MMM-YY HH:mm") + " ** ERROR ** Couldn't retrieve data for provider SNET: " + r_err ); + }) + }, + + + getLeague: function(league, teams) { + + var self = this; + + var filteredGames = this.scoresObj.data.games.filter(function(game) { + return(game.league.toUpperCase() == league.toUpperCase() && + (teams == null || teams.indexOf(game.home_team.short_name.toUpperCase()) != -1 || + teams.indexOf(game.visiting_team.short_name.toUpperCase()) != -1) ); + }); + + + /* + now sort the array by start time so that the games always appear + in the same order regardless of status. Sort it first by start + time, then by visting team short code. + */ + + + filteredGames.sort(function(a,b) { + var aTime = moment(a.timestamp * 1000); + var bTime = moment(b.timestamp * 1000); + + //first sort by start time + if (aTime.isBefore(bTime)) { + return -1; + } + if (aTime.isAfter(bTime)) { + return 1; + } + + //start times are the same. Now sort by team short codes + if (a.visiting_team.short_name < b.visiting_team.short_name) { + return -1; + } + if (a.visiting_team.short_name > b.visiting_team.short_name) { + return 1; + } + + return 0; + + }); + + var formattedGames = []; + var localTZ = moment.tz.guess(); + + filteredGames.forEach(function(game) { + + + var gameState; + var status = []; + var classes = []; + + switch(game.game_status) { + + case "Pre-Game": + gameState = 0; //not started + //Feed provides all game times in Eastern Time + status.push(moment(game.timestamp * 1000).tz(localTZ).format("h:mm a")); + break; + + case "In-Progress": + gameState = 1; //in-progress + + /* + You'd think that since Sportsnet's feed returns all + sports at once that we could handle every sport the + same way. Alas, there are too many small differences + between the sports, even though they don't need to + be there. So it's easier to handle each league + piecemeal instead of having a sea of IF...THEN blocks. + */ + switch (league) { + + case "NHL": + /* + We can use game.period_status to handle a + couple of special cases. Otherwise we + display game.clock and feed game.period + into the getPeriod() routine. + */ + if (game.shootout == true) { + status.push("SHOOTOUT"); + } else if (game.overtime == true) { + status.push(game.clock); + status.push("OT"); + } else if (game.clock == "0:00") { + status.push("END"); + status.push(self.getPeriod(league, game.period)); + } else { + status.push(game.clock); + status.push(self.getPeriod(league, game.period)); + } + break; + + case "MLB": + /* + game.period_status property will say "TOP 1st" + or "BOT 3rd" etc. Break out "TOP" or "BOT", and + then feed game.period into the getPeriod() routine + to format ordinals with the wrapper. + */ + status.push(game.period_status && game.period_status.split(" ")[0]); + status.push(self.getPeriod(league, game.period)); + break; + + case "MLS": + if (game.clock == "Half") { + status.push("HALFTIME"); + } else { + status.push(game.clock); + } + break; + + case "NFL": + case "CFL": + case "NBA": + /* + Sigh. You'd think Sportnet would reuse the + "Half-Over" array for games at halftime. But + for some weird reason it only uses it for + soccer. Also, the feed doesn't provide a + period-status property, so we need to rely + on the clock and period properties to build + the status. + + Luckily, NFL, CFL, and NBA can all be handled + the same way. No need to break them out into + their own special cases. + */ + if (game.clock == "0:00" && game.period == 2) { + status.push("HALFTIME"); + } else if (game.clock == "0:00") { + status.push("END"); + status.push(self.getPeriod(league, game.period)); + } else { + status.push(game.clock); + status.push(self.getPeriod(league, game.period)); + } + break; + + } + + break; + + case "Half-Over": + gameState = 1; //in-progress + status.push("HALFTIME"); + break; + + case "Delayed": + gameState = 1; //in-progress + classes.push("delay"); + status.push("Delay"); + break; + + case "Postponed": + gameState = 0; + status.push("Postponed"); + break; + + case "Final": + gameState = 2; //final + status.push("Final" + self.getFinalOT(league, game)); + break; + + default: + gameState = 0; + status.push(moment(game.timestamp * 1000).tz(localTZ).format("h:mm a")); + break; + } + + /* + URLs to logo images are available in the feed, but they are a bit too low + quaity for some of the templates. However, logos are available at higher + resolution if we replace "59x59" with "200x200" in the path. + */ + + var formattedGame = { + classes: classes, + gameMode: gameState, + hTeam: game.home_team.short_name.toUpperCase(), + vTeam: game.visiting_team.short_name.toUpperCase(), + hTeamLong: game.home_team.short_name == "TBD" ? "TBD" : self.titleCase(game.home_team.name), + vTeamLong: game.visiting_team.short_name == "TBD" ? "TBD" : self.titleCase(game.visiting_team.name), + hTeamLogoUrl: game.home_team.img_url_90, + vTeamLogoUrl: game.visiting_team.img_url_90, + hScore: game.home_team.score, + vScore: game.visiting_team.score, + status: status, + }; + + formattedGames.push(formattedGame); + }); + + + return formattedGames; + + + }, + + getFinalOT: function(league, game) { + switch (league) { + case "NHL": + if (game.shootout == true) { + return " (SO)"; + } else if (game.overtime == true) { + return " (OT)"; + } else if (game.period == 4) { + return " (OT)"; + } else if (game.period > 4) { + return " (" + (game.period - 3) + "OT)"; + } + break; + case "MLB": + if (game.period > 9) { + return " (" + game.period + ")"; + } + break; + case "NFL": + case "CFL": + case "NBA": + if (game.period > 4) { + return " (OT)"; + } + break; + case "MLS": + if (game.period > 2) { + return " (ET)"; + } + break; + } + return ""; + }, + + getOrdinal: function(p) { + + var mod10 = p % 10; + var mod100 = p % 100; + + if (mod10 == 1 && mod100 != 11) { + return p + "ST"; + } + if (mod10 == 2 && mod100 != 12) { + return p + "ND"; + } + if (mod10 == 3 && mod100 != 13) { + return p + "RD"; + } + + return p + "TH"; + + }, + + getPeriod: function(league, p) { + + //check for overtime, otherwise return ordinal + switch (league) { + case "NFL": + case "NBA": + case "CFL": + if (p == 5) { + return ("OT"); + } else if (p > 5) { + return (p - 4) + "OT"; + } + break; + case "NHL": + if (p == 4) { + return ("OT"); + } else if (p > 4) { + return (p - 3) + "OT"; + } + break; + case "MLS" : + if (p > 2) { + return ("ET"); + } + break; + } + return this.getOrdinal(p); + }, + + titleCase: function(str) { + + if (str == null || str == undefined) { + return ""; + } + + var splitStr = str.toLowerCase().split(" "); + for (var i = 0; i < splitStr.length; i++) { + // two-letter portions are all upper case (e.g.: the "FC" in Toronto FC) + if (splitStr[i].length <= 2) { + splitStr[i] = splitStr[i].toUpperCase(); + } else { + splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1); + } + } + // Directly return the joined string + return splitStr.join(" "); + } + +}; \ No newline at end of file From dcbb8477d98c32a2f733ab6473b9461c40fe3130 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 10:16:31 -0700 Subject: [PATCH 29/77] Update MMM-MyScoreboard.js replace --- MMM-MyScoreboard.js | 70 +++++++++++++++++++++++++++++++-------------- 1 file changed, 48 insertions(+), 22 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 1e5f89f..37cb4e8 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -16,6 +16,7 @@ Module.register("MMM-MyScoreboard",{ showLeagueSeparators: true, colored: true, rolloverHours: 3, //hours past midnight to show the pervious day's scores + alwaysShowToday: false, //show BOTH today and yesterday during rolloverHours shadeRows: false, highlightWinners: true, viewStyle: "largeLogos", @@ -520,7 +521,7 @@ Module.register("MMM-MyScoreboard",{ */ if (!this.loaded) { var loadingText = document.createElement("div"); - loadingText.innerHTML = this.translate("LOADING"); + loadingText.innerHTML = this.translate("LOADING MYSCOREBOARD"); loadingText.className = "dimmed light small"; wrapper.appendChild(loadingText); return wrapper; @@ -540,10 +541,11 @@ Module.register("MMM-MyScoreboard",{ var leagueSeparator = document.createElement("div"); leagueSeparator.classList.add("league-separator"); if (sport.label) { - leagueSeparator.innerHTML = "" + sport.label + ""; + separatorText = "" + sport.label + ""; } else { - leagueSeparator.innerHTML = "" + sport.league + ""; + separatorText = "" + sport.league + ""; } + leagueSeparator.innerHTML = separatorText wrapper.appendChild(leagueSeparator); } self.sportsData[index].forEach(function(game, gidx) { @@ -552,6 +554,30 @@ Module.register("MMM-MyScoreboard",{ wrapper.appendChild(boxScore); }); } + if (self.sportsDataYd[index] != null && self.sportsDataYd[index].length > 0) { + anyGames = true; + if (self.config.showLeagueSeparators) { + var leagueSeparator = document.createElement("div"); + leagueSeparator.classList.add("league-separator"); + if (sport.label) { + separatorText = "" + sport.label; + } else { + separatorText = "" + sport.league; + } + if (self.config.alwaysShowToday) { + separatorText = separatorText + " - Yesterday"; + } else { + separatorText = separatorText + ""; + } + leagueSeparator.innerHTML = separatorText + wrapper.appendChild(leagueSeparator); + } + self.sportsDataYd[index].forEach(function(game, gidx) { + var boxScore = self.boxScoreFactory(sport.league, game); + boxScore.classList.add(gidx % 2 == 0 ? "odd" : "even") ; + wrapper.appendChild(boxScore); + }); + } }); /* @@ -572,17 +598,21 @@ Module.register("MMM-MyScoreboard",{ socketNotificationReceived: function(notification, payload) { if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE" && payload.instanceId == this.identifier) { - console.log("[MMM-MyScoreboard] Updating Scores"); + Log.info("[MMM-MyScoreboard] Updating Today's Scores"); this.loaded = true; this.sportsData[payload.index] = payload.scores; this.updateDom(); + } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier) { + Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); + this.loaded = true; + this.sportsDataYd[payload.index] = payload.scores; + this.updateDom(); } else if (notification === "MMM-MYSCOREBOARD-LOCAL-LOGO-LIST" && payload.instanceId == this.identifier) { this.localLogos = payload.logos; /* get scores and set up polling */ - this.getScores(); /* @@ -599,7 +629,6 @@ Module.register("MMM-MyScoreboard",{ this.getScores(); }, 2 * 60 * 1000); - } }, @@ -625,6 +654,7 @@ Module.register("MMM-MyScoreboard",{ this.loaded = false; this.sportsData = new Array(); + this.sportsDataYd = new Array(); if (this.viewStyles.indexOf(this.config.viewStyle) == -1) { this.config.viewStyle = "largeLogos"; @@ -661,7 +691,6 @@ Module.register("MMM-MyScoreboard",{ } } - if (teamList.length == 0) { return null; } @@ -673,20 +702,20 @@ Module.register("MMM-MyScoreboard",{ var gameDate = moment(); //get today's date - if (gameDate.hour() < this.config.rolloverHours) { - /* - it's past midnight local time, but within the - rollover window. Query for yesterday's games, - not today's - */ - gameDate.subtract(1, "day"); - } - //just used for debug, if you want to force a specific date if (this.config.DEBUG_gameDate) { gameDate = moment(this.config.DEBUG_gameDate, "YYYYMMDD"); } + var whichDay = 'today' + if (gameDate.hour() < this.config.rolloverHours) { + if (!this.config.alwaysShowToday) { + whichDay = 'yesterday' + } else { + whichDay = 'both' + } + } + var self = this; this.config.sports.forEach( function(sport, index) { @@ -696,16 +725,13 @@ Module.register("MMM-MyScoreboard",{ league: sport.league, teams: self.makeTeamList(self, sport.league, sport.teams, sport.groups), provider: self.supportedLeagues[sport.league].provider, - gameDate: gameDate + gameDate: gameDate, + whichDay: whichDay }; self.sendSocketNotification("MMM-MYSCOREBOARD-GET-SCORES", payload); - - }); - - }, /* @@ -924,4 +950,4 @@ Module.register("MMM-MyScoreboard",{ } -}); \ No newline at end of file +}); From 9415f0432a5b0590c26a28d9fc4e4c93ac524d07 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 10:16:56 -0700 Subject: [PATCH 30/77] Update node_helper.js replace --- node_helper.js | 58 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/node_helper.js b/node_helper.js index 65620da..b74d7b6 100644 --- a/node_helper.js +++ b/node_helper.js @@ -1,6 +1,6 @@ const NodeHelper = require("node_helper"); const dirTree = require("directory-tree"); - +const moment = require("moment-timezone"); module.exports = NodeHelper.create({ @@ -10,6 +10,7 @@ module.exports = NodeHelper.create({ console.log("Starting node_helper for module [" + this.name + "]"); this.providers.SNET = require("./providers/SNET.js"); + this.providers.SNET_YD = require("./providers/SNET_YD.js"); this.providers.ESPN = require("./providers/ESPN.js"); this.localLogos = {}; @@ -45,11 +46,54 @@ module.exports = NodeHelper.create({ var self = this; var provider = this.providers[payload.provider]; - - provider.getScores(payload.league, payload.teams, payload.gameDate, function(scores) { - self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - }); - + var provider2 = this.providers[payload.provider]; + if (payload.provider == "SNET") { + provider2 = this.providers["SNET_YD"]; + } + + console.log("whichDay: " + payload.whichDay); + if (payload.whichDay == 'today') { + provider.getScores(payload.league, payload.teams, moment(), function(scores) { + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); + console.log("Sent new SCORE-UPDATE notification:"); + console.log("scores: "); + console.log(scores); + console.log("index: " + payload.index); + console.log("whichDay: " + payload.whichDay); + console.log(""); + }); + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + } else if (payload.whichDay == 'yesterday') { + provider.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); + console.log("Sent new SCORE-UPDATE notification:"); + console.log("scores: "); + console.log(scores); + console.log("index: " + payload.index); + console.log("whichDay: " + payload.whichDay); + console.log(""); + }); + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + } else if (payload.whichDay == 'both') { + provider.getScores(payload.league, payload.teams, moment(), function(scores) { + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); + console.log("Sent new SCORE-UPDATE notification:"); + console.log("scores: "); + console.log(scores); + console.log("index: " + payload.index); + console.log("whichDay: " + payload.whichDay); + console.log(""); + }); + provider2.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); + console.log("Sent new SCORE-UPDATE notification:"); + console.log("scores: "); + console.log(scores); + console.log("index: " + payload.index); + console.log("whichDay: " + payload.whichDay); + console.log(""); + }); + } } else if (notification == "MMM-MYSCOREBOARD-GET-LOCAL-LOGOS") { @@ -62,4 +106,4 @@ module.exports = NodeHelper.create({ -}); \ No newline at end of file +}); From 4b25a2b59d56905286c0bd6fc0e9e0b34fca5ab9 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 10:25:59 -0700 Subject: [PATCH 31/77] Update package.json upgrade minimum axios version per npm audit vulnerability report --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 757d343..23db2e5 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "author": "Jeff Clarke", "license": "MIT", "dependencies": { - "axios": "^0.27.2", + "axios": "^1.6.8", "directory-tree": "^3.3.1", "json-parse-async": "^1.0.3", "moment-timezone": "^0.5.37" From 5cc9e09f33911cf742c7127c0b12dad561faf6de Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 10:33:23 -0700 Subject: [PATCH 32/77] Update package.json revert --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 23db2e5..757d343 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "author": "Jeff Clarke", "license": "MIT", "dependencies": { - "axios": "^1.6.8", + "axios": "^0.27.2", "directory-tree": "^3.3.1", "json-parse-async": "^1.0.3", "moment-timezone": "^0.5.37" From 0cb990aaa4ea32041244e966425e9a0075c194f5 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:07:16 -0700 Subject: [PATCH 33/77] Update MMM-MyScoreboard.js Move logic for displaying only one box to main js instead of node_helper --- MMM-MyScoreboard.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 37cb4e8..aaea4b7 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -601,11 +601,17 @@ Module.register("MMM-MyScoreboard",{ Log.info("[MMM-MyScoreboard] Updating Today's Scores"); this.loaded = true; this.sportsData[payload.index] = payload.scores; + if ( moment().hour() >= this.config.rolloverHour ) { + this.sportsDataYd[payload.index] = new Array(); + } this.updateDom(); } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier) { Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); this.loaded = true; this.sportsDataYd[payload.index] = payload.scores; + if ( !this.config.alwaysShowToday ) { + this.sportsData[payload.index] = new Array(); + } this.updateDom(); } else if (notification === "MMM-MYSCOREBOARD-LOCAL-LOGO-LIST" && payload.instanceId == this.identifier) { this.localLogos = payload.logos; From bb7eda3c730dc4b0e87c6743df6a407c0a243699 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:08:30 -0700 Subject: [PATCH 34/77] Update node_helper.js move logic re displaying only one box to main js; remove some logging. --- node_helper.js | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/node_helper.js b/node_helper.js index b74d7b6..9f745bb 100644 --- a/node_helper.js +++ b/node_helper.js @@ -55,43 +55,23 @@ module.exports = NodeHelper.create({ if (payload.whichDay == 'today') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - console.log("Sent new SCORE-UPDATE notification:"); - console.log("scores: "); console.log(scores); - console.log("index: " + payload.index); - console.log("whichDay: " + payload.whichDay); - console.log(""); }); - self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + //self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } else if (payload.whichDay == 'yesterday') { provider.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - console.log("Sent new SCORE-UPDATE notification:"); - console.log("scores: "); console.log(scores); - console.log("index: " + payload.index); - console.log("whichDay: " + payload.whichDay); - console.log(""); }); - self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + //self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } else if (payload.whichDay == 'both') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - console.log("Sent new SCORE-UPDATE notification:"); - console.log("scores: "); console.log(scores); - console.log("index: " + payload.index); - console.log("whichDay: " + payload.whichDay); - console.log(""); }); provider2.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - console.log("Sent new SCORE-UPDATE notification:"); - console.log("scores: "); console.log(scores); - console.log("index: " + payload.index); - console.log("whichDay: " + payload.whichDay); - console.log(""); }); } From 02cea4499bc9fa8750c18d3715daa36f7c1e8e52 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:13:48 -0700 Subject: [PATCH 35/77] Update node_helper.js --- node_helper.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node_helper.js b/node_helper.js index 9f745bb..031b569 100644 --- a/node_helper.js +++ b/node_helper.js @@ -57,13 +57,13 @@ module.exports = NodeHelper.create({ self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); }); - //self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } else if (payload.whichDay == 'yesterday') { provider.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); }); - //self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } else if (payload.whichDay == 'both') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); From 7eaac6f5092ba14ab7c90e37f9c6e7e62906bd60 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:16:47 -0700 Subject: [PATCH 36/77] Update MMM-MyScoreboard.js --- MMM-MyScoreboard.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index aaea4b7..1298b44 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -601,17 +601,17 @@ Module.register("MMM-MyScoreboard",{ Log.info("[MMM-MyScoreboard] Updating Today's Scores"); this.loaded = true; this.sportsData[payload.index] = payload.scores; - if ( moment().hour() >= this.config.rolloverHour ) { - this.sportsDataYd[payload.index] = new Array(); - } + //if ( moment().hour() >= this.config.rolloverHour ) { + // this.sportsDataYd[payload.index] = new Array(); + //} this.updateDom(); } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier) { Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); this.loaded = true; this.sportsDataYd[payload.index] = payload.scores; - if ( !this.config.alwaysShowToday ) { - this.sportsData[payload.index] = new Array(); - } + //if ( !this.config.alwaysShowToday ) { + // this.sportsData[payload.index] = new Array(); + //} this.updateDom(); } else if (notification === "MMM-MYSCOREBOARD-LOCAL-LOGO-LIST" && payload.instanceId == this.identifier) { this.localLogos = payload.logos; From 0426429e2593bd52d3af3528941761463b4e55ec Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:19:43 -0700 Subject: [PATCH 37/77] Update MMM-MyScoreboard.js --- MMM-MyScoreboard.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 1298b44..aaea4b7 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -601,17 +601,17 @@ Module.register("MMM-MyScoreboard",{ Log.info("[MMM-MyScoreboard] Updating Today's Scores"); this.loaded = true; this.sportsData[payload.index] = payload.scores; - //if ( moment().hour() >= this.config.rolloverHour ) { - // this.sportsDataYd[payload.index] = new Array(); - //} + if ( moment().hour() >= this.config.rolloverHour ) { + this.sportsDataYd[payload.index] = new Array(); + } this.updateDom(); } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier) { Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); this.loaded = true; this.sportsDataYd[payload.index] = payload.scores; - //if ( !this.config.alwaysShowToday ) { - // this.sportsData[payload.index] = new Array(); - //} + if ( !this.config.alwaysShowToday ) { + this.sportsData[payload.index] = new Array(); + } this.updateDom(); } else if (notification === "MMM-MYSCOREBOARD-LOCAL-LOGO-LIST" && payload.instanceId == this.identifier) { this.localLogos = payload.logos; From 10e2cc59560d192d609a55dfa316efc2df508d4a Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:19:57 -0700 Subject: [PATCH 38/77] Update node_helper.js --- node_helper.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node_helper.js b/node_helper.js index 031b569..9f745bb 100644 --- a/node_helper.js +++ b/node_helper.js @@ -57,13 +57,13 @@ module.exports = NodeHelper.create({ self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); }); - self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + //self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } else if (payload.whichDay == 'yesterday') { provider.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); }); - self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + //self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } else if (payload.whichDay == 'both') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); From a46614aa6a98b6aa3f33d17266fb438c7c3b6268 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:32:38 -0700 Subject: [PATCH 39/77] Update node_helper.js remove logging --- node_helper.js | 1 - 1 file changed, 1 deletion(-) diff --git a/node_helper.js b/node_helper.js index 9f745bb..790cf48 100644 --- a/node_helper.js +++ b/node_helper.js @@ -51,7 +51,6 @@ module.exports = NodeHelper.create({ provider2 = this.providers["SNET_YD"]; } - console.log("whichDay: " + payload.whichDay); if (payload.whichDay == 'today') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); From 971abfa01ed00c249b0475abbe41d931b2014a78 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:35:39 -0700 Subject: [PATCH 40/77] Update ESPN.js revert --- providers/ESPN.js | 1 + 1 file changed, 1 insertion(+) diff --git a/providers/ESPN.js b/providers/ESPN.js index 8160acf..e520365 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -423,6 +423,7 @@ module.exports = { }) .catch( function(r_err) { console.log( "[MMM-MyScoreboard] " + moment().format("D-MMM-YY HH:mm") + " ** ERROR ** Couldn't retrieve " + league + " data for provider ESPN: " + r_err ); + console.log( "[MMM-MyScoreboard] " + url ); }) From b415a600db5d5e744e7acef36ba39e1d6dcd2ac3 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:36:26 -0700 Subject: [PATCH 41/77] Update ESPN.js revert --- providers/ESPN.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index e520365..36a0bf3 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -423,7 +423,7 @@ module.exports = { }) .catch( function(r_err) { console.log( "[MMM-MyScoreboard] " + moment().format("D-MMM-YY HH:mm") + " ** ERROR ** Couldn't retrieve " + league + " data for provider ESPN: " + r_err ); - console.log( "[MMM-MyScoreboard] " + url ); + console.log( "[MMM-MyScoreboard] " + url ); }) From 22a582bab6708e66f57c22692b10c54f99a69119 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:36:59 -0700 Subject: [PATCH 42/77] Update ESPN.js revert --- providers/ESPN.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index 36a0bf3..0de2c0d 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -648,8 +648,7 @@ module.exports = { vScore: parseInt(vTeamData.score), status: status, hTeamLogoUrl: hTeamData.team.logo ? hTeamData.team.logo : "", - vTeamLogoUrl: vTeamData.team.logo ? vTeamData.team.logo : "", - date: moment(gameDate).format("YYYY-MM-DD") + vTeamLogoUrl: vTeamData.team.logo ? vTeamData.team.logo : "" }); }); From 848686ce794b910f97e101db8b65ee246d534d4b Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:39:13 -0700 Subject: [PATCH 43/77] Update ESPN.js revert From 7495699f541a4bb4e398b087aee1a963b3230539 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:39:51 -0700 Subject: [PATCH 44/77] Update ESPN.js revert From f8848ab69ee4e0087fa62adb2166ec0fe0f18008 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:40:54 -0700 Subject: [PATCH 45/77] Update SNET.js revert --- providers/SNET.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/providers/SNET.js b/providers/SNET.js index e06db5c..9429e55 100644 --- a/providers/SNET.js +++ b/providers/SNET.js @@ -110,7 +110,6 @@ module.exports = { var self = this; var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); - self.usedDate = this.gameDate.format("YYYY-MM-DD"); axios.get(url) @@ -313,8 +312,7 @@ module.exports = { vTeamLogoUrl: game.visiting_team.img_url_90, hScore: game.home_team.score, vScore: game.visiting_team.score, - status: status, - date: self.usedDate + status: status }; formattedGames.push(formattedGame); From f048f258dc830806da3cd178e379101b2f7ea741 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:41:41 -0700 Subject: [PATCH 46/77] Update SNET_YD.js revert --- providers/SNET_YD.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/providers/SNET_YD.js b/providers/SNET_YD.js index 667b91d..1937ac7 100644 --- a/providers/SNET_YD.js +++ b/providers/SNET_YD.js @@ -110,7 +110,6 @@ module.exports = { var self = this; var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); - self.usedDate = this.gameDate.format("YYYY-MM-DD"); axios.get(url) @@ -426,4 +425,4 @@ module.exports = { return splitStr.join(" "); } -}; \ No newline at end of file +}; From 7b10a7584b5fad0a77e2db384e0faeeff3df82f5 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:42:57 -0700 Subject: [PATCH 47/77] Update README.md Reformat install --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1662eb1..59600dc 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,12 @@ followed by ## Installation -1. Navigate into your MagicMirror `modules` folder and execute
-`git clone https://github.com/jclarke0000/MMM-MyScoreboard`. -2. Enter the new `MMM-MyScoreboard` directory and execute `npm install`. +```sh +cd ~/MagicMirror/modules +git clone https://github.com/jclarke0000/MMM-MyScoreboard +cd MMM-MyScoreboard +npm install +``` ## Notice to anyone updating from previous versions From b4efcb66a35a5f87eaf3c0d6d83143090460d615 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:51:20 -0700 Subject: [PATCH 48/77] Update README.md Update table style; add alwaysShowToday description --- README.md | 54 +++++++++++------------------------------------------- 1 file changed, 11 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index 59600dc..59d619e 100644 --- a/README.md +++ b/README.md @@ -71,49 +71,17 @@ npm install ## Configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionDescription
showLeagueSeparatorsWhether to show separators between different leagues.

Type Boolean
Defaults to true
coloredWhether to present module in colour or black-and-white.

Type Boolean
Defaults to true
rolloverHoursHow many hours past midnight to continue to show the previous day's games.

Type Number
Defaults to 3 (i.e.: continue to show yesterday's games until 3:00 AM)
viewStyleOne of the following: largeLogos, mediumLogos, smallLogos, oneLine, oneLineWithLogos, stacked or stackedWithLogos.

Type String
Defaults to largeLogos
See below for examples of the view styles.
shadeRowsWhether to shade alternate rows.

Type Boolean
Defaults to false
highlightWinnersFor games that are final, the winning team / score is highlighted.

Type Boolean
Defaults to true
showRankingsFor the NCAAF and NCAAM, whether to show the rankings for the top 25 teams.

Type Boolean
Defaults to true
sportsREQUIRED An array of leagues and teams you wish to follow.

Type Array
See below for instructions to configure your sports list.
- +| Option | Description +|----------------------- |------------ +| `showLeagueSeparators` | Whether to show separators between different leagues.

**Type** `Boolean`
**Default** `true` +| `colored` | Whether to present module in colour or black-and-white.

**Type** `Boolean`
**Default** `true` +| `rolloverHours` | How many hours past midnight to continue to show the previous day's games.

**Type** `Number`
**Default** `3` (i.e.: continue to show yesterday's games until 3:00 AM) +| `alwaysShowToday` | Whether to show today's games _along with_ the previous day's games during `rolloverHours` period.

**Type** `Boolean`
**Default** `false` +| `viewStyle` | One of the following: `largeLogos`, `mediumLogos`, `smallLogos`, `oneLine`, `oneLineWithLogos`, `stacked` or `stackedWithLogos`.

**Type** `String`
**Default** `largeLogos`
See below for examples of the view styles. +| `shadeRows` | Whether to shade alternate rows.

**Type** `Boolean`
**Default** `false` +| `highlightWinners` | For games that are final, the winning team / score is highlighted.

**Type** `Boolean`
**Default** `true` +| `showRankings` | For the NCAAF and NCAAM, whether to show the rankings for the top 25 teams.

**Type** `Boolean`
**Default** `true` +| `sports` | **REQUIRED** An array of leagues and teams you wish to follow.

**Type** `Array`
See below for instructions to configure your `sports` list. ## Configuring your sports list From 155f04e57ae1a0e807d1ad3845052c3ff777b79a Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:52:15 -0700 Subject: [PATCH 49/77] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 59d619e..697ef24 100644 --- a/README.md +++ b/README.md @@ -77,11 +77,11 @@ npm install | `colored` | Whether to present module in colour or black-and-white.

**Type** `Boolean`
**Default** `true` | `rolloverHours` | How many hours past midnight to continue to show the previous day's games.

**Type** `Number`
**Default** `3` (i.e.: continue to show yesterday's games until 3:00 AM) | `alwaysShowToday` | Whether to show today's games _along with_ the previous day's games during `rolloverHours` period.

**Type** `Boolean`
**Default** `false` -| `viewStyle` | One of the following: `largeLogos`, `mediumLogos`, `smallLogos`, `oneLine`, `oneLineWithLogos`, `stacked` or `stackedWithLogos`.

**Type** `String`
**Default** `largeLogos`
See below for examples of the view styles. +| `viewStyle` | One of the following: `largeLogos`, `mediumLogos`, `smallLogos`, `oneLine`, `oneLineWithLogos`, `stacked` or `stackedWithLogos`.
See below for examples of the view styles.

**Type** `String`
**Default** `largeLogos` | `shadeRows` | Whether to shade alternate rows.

**Type** `Boolean`
**Default** `false` | `highlightWinners` | For games that are final, the winning team / score is highlighted.

**Type** `Boolean`
**Default** `true` | `showRankings` | For the NCAAF and NCAAM, whether to show the rankings for the top 25 teams.

**Type** `Boolean`
**Default** `true` -| `sports` | **REQUIRED** An array of leagues and teams you wish to follow.

**Type** `Array`
See below for instructions to configure your `sports` list. +| `sports` | **REQUIRED** An array of leagues and teams you wish to follow.
See below for instructions to configure your `sports` list.

**Type** `Array` ## Configuring your sports list From 81e277b188e5e5f5076111814ee3cc305e0ce67d Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:56:37 -0700 Subject: [PATCH 50/77] Update README.md reformat table --- README.md | 40 ++++++++++------------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 697ef24..44ba0b4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # MMM-MyScoreboard -This a module for MagicMirror
+This a module for **MagicMirror**
https://magicmirror.builders/
https://github.com/MichMich/MagicMirror @@ -88,39 +88,19 @@ npm install Each entry in your `sports` array is an object with the following properties: - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
leagueREQUIRED e.g.: "NHL". Use any of the bold, uppercase league labaels from the list bleow.

Type String
labelIf showLeagueSeparators is set to true, you can optionally set a custom label for the separator. Useful in particular to show something other than "NCAAM_MM" for the March Madness tournament.

Type String
Defaults to the value for league.
teamsAn array of teams for which you want to see scores. Specify teams using their shortcodes (e.g.: "TOR" for Toronto Maple Leafs.

Type Array
See below for a full listing of teams and their short codes

UPDATE v2.0: This is no longer required.
groupsIn addition to specifying individual teams, you may also specify groups. Generally these groups correspond to the league's respective conferences and divisions. See below for a full listing of groups available for each league. (e.g.: ["Atlantic", "Metropolitain"] for teams in the Atlantic and Metropolitain divisions.

Type Array
- -It should be noted that if you specify arrays for both teams and groups they will be added together. So it's possible to make a team list out of a division and a few other specific teams. If you omit both parameters, then all games for the particular league will be shown. +| Property | Description +|----------- |------------ +| `league` | **REQUIRED** e.g.: `"NHL"`. Use any of the bold, uppercase league labaels from the list bleow.

**Type** `String` +| `label` | If `showLeagueSeparators` is set to `true`, you can optionally set a custom label for the separator. Useful in particular to show something other than `"NCAAM_MM"` for the March Madness tournament.

**Type** `String`
Defaults to the value for `league`. +| `teams` | An array of teams for which you want to see scores. Specify teams using their shortcodes (e.g.: `"TOR"` for Toronto Maple Leafs.

**Type** `Array`
See below for a full listing of teams and their short codes

**UPDATE v2.0:** This is no longer required. +| `groups` | In addition to specifying individual teams, you may also specify groups. Generally these groups correspond to the league's respective conferences and divisions. See below for a full listing of groups available for each league. (e.g.: `["Atlantic", "Metropolitain"]` for teams in the Atlantic and Metropolitain divisions.

**Type** `Array` + +It should be noted that if you specify arrays for both `teams` and `groups` they will be added together. So it's possible to make a team list out of a division and a few other specific teams. If you omit both parameters, then all games for the particular league will be shown. ## Example configuration -``` +```js { module: "MMM-MyScoreboard", position: "top_right", From f2706f80c1dc13c12bae40d19e8812e2b0c9211d Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:57:25 -0700 Subject: [PATCH 51/77] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44ba0b4..ef1e7db 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ Each entry in your `sports` array is an object with the following properties: | Property | Description |----------- |------------ | `league` | **REQUIRED** e.g.: `"NHL"`. Use any of the bold, uppercase league labaels from the list bleow.

**Type** `String` -| `label` | If `showLeagueSeparators` is set to `true`, you can optionally set a custom label for the separator. Useful in particular to show something other than `"NCAAM_MM"` for the March Madness tournament.

**Type** `String`
Defaults to the value for `league`. +| `label` | If `showLeagueSeparators` is set to `true`, you can optionally set a custom label for the separator. Useful in particular to show something other than `"NCAAM_MM"` for the March Madness tournament.

**Type** `String`
**Default** the value for `league`. | `teams` | An array of teams for which you want to see scores. Specify teams using their shortcodes (e.g.: `"TOR"` for Toronto Maple Leafs.

**Type** `Array`
See below for a full listing of teams and their short codes

**UPDATE v2.0:** This is no longer required. | `groups` | In addition to specifying individual teams, you may also specify groups. Generally these groups correspond to the league's respective conferences and divisions. See below for a full listing of groups available for each league. (e.g.: `["Atlantic", "Metropolitain"]` for teams in the Atlantic and Metropolitain divisions.

**Type** `Array` From e9a04805240915aaa989180cf5b27da2cbf87769 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 11:58:53 -0700 Subject: [PATCH 52/77] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ef1e7db..415f559 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Each entry in your `sports` array is an object with the following properties: |----------- |------------ | `league` | **REQUIRED** e.g.: `"NHL"`. Use any of the bold, uppercase league labaels from the list bleow.

**Type** `String` | `label` | If `showLeagueSeparators` is set to `true`, you can optionally set a custom label for the separator. Useful in particular to show something other than `"NCAAM_MM"` for the March Madness tournament.

**Type** `String`
**Default** the value for `league`. -| `teams` | An array of teams for which you want to see scores. Specify teams using their shortcodes (e.g.: `"TOR"` for Toronto Maple Leafs.

**Type** `Array`
See below for a full listing of teams and their short codes

**UPDATE v2.0:** This is no longer required. +| `teams` | An array of teams for which you want to see scores. Specify teams using their shortcodes (e.g.: `"TOR"` for Toronto Maple Leafs.
See below for a full listing of teams and their short codes

**Type** `Array`
**UPDATE v2.0:** This is no longer required. | `groups` | In addition to specifying individual teams, you may also specify groups. Generally these groups correspond to the league's respective conferences and divisions. See below for a full listing of groups available for each league. (e.g.: `["Atlantic", "Metropolitain"]` for teams in the Atlantic and Metropolitain divisions.

**Type** `Array` It should be noted that if you specify arrays for both `teams` and `groups` they will be added together. So it's possible to make a team list out of a division and a few other specific teams. If you omit both parameters, then all games for the particular league will be shown. From dc48598e78df5fa2e67df8063a295874de03c96c Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 12:54:58 -0700 Subject: [PATCH 53/77] Update node_helper.js add logging --- node_helper.js | 1 + 1 file changed, 1 insertion(+) diff --git a/node_helper.js b/node_helper.js index 790cf48..5969a55 100644 --- a/node_helper.js +++ b/node_helper.js @@ -51,6 +51,7 @@ module.exports = NodeHelper.create({ provider2 = this.providers["SNET_YD"]; } + console.log(payload.whichDay); if (payload.whichDay == 'today') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); From 13ed5bc6d9340cf4e0cc0092828021400649e15a Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 12:59:02 -0700 Subject: [PATCH 54/77] Update node_helper.js --- node_helper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node_helper.js b/node_helper.js index 5969a55..becbbab 100644 --- a/node_helper.js +++ b/node_helper.js @@ -51,7 +51,7 @@ module.exports = NodeHelper.create({ provider2 = this.providers["SNET_YD"]; } - console.log(payload.whichDay); + console.log("whichDay: " + payload.whichDay); if (payload.whichDay == 'today') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); From 763542e6a67e8767bedb75a7b37b5a6618e0df99 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 14:04:06 -0700 Subject: [PATCH 55/77] Update node_helper.js move logic back to node_helper --- node_helper.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node_helper.js b/node_helper.js index becbbab..1f9500e 100644 --- a/node_helper.js +++ b/node_helper.js @@ -57,13 +57,13 @@ module.exports = NodeHelper.create({ self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); }); - //self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } else if (payload.whichDay == 'yesterday') { provider.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); }); - //self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } else if (payload.whichDay == 'both') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); From 2bd47d51fe053a374ec41686f7d37060d91b39c6 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 14:04:45 -0700 Subject: [PATCH 56/77] Update MMM-MyScoreboard.js move logic back to node_helper --- MMM-MyScoreboard.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index aaea4b7..1298b44 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -601,17 +601,17 @@ Module.register("MMM-MyScoreboard",{ Log.info("[MMM-MyScoreboard] Updating Today's Scores"); this.loaded = true; this.sportsData[payload.index] = payload.scores; - if ( moment().hour() >= this.config.rolloverHour ) { - this.sportsDataYd[payload.index] = new Array(); - } + //if ( moment().hour() >= this.config.rolloverHour ) { + // this.sportsDataYd[payload.index] = new Array(); + //} this.updateDom(); } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier) { Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); this.loaded = true; this.sportsDataYd[payload.index] = payload.scores; - if ( !this.config.alwaysShowToday ) { - this.sportsData[payload.index] = new Array(); - } + //if ( !this.config.alwaysShowToday ) { + // this.sportsData[payload.index] = new Array(); + //} this.updateDom(); } else if (notification === "MMM-MYSCOREBOARD-LOCAL-LOGO-LIST" && payload.instanceId == this.identifier) { this.localLogos = payload.logos; From 71c1a1aa7fb57de5725bbb5d16d56803b681903c Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 15:26:07 -0700 Subject: [PATCH 57/77] Update node_helper.js simplify logic --- node_helper.js | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/node_helper.js b/node_helper.js index 1f9500e..432e25e 100644 --- a/node_helper.js +++ b/node_helper.js @@ -52,19 +52,12 @@ module.exports = NodeHelper.create({ } console.log("whichDay: " + payload.whichDay); - if (payload.whichDay == 'today') { - provider.getScores(payload.league, payload.teams, moment(), function(scores) { + if (payload.whichDay != 'both') { + provider.getScores(payload.league, payload.teams, payload.gameDate, function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); }); - self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); - } else if (payload.whichDay == 'yesterday') { - provider.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { - self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - console.log(scores); - }); - self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: {}}); - } else if (payload.whichDay == 'both') { + } else { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); From 61393d5ad80ddff1cac6739599fb58851a51eeae Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 15:32:47 -0700 Subject: [PATCH 58/77] Update MMM-MyScoreboard.js simplify logic --- MMM-MyScoreboard.js | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 1298b44..3e381d8 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -541,11 +541,10 @@ Module.register("MMM-MyScoreboard",{ var leagueSeparator = document.createElement("div"); leagueSeparator.classList.add("league-separator"); if (sport.label) { - separatorText = "" + sport.label + ""; + leagueSeparator.innerHTML = "" + sport.label + ""; } else { - separatorText = "" + sport.league + ""; + leagueSeparator.innerHTML = "" + sport.league + ""; } - leagueSeparator.innerHTML = separatorText wrapper.appendChild(leagueSeparator); } self.sportsData[index].forEach(function(game, gidx) { @@ -554,22 +553,16 @@ Module.register("MMM-MyScoreboard",{ wrapper.appendChild(boxScore); }); } - if (self.sportsDataYd[index] != null && self.sportsDataYd[index].length > 0) { + if (self.sportsDataYd[index] != null && self.sportsDataYd[index].length > 0 && self.config.alwaysShowToday) { anyGames = true; if (self.config.showLeagueSeparators) { var leagueSeparator = document.createElement("div"); leagueSeparator.classList.add("league-separator"); if (sport.label) { - separatorText = "" + sport.label; + leagueSeparator.innerHTML = "" + sport.label + " - Yesterday"; } else { - separatorText = "" + sport.league; + leagueSeparator.innerHTML = "" + sport.league + " - Yesterday"; } - if (self.config.alwaysShowToday) { - separatorText = separatorText + " - Yesterday"; - } else { - separatorText = separatorText + ""; - } - leagueSeparator.innerHTML = separatorText wrapper.appendChild(leagueSeparator); } self.sportsDataYd[index].forEach(function(game, gidx) { @@ -605,7 +598,7 @@ Module.register("MMM-MyScoreboard",{ // this.sportsDataYd[payload.index] = new Array(); //} this.updateDom(); - } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier) { + } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier && this.config.alwaysShowToday) { Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); this.loaded = true; this.sportsDataYd[payload.index] = payload.scores; @@ -708,18 +701,23 @@ Module.register("MMM-MyScoreboard",{ var gameDate = moment(); //get today's date + if (gameDate.hour() < this.config.rolloverHours) { + /* + it's past midnight local time, but within the + rollover window. Query for yesterday's games, + not today's + */ + gameDate.subtract(1, "day"); + } + //just used for debug, if you want to force a specific date if (this.config.DEBUG_gameDate) { gameDate = moment(this.config.DEBUG_gameDate, "YYYYMMDD"); } - var whichDay = 'today' - if (gameDate.hour() < this.config.rolloverHours) { - if (!this.config.alwaysShowToday) { - whichDay = 'yesterday' - } else { - whichDay = 'both' - } + var whichDay = 'one' + if (this.config.alwaysShowToday) { + whichDay = 'both' } var self = this; From b4cc3af6fa50be7c4eb39f00ad1e60954f8ab3f5 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 15:38:38 -0700 Subject: [PATCH 59/77] Update MMM-MyScoreboard.js fix logic --- MMM-MyScoreboard.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 3e381d8..3789bc5 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -700,6 +700,7 @@ Module.register("MMM-MyScoreboard",{ getScores: function() { var gameDate = moment(); //get today's date + var whichDay = 'one'; if (gameDate.hour() < this.config.rolloverHours) { /* @@ -708,6 +709,9 @@ Module.register("MMM-MyScoreboard",{ not today's */ gameDate.subtract(1, "day"); + if (this.config.alwaysShowToday) { + whichDay = 'both'; + } } //just used for debug, if you want to force a specific date @@ -715,11 +719,6 @@ Module.register("MMM-MyScoreboard",{ gameDate = moment(this.config.DEBUG_gameDate, "YYYYMMDD"); } - var whichDay = 'one' - if (this.config.alwaysShowToday) { - whichDay = 'both' - } - var self = this; this.config.sports.forEach( function(sport, index) { From 00968f85cb64e132d3ea1cf0d1d8f1c90e5a27c7 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 15:42:00 -0700 Subject: [PATCH 60/77] Update node_helper.js flip logic --- node_helper.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/node_helper.js b/node_helper.js index 432e25e..aa36d47 100644 --- a/node_helper.js +++ b/node_helper.js @@ -52,12 +52,7 @@ module.exports = NodeHelper.create({ } console.log("whichDay: " + payload.whichDay); - if (payload.whichDay != 'both') { - provider.getScores(payload.league, payload.teams, payload.gameDate, function(scores) { - self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - console.log(scores); - }); - } else { + if (payload.whichDay == 'both') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); @@ -66,6 +61,11 @@ module.exports = NodeHelper.create({ self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); }); + } else { + provider.getScores(payload.league, payload.teams, payload.gameDate, function(scores) { + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); + console.log(scores); + }); } } else if (notification == "MMM-MYSCOREBOARD-GET-LOCAL-LOGOS") { From 5827115c346fc171884b87bc9802c2db5133814e Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 15:48:39 -0700 Subject: [PATCH 61/77] Update MMM-MyScoreboard.js --- MMM-MyScoreboard.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 3789bc5..4622138 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -594,9 +594,9 @@ Module.register("MMM-MyScoreboard",{ Log.info("[MMM-MyScoreboard] Updating Today's Scores"); this.loaded = true; this.sportsData[payload.index] = payload.scores; - //if ( moment().hour() >= this.config.rolloverHour ) { - // this.sportsDataYd[payload.index] = new Array(); - //} + if ( this.config.alwaysShowToday && moment().hour() >= this.config.rolloverHour ) { + this.sportsDataYd[payload.index] = new Array(); + } this.updateDom(); } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier && this.config.alwaysShowToday) { Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); From abe30e931424e551569e1e1a9bd3204c5b0d040f Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 15:53:38 -0700 Subject: [PATCH 62/77] Update MMM-MyScoreboard.js clean up code --- MMM-MyScoreboard.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 4622138..5bd1333 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -591,7 +591,7 @@ Module.register("MMM-MyScoreboard",{ socketNotificationReceived: function(notification, payload) { if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE" && payload.instanceId == this.identifier) { - Log.info("[MMM-MyScoreboard] Updating Today's Scores"); + Log.info("[MMM-MyScoreboard] Updating Scores"); this.loaded = true; this.sportsData[payload.index] = payload.scores; if ( this.config.alwaysShowToday && moment().hour() >= this.config.rolloverHour ) { @@ -602,9 +602,6 @@ Module.register("MMM-MyScoreboard",{ Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); this.loaded = true; this.sportsDataYd[payload.index] = payload.scores; - //if ( !this.config.alwaysShowToday ) { - // this.sportsData[payload.index] = new Array(); - //} this.updateDom(); } else if (notification === "MMM-MYSCOREBOARD-LOCAL-LOGO-LIST" && payload.instanceId == this.identifier) { this.localLogos = payload.logos; @@ -612,6 +609,7 @@ Module.register("MMM-MyScoreboard",{ /* get scores and set up polling */ + this.getScores(); /* @@ -733,6 +731,7 @@ Module.register("MMM-MyScoreboard",{ }; self.sendSocketNotification("MMM-MYSCOREBOARD-GET-SCORES", payload); + }); }, From 3becc35427b5463565cd674416667da40593b5cc Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 15:54:15 -0700 Subject: [PATCH 63/77] Update MMM-MyScoreboard.js --- MMM-MyScoreboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 5bd1333..313e7d1 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -609,7 +609,7 @@ Module.register("MMM-MyScoreboard",{ /* get scores and set up polling */ - + this.getScores(); /* From 78f10e69b279f0f4fc4d071db98107db9dbfc914 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 16:10:57 -0700 Subject: [PATCH 64/77] Update README.md WAS > WSH --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 415f559..ed65edb 100644 --- a/README.md +++ b/README.md @@ -445,7 +445,7 @@ STL St. Louis Cardinals TB Tampa Bay Rays TEX Texas Rangers TOR Toronto Blue Jays -WAS Washington Nationals +WSH Washington Nationals Groups: --------------- @@ -567,7 +567,7 @@ SEA Seattle Seahawks SF San Francisco 49ers TB Tampa Bay Buccaneers TEN Tennessee Titans -WAS Washington +WSH Washington Groups: --------------- From 583ccdf94e16d17a1d13c864e0dafe4e8ad049f6 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 16:11:26 -0700 Subject: [PATCH 65/77] Update MMM-MyScoreboard.js --- MMM-MyScoreboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 313e7d1..93f0d84 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -598,7 +598,7 @@ Module.register("MMM-MyScoreboard",{ this.sportsDataYd[payload.index] = new Array(); } this.updateDom(); - } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier && this.config.alwaysShowToday) { + } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier && this.config.alwaysShowToday ) { Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); this.loaded = true; this.sportsDataYd[payload.index] = payload.scores; From b412661f1d09954d012e33981dc8fe10e71b1ef0 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 16:12:12 -0700 Subject: [PATCH 66/77] Update MMM-MyScoreboard.js add time limit to YD notification update --- MMM-MyScoreboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 93f0d84..79bf19b 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -598,7 +598,7 @@ Module.register("MMM-MyScoreboard",{ this.sportsDataYd[payload.index] = new Array(); } this.updateDom(); - } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier && this.config.alwaysShowToday ) { + } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier && this.config.alwaysShowToday && moment().hour() < this.config.rolloverHour ) { Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); this.loaded = true; this.sportsDataYd[payload.index] = payload.scores; From 7c79a4f79c0eea915824516b7fe54a63f9a4f67e Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 16:17:56 -0700 Subject: [PATCH 67/77] Update node_helper.js --- node_helper.js | 1 + 1 file changed, 1 insertion(+) diff --git a/node_helper.js b/node_helper.js index aa36d47..c41aac2 100644 --- a/node_helper.js +++ b/node_helper.js @@ -52,6 +52,7 @@ module.exports = NodeHelper.create({ } console.log("whichDay: " + payload.whichDay); + console.log("gameDate: " + payload.gameDate); if (payload.whichDay == 'both') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); From a5291c37782a3e8a4eb06146bb7db926588853a8 Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 16:31:49 -0700 Subject: [PATCH 68/77] Update MMM-MyScoreboard.js --- MMM-MyScoreboard.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/MMM-MyScoreboard.js b/MMM-MyScoreboard.js index 79bf19b..86212a5 100644 --- a/MMM-MyScoreboard.js +++ b/MMM-MyScoreboard.js @@ -594,11 +594,8 @@ Module.register("MMM-MyScoreboard",{ Log.info("[MMM-MyScoreboard] Updating Scores"); this.loaded = true; this.sportsData[payload.index] = payload.scores; - if ( this.config.alwaysShowToday && moment().hour() >= this.config.rolloverHour ) { - this.sportsDataYd[payload.index] = new Array(); - } this.updateDom(); - } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier && this.config.alwaysShowToday && moment().hour() < this.config.rolloverHour ) { + } else if ( notification === "MMM-MYSCOREBOARD-SCORE-UPDATE-YD" && payload.instanceId == this.identifier && this.config.alwaysShowToday ) { Log.info("[MMM-MyScoreboard] Updating Yesterday's Scores"); this.loaded = true; this.sportsDataYd[payload.index] = payload.scores; From 9433782273181fe8dbc7349c5087b5a2119c6a5c Mon Sep 17 00:00:00 2001 From: dathbe Date: Wed, 15 May 2024 16:32:41 -0700 Subject: [PATCH 69/77] Update node_helper.js --- node_helper.js | 1 + 1 file changed, 1 insertion(+) diff --git a/node_helper.js b/node_helper.js index c41aac2..6fe4060 100644 --- a/node_helper.js +++ b/node_helper.js @@ -67,6 +67,7 @@ module.exports = NodeHelper.create({ self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); console.log(scores); }); + self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } } else if (notification == "MMM-MYSCOREBOARD-GET-LOCAL-LOGOS") { From 25ded1b4ec6bff0b119c95de870921240b2982e0 Mon Sep 17 00:00:00 2001 From: dathbe Date: Thu, 16 May 2024 12:27:46 -0700 Subject: [PATCH 70/77] Update node_helper.js remove some logging --- node_helper.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/node_helper.js b/node_helper.js index 6fe4060..23817ca 100644 --- a/node_helper.js +++ b/node_helper.js @@ -60,12 +60,10 @@ module.exports = NodeHelper.create({ }); provider2.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - console.log(scores); }); } else { provider.getScores(payload.league, payload.teams, payload.gameDate, function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - console.log(scores); }); self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: {}}); } From 70bf9567fd8cf93af0408b89abedb7f5be517ff5 Mon Sep 17 00:00:00 2001 From: dathbe Date: Thu, 16 May 2024 12:28:32 -0700 Subject: [PATCH 71/77] Update node_helper.js remove some logging --- node_helper.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/node_helper.js b/node_helper.js index 23817ca..b4b1995 100644 --- a/node_helper.js +++ b/node_helper.js @@ -51,8 +51,6 @@ module.exports = NodeHelper.create({ provider2 = this.providers["SNET_YD"]; } - console.log("whichDay: " + payload.whichDay); - console.log("gameDate: " + payload.gameDate); if (payload.whichDay == 'both') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); From 1a2710020bf1f8d28ba4ed070bbfe9433f4f829e Mon Sep 17 00:00:00 2001 From: dathbe Date: Thu, 16 May 2024 12:31:48 -0700 Subject: [PATCH 72/77] Update node_helper.js remove some logging --- node_helper.js | 1 - 1 file changed, 1 deletion(-) diff --git a/node_helper.js b/node_helper.js index b4b1995..50180fc 100644 --- a/node_helper.js +++ b/node_helper.js @@ -54,7 +54,6 @@ module.exports = NodeHelper.create({ if (payload.whichDay == 'both') { provider.getScores(payload.league, payload.teams, moment(), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE", {instanceId: payload.instanceId, index: payload.index, scores: scores}); - console.log(scores); }); provider2.getScores(payload.league, payload.teams, moment().subtract(1, "day"), function(scores) { self.sendSocketNotification("MMM-MYSCOREBOARD-SCORE-UPDATE-YD", {instanceId: payload.instanceId, index: payload.index, scores: scores}); From 5c9b6c72fa96b366cc104f9518c74293e32469a9 Mon Sep 17 00:00:00 2001 From: zaccoffey <50477879+zaccoffey@users.noreply.github.com> Date: Sat, 14 Dec 2024 22:57:09 -0600 Subject: [PATCH 73/77] Update SNET.js Update API endpoint for SNET provider --- providers/SNET.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/providers/SNET.js b/providers/SNET.js index 65befdb..9fd150c 100644 --- a/providers/SNET.js +++ b/providers/SNET.js @@ -14,7 +14,7 @@ All sports are provided in a single feed at - https://mobile-statsv2.sportsnet.ca/ticker + https://stats-api.sportsnet.ca/ticker The feed takes one parameter: @@ -109,7 +109,7 @@ module.exports = { // console.log("Get SNET JSON"); var self = this; - var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); + var url = "https://stats-api.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); axios.get(url) @@ -426,4 +426,4 @@ module.exports = { } -}; \ No newline at end of file +}; From ad0735c936dbc013506483d44e0c4291f8c27c4c Mon Sep 17 00:00:00 2001 From: dathbe Date: Tue, 17 Dec 2024 14:12:09 -0800 Subject: [PATCH 74/77] Update ESPN.js filter by date --- providers/ESPN.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/providers/ESPN.js b/providers/ESPN.js index 0de2c0d..61d6e81 100644 --- a/providers/ESPN.js +++ b/providers/ESPN.js @@ -419,7 +419,7 @@ module.exports = { axios.get(url) .then( function(response) { - callback(self.formatScores(league, response.data, teams)); + callback(self.formatScores(league, response.data, teams, moment(gameDate).format("YYYYMMDD"))); }) .catch( function(r_err) { console.log( "[MMM-MyScoreboard] " + moment().format("D-MMM-YY HH:mm") + " ** ERROR ** Couldn't retrieve " + league + " data for provider ESPN: " + r_err ); @@ -429,7 +429,7 @@ module.exports = { }, - formatScores: function(league, data, teams) { + formatScores: function(league, data, teams, gameDate) { // var self = this; var formattedGamesList = new Array(); @@ -457,6 +457,11 @@ module.exports = { filteredGamesList = data.events; } + filteredGamesList = filteredGamesList.filter(function(event) { + const eventDate = moment.tz(event.date, localTZ).format("YYYYMMDD"); + return eventDate === gameDate; + }); + //sort by start time, then by away team shortcode. filteredGamesList.sort(function(a,b) { var aTime = moment(a.competitions[0].date); From 88c153770edacf1259d615b15e1f6b6456e1e164 Mon Sep 17 00:00:00 2001 From: dathbe Date: Tue, 17 Dec 2024 14:36:27 -0800 Subject: [PATCH 75/77] Update SNET_YD.js --- providers/SNET_YD.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/providers/SNET_YD.js b/providers/SNET_YD.js index 1937ac7..39a9388 100644 --- a/providers/SNET_YD.js +++ b/providers/SNET_YD.js @@ -14,7 +14,7 @@ All sports are provided in a single feed at - https://mobile-statsv2.sportsnet.ca/ticker + https://stats-api.sportsnet.ca/ticker The feed takes one parameter: @@ -109,7 +109,7 @@ module.exports = { // console.log("Get SNET JSON"); var self = this; - var url = "https://mobile-statsv2.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); + var url = "https://stats-api.sportsnet.ca/ticker?day=" + this.gameDate.format("YYYY-MM-DD"); axios.get(url) From bae3d99601a3ba85551eb12a561f918360ff16d3 Mon Sep 17 00:00:00 2001 From: dathbe Date: Tue, 17 Dec 2024 14:42:51 -0800 Subject: [PATCH 76/77] Update README.md Clean up instructions, change from jclarke to dathbe --- README.md | 37 ++++++++++--------------------------- 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index f1f8e83..71dc075 100644 --- a/README.md +++ b/README.md @@ -29,25 +29,6 @@ leagues, including: * Spanish La Liga * Mexican Liga BBVA Bancomer -## UPDATE RELEASE 3.0 9-OCT-2022 - -This update includes several addtions and fixes: -* Correction of SportsNet provider ticker URL -* Change of ESPN provider to HTTPS -* Replacement of deprecated library Request with Axios -* Addition of WNBA and NCAAW womens' basketball -* Update of logos for North American leagues -* Correction of Winsconsin Badgers NCAA team shortcode from WIS to WISC -* Improves how team logos are handled. Uses local logo files where available, otherwises uses URL from feed. - -If you are upgrading from a previous version, this update introduces new libraries. Upgrade as follows: -In the MMM-MyScoreboard directory, type: - -`git pull` -followed by -`npm install` - - ![Screenshot](/../screenshots/MMM-MyScoreboard-screenshot.png?raw=true "Screenshot") @@ -55,19 +36,18 @@ followed by ```sh cd ~/MagicMirror/modules -git clone https://github.com/jclarke0000/MMM-MyScoreboard +git clone https://github.com/dathbe/MMM-MyScoreboard cd MMM-MyScoreboard npm install ``` +## Update -## Notice to anyone updating from previous versions - -1. Run `git pull` in the `MMM-MyScoreboard` directory to get the latest source code. If you are not seeing the latest update, then try deleting your `MMM-MyScoreboard` directory and reclone it as per the initial installation instructions above. -2. Still in the `MMM-MyScoreboard` directory, run `npm install`. -3. (Optional) Run `npm prune` to remove some packages that are no longer needed. -4. As the providers have changed for most sports, some of the team shortcodes are different. If you're not seeing your team show up even though you know a game is scheduled, check your config against the list of team shortcodes below. - +```sh +cd ~/MagicMirror/modules/MMM-MyScoreboard +git pull +npm install +``` ## Configuration @@ -1597,3 +1577,6 @@ Sun Belt West Coast WAC ``` + +## Thank You +A special thanks goes to @jclarke0000, who was the original author of this module and wrote most of the code. From fe0655a85b7d02ecb0934886e460040269031c75 Mon Sep 17 00:00:00 2001 From: dathbe Date: Tue, 17 Dec 2024 14:46:37 -0800 Subject: [PATCH 77/77] Update README.md link to jclarke --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 71dc075..79dadcf 100644 --- a/README.md +++ b/README.md @@ -1579,4 +1579,4 @@ WAC ``` ## Thank You -A special thanks goes to @jclarke0000, who was the original author of this module and wrote most of the code. +A special thanks goes to [@jclarke0000](https://github.com/jclarke0000/), who was the original author of this module and wrote most of the code.