woo new tidy version
This commit is contained in:
parent
c816f8c4c8
commit
5f73c46b74
53
.eslintrc.json
Normal file
53
.eslintrc.json
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaVersion": 6,
|
||||||
|
"sourceType": "module",
|
||||||
|
"ecmaFeatures": {
|
||||||
|
"jsx": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"env": {
|
||||||
|
"browser": true,
|
||||||
|
"node": true,
|
||||||
|
"es6": true
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"arrow-spacing": "error",
|
||||||
|
"block-scoped-var": "error",
|
||||||
|
"block-spacing": "error",
|
||||||
|
"brace-style": ["error", "stroustrup", {}],
|
||||||
|
"camelcase": "error",
|
||||||
|
"comma-dangle": ["error", "never"],
|
||||||
|
"comma-spacing": ["error", { "before": false, "after": true }],
|
||||||
|
"comma-style": [1, "last"],
|
||||||
|
"consistent-this": [1, "_this"],
|
||||||
|
"curly": [1, "multi"],
|
||||||
|
"eol-last": 1,
|
||||||
|
"eqeqeq": 1,
|
||||||
|
"func-names": 1,
|
||||||
|
"indent": ["error", 2, { "SwitchCase": 1 }],
|
||||||
|
"lines-around-comment": ["error", { "beforeBlockComment": true, "allowArrayStart": true }],
|
||||||
|
"max-len": [1, 120, 2], // 2 spaces per tab, max 80 chars per line
|
||||||
|
"new-cap": 1,
|
||||||
|
"newline-before-return": "error",
|
||||||
|
"no-array-constructor": 1,
|
||||||
|
"no-inner-declarations": [1, "both"],
|
||||||
|
"no-mixed-spaces-and-tabs": 1,
|
||||||
|
"no-multi-spaces": 2,
|
||||||
|
"no-new-object": 1,
|
||||||
|
"no-shadow-restricted-names": 1,
|
||||||
|
"object-curly-spacing": ["error", "always"],
|
||||||
|
"padded-blocks": ["error", { "blocks": "never", "switches": "always" }],
|
||||||
|
"prefer-const": "error",
|
||||||
|
"prefer-template": "error",
|
||||||
|
"one-var": 0,
|
||||||
|
"quote-props": ["error", "always"],
|
||||||
|
"quotes": [1, "single"],
|
||||||
|
"radix": 1,
|
||||||
|
"semi": [1, "always"],
|
||||||
|
"space-before-blocks": [1, "always"],
|
||||||
|
"space-infix-ops": 1,
|
||||||
|
"vars-on-top": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
33
app.js
Normal file
33
app.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
const loader = require('./libs/loader');
|
||||||
|
const lot = require('./libs/lot');
|
||||||
|
const lotv2 = require('./libs/lotV2');
|
||||||
|
const pusher = require('./libs/pusher');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function run(data) {
|
||||||
|
const v1 = lot.calculate(data);
|
||||||
|
const v2 = lotv2.calculate(data);
|
||||||
|
|
||||||
|
const msg =
|
||||||
|
|
||||||
|
`V2: ${v2} stars: ${v1.mainstars}
|
||||||
|
V1: ${v1.mainline} stars: ${v1.mainstars}
|
||||||
|
Other: ${v1.otherLine} stars: ${v1.otherStars}
|
||||||
|
`;
|
||||||
|
|
||||||
|
pusher.push(msg);
|
||||||
|
console.log(msg);
|
||||||
|
loader.save(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function go() {
|
||||||
|
loader.load(run);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cron.schedule('10 13 * * 2,5', function() {
|
||||||
|
go();
|
||||||
|
// console.log('tick');
|
||||||
|
return -1;
|
||||||
|
});
|
File diff suppressed because one or more lines are too long
84
libs/loader.js
Normal file
84
libs/loader.js
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
const jsonfile = require('jsonfile');
|
||||||
|
const https = require('https');
|
||||||
|
const Sugar = require('sugar-date');
|
||||||
|
|
||||||
|
const file = 'data/data.json';
|
||||||
|
|
||||||
|
function resultsQuery(callback) {
|
||||||
|
const options = {
|
||||||
|
'host': 'euromillions.p.mashape.com',
|
||||||
|
'path': '/ResultsService/FindLast',
|
||||||
|
|
||||||
|
'headers': {
|
||||||
|
'accept': 'text/plain',
|
||||||
|
'X-Mashape-Key': '5A0H980jK6mshSFL24ZmfiRrNHV2p1d1fhQjsngtx8QWuO9oe4'
|
||||||
|
|
||||||
|
},
|
||||||
|
'method': 'GET'
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
https.request(options).on('response', function (response) {
|
||||||
|
let data = '';
|
||||||
|
response.on('data', function (chunk) {
|
||||||
|
data += chunk;
|
||||||
|
});
|
||||||
|
response.on('end', function () {
|
||||||
|
//console.log(data);
|
||||||
|
callback(JSON.parse(data));
|
||||||
|
});
|
||||||
|
}).end();
|
||||||
|
}
|
||||||
|
|
||||||
|
function processDataV2(data) {
|
||||||
|
const newArray = [];
|
||||||
|
const date = /(\/Date\()([0-9]+)([\s\S]+)/.exec(data.Date);
|
||||||
|
|
||||||
|
// console.log(data);
|
||||||
|
|
||||||
|
//date = /(\/Date\()([0-9]+)([\s\S]+)/.exec(data.Date);
|
||||||
|
const newdate = Sugar.Date.format(new Date(parseInt(date[2])), '%Y-%m-%d');
|
||||||
|
|
||||||
|
newArray.push(newdate);
|
||||||
|
|
||||||
|
newArray.push(data.Num1);
|
||||||
|
newArray.push(data.Num2);
|
||||||
|
newArray.push(data.Num3);
|
||||||
|
newArray.push(data.Num4);
|
||||||
|
newArray.push(data.Num5);
|
||||||
|
|
||||||
|
newArray.push(data.Star1);
|
||||||
|
newArray.push(data.Star2);
|
||||||
|
|
||||||
|
return newArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function load(cb) {
|
||||||
|
jsonfile.readFile(file, (err, obj) => {
|
||||||
|
if (err) console.error(err);
|
||||||
|
|
||||||
|
const lotData = obj;
|
||||||
|
|
||||||
|
resultsQuery( (a) => {
|
||||||
|
const latest = processDataV2(a);
|
||||||
|
|
||||||
|
const dateExists = lotData.filter((item) => {
|
||||||
|
if (item[0] === latest[0]) return item;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (dateExists.length === 0)
|
||||||
|
lotData.unshift(latest);
|
||||||
|
|
||||||
|
// return the data
|
||||||
|
cb(lotData);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function save(data) {
|
||||||
|
jsonfile.writeFileSync(file, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.load = load;
|
||||||
|
module.exports.save = save;
|
294
libs/lot.js
Normal file
294
libs/lot.js
Normal file
@ -0,0 +1,294 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
const m = [],
|
||||||
|
prev = [],
|
||||||
|
mo = [],
|
||||||
|
star = [],
|
||||||
|
trip = [],
|
||||||
|
results = [];
|
||||||
|
const line = [];
|
||||||
|
|
||||||
|
let re = [];
|
||||||
|
const resultsObj = {};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function sortNumber(a, b) {
|
||||||
|
return a - b;
|
||||||
|
}
|
||||||
|
|
||||||
|
function dynamicSort(property) {
|
||||||
|
let sortOrder = 1;
|
||||||
|
if (property[0] === '-') {
|
||||||
|
sortOrder = -1;
|
||||||
|
property = property.substr(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return function (a, b) {
|
||||||
|
const result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
|
||||||
|
|
||||||
|
return result * sortOrder;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildArray() {
|
||||||
|
for (let x = 0; x < 51; x++) {
|
||||||
|
const l = [];
|
||||||
|
for (let y = 0; y < 51; y++)
|
||||||
|
l.push(0);
|
||||||
|
|
||||||
|
m[x] = l;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function othercalc() {
|
||||||
|
let i = 0;
|
||||||
|
// var p = 1 / ((-1)*re.length);
|
||||||
|
const p = 1.0 / (re.length);
|
||||||
|
// console.log('P', p);
|
||||||
|
|
||||||
|
for (i = 0; i < re.length - 1; i++)
|
||||||
|
// console.log((p * i));
|
||||||
|
// console.log(re[i]);
|
||||||
|
for (let s = 1; s < 6; s++) {
|
||||||
|
const cv = re[i][s];
|
||||||
|
// console.log("row: " + cv);
|
||||||
|
for (let n = 1; n < 6; n++)
|
||||||
|
if (n !== s) {
|
||||||
|
workVal = re[i][n];
|
||||||
|
// console.log(workVal);
|
||||||
|
// m[cv-1][workVal-1]++;
|
||||||
|
let flag = false;
|
||||||
|
for (var t = 0; t < mo.length; t++)
|
||||||
|
if (mo[t].a === cv && mo[t].b === workVal) {
|
||||||
|
if (typeof mo[t].c === 'undefined' || mo[t].c === null)
|
||||||
|
mo[t].c = 0;
|
||||||
|
|
||||||
|
mo[t].c++;
|
||||||
|
flag = true;
|
||||||
|
// mo[t].v++;
|
||||||
|
/*
|
||||||
|
if (i < (re.length/2))
|
||||||
|
mo[t].v = mo[t].v - (p * i)
|
||||||
|
else
|
||||||
|
*/
|
||||||
|
|
||||||
|
// original weighting
|
||||||
|
//mo[t].v = mo[t].v + (p * i);
|
||||||
|
|
||||||
|
//reverse weighting..
|
||||||
|
mo[t].v = mo[t].v + (1 - (p * i));
|
||||||
|
// console.log(mo[t], 1 - (p * i));
|
||||||
|
//;
|
||||||
|
//mo[t].v = mo[t].v + 1;
|
||||||
|
// ;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!flag)
|
||||||
|
mo.push({
|
||||||
|
'a': cv,
|
||||||
|
'b': workVal,
|
||||||
|
'v': 1
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
console.log('******************************************');
|
||||||
|
mo.sort(dynamicSort('v'));
|
||||||
|
|
||||||
|
//for (var t = (mo.length - 20); t < mo.length; t++) {
|
||||||
|
var t = mo.length - 1;
|
||||||
|
while (line.length < 5) {
|
||||||
|
if (line.indexOf(mo[t].a) == -1 && line.length < 5)
|
||||||
|
line.push(mo[t].a);
|
||||||
|
|
||||||
|
if (line.indexOf(mo[t].b) == -1 && line.length < 5)
|
||||||
|
line.push(mo[t].b);
|
||||||
|
|
||||||
|
t = t - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// console.log(line);
|
||||||
|
|
||||||
|
console.log(line.sort());
|
||||||
|
|
||||||
|
resultsObj.mainline = line.sort();
|
||||||
|
resultsObj.otherLine = [];
|
||||||
|
resultsObj.otherLine.push(mo[mo.length - 1].a);
|
||||||
|
resultsObj.otherLine.push(mo[mo.length - 1].b);
|
||||||
|
|
||||||
|
for (var t = mo.length - 1; t > (mo.length - 3); t--)
|
||||||
|
// if (mo[t].v >= 3) {
|
||||||
|
if (mo[t].v > 1)
|
||||||
|
console.log(`${mo[t].a }, ${ mo[t].b }, ${ mo[t].v}`);
|
||||||
|
|
||||||
|
|
||||||
|
// buildTable();
|
||||||
|
}
|
||||||
|
|
||||||
|
function tripCalc() {
|
||||||
|
const blist = [[0, 1, 2], [0, 1, 3], [0, 1, 4], [0, 2, 3], [0, 2, 4], [0, 3, 4], [1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]];
|
||||||
|
const p = 1.0 / (re.length);
|
||||||
|
let a, b, c, cur;
|
||||||
|
//var trip = [];
|
||||||
|
//console.log
|
||||||
|
for (i = 0; i < re.length - 1; i++)
|
||||||
|
|
||||||
|
for (let t = 0; t < blist.length; t++) {
|
||||||
|
cur = blist[t];
|
||||||
|
|
||||||
|
a = re[i][cur[0] + 1];
|
||||||
|
b = re[i][cur[1] + 1];
|
||||||
|
c = re[i][cur[2] + 1];
|
||||||
|
|
||||||
|
|
||||||
|
// console.log(a + ", " + b + "," + c);
|
||||||
|
|
||||||
|
|
||||||
|
let found = false;
|
||||||
|
for (y = 0; y < trip.length; y++) {
|
||||||
|
const nums = trip[y].nums;
|
||||||
|
|
||||||
|
if (!found)
|
||||||
|
if ((nums.indexOf(a) !== -1) && (nums.indexOf(b) !== -1) && (nums.indexOf(c) !== -1)) {
|
||||||
|
/* console.log("nums:" + nums);
|
||||||
|
console.log("want: " + a + ", " + b + "," + c);
|
||||||
|
console.log("A:" + nums.indexOf(a));
|
||||||
|
console.log("B:" + nums.indexOf(b));
|
||||||
|
console.log("C:" + nums.indexOf(c));
|
||||||
|
*/
|
||||||
|
|
||||||
|
trip[y].cnt = trip[y].cnt + (p * i);
|
||||||
|
// trip[y].cnt = trip[y].cnt + 1;
|
||||||
|
|
||||||
|
// console.log(">>>" + trip[y].cnt);
|
||||||
|
found = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!found)
|
||||||
|
|
||||||
|
//trip.push({nums:[a,b,c],cnt:(p * i)});
|
||||||
|
trip.push({
|
||||||
|
'nums': [a, b, c],
|
||||||
|
'cnt': 1
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let max = 0;
|
||||||
|
for (y = 0; y < trip.length; y++)
|
||||||
|
if (trip[y].cnt > max) max = trip[y].cnt;
|
||||||
|
|
||||||
|
//console.log(`Max: ${ max}`);
|
||||||
|
for (y = 0; y < trip.length; y++)
|
||||||
|
if (trip[y].cnt === max) {
|
||||||
|
// console.log(`${trip[y].cnt }, ${ trip[y].nums}`);
|
||||||
|
|
||||||
|
resultsObj.otherLine = resultsObj.otherLine.concat(trip[y].nums).sort();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// console.log(JSON.stringify(trip));
|
||||||
|
}
|
||||||
|
|
||||||
|
function starcalc() {
|
||||||
|
let i = 0;
|
||||||
|
const p = 1 / re.length;
|
||||||
|
for (i = 0; i < re.length - 1; i++)
|
||||||
|
// console.log(re[i]);
|
||||||
|
for (let s = 6; s < 8; s++) {
|
||||||
|
const cv = re[i][s];
|
||||||
|
// console.log("row: " + cv);
|
||||||
|
for (let n = 6; n < 8; n++)
|
||||||
|
if (n !== s) {
|
||||||
|
workVal = re[i][n];
|
||||||
|
// console.log(workVal);
|
||||||
|
// m[cv-1][workVal-1]++;
|
||||||
|
let flag = false;
|
||||||
|
for (var t = 0; t < mo.length; t++)
|
||||||
|
if (mo[t].a === cv && mo[t].b === workVal) {
|
||||||
|
flag = true;
|
||||||
|
mo[t].v++;
|
||||||
|
|
||||||
|
mo[t].v = mo[t].v + (p * i);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!flag)
|
||||||
|
mo.push({
|
||||||
|
'a': cv,
|
||||||
|
'b': workVal,
|
||||||
|
'v': 1
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// console.log('******************************************');
|
||||||
|
mo.sort(dynamicSort('v'));
|
||||||
|
|
||||||
|
var t = mo.length - 1;
|
||||||
|
|
||||||
|
const starOutput = [];
|
||||||
|
starOutput.push(mo[t].a);
|
||||||
|
starOutput.push(mo[t].b);
|
||||||
|
|
||||||
|
|
||||||
|
resultsObj.mainstars = [];
|
||||||
|
resultsObj.mainstars.push(starOutput.sort()[0]);
|
||||||
|
resultsObj.mainstars.push(starOutput.sort()[1]);
|
||||||
|
|
||||||
|
resultsObj.otherStars = [];
|
||||||
|
resultsObj.otherStars.push(mo[mo.length - 3].a);
|
||||||
|
resultsObj.otherStars.push(mo[mo.length - 3].b);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//console.log('Stars: ' + mo[t].a + ', ' + mo[t].b);
|
||||||
|
|
||||||
|
/* console.log(`Stars: ${ starOutput.sort()[0] }, ${ starOutput.sort()[1]}`);
|
||||||
|
for (var t = mo.length - 6; t < mo.length; t++)
|
||||||
|
if (mo[t].v >= 3)
|
||||||
|
console.log(`${mo[t].a }, ${ mo[t].b }, ${ mo[t].v}`);
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// buildTable();
|
||||||
|
}
|
||||||
|
|
||||||
|
function performCalcs() {
|
||||||
|
buildArray();
|
||||||
|
//buildTable();
|
||||||
|
othercalc();
|
||||||
|
console.log('---------------------------------------');
|
||||||
|
starcalc();
|
||||||
|
|
||||||
|
tripCalc();
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepareResults() {
|
||||||
|
resultsObj.mainline = resultsObj.mainline.sort(sortNumber);
|
||||||
|
resultsObj.otherLine = resultsObj.otherLine.sort(sortNumber);
|
||||||
|
|
||||||
|
resultsObj.mainstars = resultsObj.mainstars.sort(sortNumber);
|
||||||
|
resultsObj.otherStars = resultsObj.otherStars.sort(sortNumber);
|
||||||
|
|
||||||
|
return resultsObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function calculate(data) {
|
||||||
|
re = data;
|
||||||
|
performCalcs();
|
||||||
|
|
||||||
|
prepareResults();
|
||||||
|
|
||||||
|
console.log(resultsObj);
|
||||||
|
|
||||||
|
return resultsObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.calculate = calculate;
|
114
libs/lotV2.js
Normal file
114
libs/lotV2.js
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
|
||||||
|
const m = [];
|
||||||
|
|
||||||
|
const newNumberContainer = {};
|
||||||
|
|
||||||
|
let numberStore = [];
|
||||||
|
|
||||||
|
function buildArray() {
|
||||||
|
for (let x = 0; x < 51; x++) {
|
||||||
|
const l = [];
|
||||||
|
for (let y = 0; y < 51; y++)
|
||||||
|
l.push(0);
|
||||||
|
|
||||||
|
m[x] = l;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function othercalcV2() {
|
||||||
|
// Var p = 1 / ((-1)*numberStore.length);
|
||||||
|
const p = 1.0 / (numberStore.length);
|
||||||
|
|
||||||
|
for (let i = 0; i < numberStore.length - 1; i++) {
|
||||||
|
const thisRow = [];
|
||||||
|
|
||||||
|
for (let s = 1; s < 6; s++) {
|
||||||
|
const cv = numberStore[i][s];
|
||||||
|
|
||||||
|
for (let n = 1; n < 6; n++)
|
||||||
|
if (n !== s) {
|
||||||
|
const workVal = numberStore[i][n];
|
||||||
|
// Console.log(workVal);
|
||||||
|
// m[cv-1][workVal-1]++;
|
||||||
|
|
||||||
|
// Console.log('mo', mo);
|
||||||
|
|
||||||
|
const tempArray = [cv, workVal].sort((a, b) => {
|
||||||
|
if (a < b)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return a > b ? 1 : 0;
|
||||||
|
});
|
||||||
|
const id = tempArray.join('-');
|
||||||
|
|
||||||
|
if (thisRow.indexOf(id) === -1) {
|
||||||
|
const record = newNumberContainer[id] || { 'c': 0, 'v': 0, 'id': id };
|
||||||
|
record.c++;
|
||||||
|
record.v += (p * i);
|
||||||
|
newNumberContainer[id] = record;
|
||||||
|
|
||||||
|
thisRow.push(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let flatArray = Object.keys(newNumberContainer).map((key) => newNumberContainer[key]);
|
||||||
|
|
||||||
|
flatArray = flatArray.sort((a, b) => {
|
||||||
|
if (a.c < b.c)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return a.c > b.c ? -1 : 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
let line = [];
|
||||||
|
let lineI = 0;
|
||||||
|
|
||||||
|
while (line.length < 5) {
|
||||||
|
const pair = flatArray[lineI];
|
||||||
|
pairS = pair.id.split('-');
|
||||||
|
|
||||||
|
if (line.indexOf(pairS[0]) === -1 && line.length < 5)
|
||||||
|
line.push(pairS[0]);
|
||||||
|
|
||||||
|
if (line.indexOf(pairS[1]) === -1 && line.length < 5)
|
||||||
|
line.push(pairS[1]);
|
||||||
|
|
||||||
|
// console.log(line);
|
||||||
|
lineI++;
|
||||||
|
}
|
||||||
|
|
||||||
|
line = line.sort((a, b) => {
|
||||||
|
if (~~a < ~~b)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return ~~a > ~~b ? 1 : 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
//console.log(line);
|
||||||
|
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function performCalcs() {
|
||||||
|
buildArray();
|
||||||
|
//BuildTable();
|
||||||
|
const line = othercalcV2();
|
||||||
|
console.log('---------------------------------------');
|
||||||
|
console.log(`line: ${line}`);
|
||||||
|
// Starcalc();
|
||||||
|
|
||||||
|
// tripCalc();
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
function calculate(data) {
|
||||||
|
numberStore = data;
|
||||||
|
|
||||||
|
return performCalcs();
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.calculate = calculate;
|
||||||
|
|
26
libs/pusher.js
Normal file
26
libs/pusher.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* User: Martin Donnelly
|
||||||
|
* Date: 2016-04-08
|
||||||
|
* Time: 16:35
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
var Pushover = require('node-pushover'), dateFormat = require('dateformat');
|
||||||
|
var push = new Pushover({
|
||||||
|
'token': 'aqnos2j4v4pjpry3hvnxq9646eup23',
|
||||||
|
'user': 'BE2vgFxdHJw91lVGMRYvZDDmVa5cCM'
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var logger = require('log4js').getLogger();
|
||||||
|
|
||||||
|
const prefix = process.env.NODE_ENV === 'production' ? 'Production' : 'Dev';
|
||||||
|
const title = `mdLot ${ prefix } Alert`;
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
'push' : function(contents) {
|
||||||
|
var now = new Date();
|
||||||
|
var msg = `Updated at ${ dateFormat(now, 'dddd, mmmm dS, yyyy, HH:MM:ss') }\n\n${ contents }`;
|
||||||
|
push.send(title, msg);
|
||||||
|
}
|
||||||
|
};
|
781
lot.js
781
lot.js
@ -1,44 +1,42 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
var jsonfile = require('jsonfile'),
|
const jsonfile = require('jsonfile'),
|
||||||
https = require('https'),
|
https = require('https'),
|
||||||
UltraSES = require('ultrases'),cron = require('node-cron');
|
UltraSES = require('ultrases'), cron = require('node-cron');
|
||||||
|
|
||||||
var Sugar = require('sugar-date');
|
const Sugar = require('sugar-date');
|
||||||
|
|
||||||
var file = 'data/data.json';
|
const file = 'data/data.json';
|
||||||
var m = [],
|
const m = [],
|
||||||
prev = [],
|
prev = [],
|
||||||
mo = [],
|
mo = [],
|
||||||
star = [],
|
star = [],
|
||||||
trip = [],
|
trip = [],
|
||||||
results = [],
|
results = [];
|
||||||
line = [];
|
let line = [];
|
||||||
|
|
||||||
var re = [];
|
let re = [];
|
||||||
var resultsObj = {};
|
let resultsObj = {};
|
||||||
|
|
||||||
|
|
||||||
|
const mailer = new UltraSES({
|
||||||
var mailer = new UltraSES({
|
'aws': {
|
||||||
aws: {
|
'accessKeyId': 'AKIAJWJS75F7WNCGK64A',
|
||||||
accessKeyId: 'AKIAJWJS75F7WNCGK64A',
|
'secretAccessKey': '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',
|
||||||
secretAccessKey: '8irYxThCp4xxyrbr00HzWcODe2qdNrR7X7S5BKup',
|
'region': 'eu-west-1'
|
||||||
"region": "eu-west-1"
|
},
|
||||||
},
|
'defaults': {
|
||||||
defaults: {
|
'from': 'Martin Donnelly <martind2000@gmail.com>'
|
||||||
from: 'Martin Donnelly <martind2000@gmail.com>'
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function $(elm) {
|
function $(elm) {
|
||||||
return document.getElementById(elm);
|
return document.getElementById(elm);
|
||||||
}
|
}
|
||||||
|
|
||||||
function resultsQuery(callback) {
|
function resultsQuery(callback) {
|
||||||
/* var options = {
|
/* var options = {
|
||||||
host: 'nunofcguerreiro.com',
|
host: 'nunofcguerreiro.com',
|
||||||
path: '/api-euromillions-json',
|
path: '/api-euromillions-json',
|
||||||
port: 443,
|
port: 443,
|
||||||
@ -51,424 +49,409 @@ function resultsQuery(callback) {
|
|||||||
method: 'GET'
|
method: 'GET'
|
||||||
};*/
|
};*/
|
||||||
|
|
||||||
var options = {
|
const options = {
|
||||||
host: 'euromillions.p.mashape.com',
|
'host': 'euromillions.p.mashape.com',
|
||||||
path: '/ResultsService/FindLast',
|
'path': '/ResultsService/FindLast',
|
||||||
//port: 443,
|
//port: 443,
|
||||||
headers: {
|
'headers': {
|
||||||
accept: "text/plain",
|
'accept': 'text/plain',
|
||||||
"X-Mashape-Key": "5A0H980jK6mshSFL24ZmfiRrNHV2p1d1fhQjsngtx8QWuO9oe4"
|
'X-Mashape-Key': '5A0H980jK6mshSFL24ZmfiRrNHV2p1d1fhQjsngtx8QWuO9oe4'
|
||||||
/* 'Content-Type': 'application/json',
|
|
||||||
|
/* 'Content-Type': 'application/json',
|
||||||
'Content-Length': Buffer.byteLength(data)*/
|
'Content-Length': Buffer.byteLength(data)*/
|
||||||
|
|
||||||
},
|
},
|
||||||
method: 'GET'
|
'method': 'GET'
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
unirest.get("https://euromillions.p.mashape.com/ResultsService/FindLast")
|
unirest.get("https://euromillions.p.mashape.com/ResultsService/FindLast")
|
||||||
.header("X-Mashape-Key", "5A0H980jK6mshSFL24ZmfiRrNHV2p1d1fhQjsngtx8QWuO9oe4")
|
.header("X-Mashape-Key", "5A0H980jK6mshSFL24ZmfiRrNHV2p1d1fhQjsngtx8QWuO9oe4")
|
||||||
.header("Accept", "text/plain")
|
.header("Accept", "text/plain")
|
||||||
.end(function (result) {
|
.end(function (result) {
|
||||||
console.log(result.status, result.headers, result.body);
|
console.log(result.status, result.headers, result.body);
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
|
https.request(options).on('response', function (response) {
|
||||||
|
let data = '';
|
||||||
|
response.on('data', function (chunk) {
|
||||||
|
data += chunk;
|
||||||
});
|
});
|
||||||
*/
|
response.on('end', function () {
|
||||||
|
//console.log(data);
|
||||||
https.request(options).on('response', function (response) {
|
callback(JSON.parse(data));
|
||||||
var data = '';
|
});
|
||||||
response.on("data", function (chunk) {
|
}).end();
|
||||||
data += chunk;
|
|
||||||
});
|
|
||||||
response.on('end', function () {
|
|
||||||
//console.log(data);
|
|
||||||
callback(JSON.parse(data));
|
|
||||||
});
|
|
||||||
}).end();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function sortNumber(a, b) {
|
function sortNumber(a, b) {
|
||||||
return a - b;
|
return a - b;
|
||||||
}
|
}
|
||||||
|
|
||||||
function dynamicSort(property) {
|
function dynamicSort(property) {
|
||||||
var sortOrder = 1;
|
let sortOrder = 1;
|
||||||
if (property[0] === "-") {
|
if (property[0] === '-') {
|
||||||
sortOrder = -1;
|
sortOrder = -1;
|
||||||
property = property.substr(1);
|
property = property.substr(1);
|
||||||
}
|
}
|
||||||
return function (a, b) {
|
|
||||||
var result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
|
return function (a, b) {
|
||||||
return result * sortOrder;
|
const result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
|
||||||
}
|
|
||||||
|
return result * sortOrder;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildArray() {
|
function buildArray() {
|
||||||
for (var x = 0; x < 51; x++) {
|
for (let x = 0; x < 51; x++) {
|
||||||
var l = [];
|
const l = [];
|
||||||
for (var y = 0; y < 51; y++) {
|
for (let y = 0; y < 51; y++)
|
||||||
l.push(0);
|
l.push(0);
|
||||||
}
|
|
||||||
m[x] = l;
|
m[x] = l;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildTable() {
|
function buildTable() {
|
||||||
var area = $('area');
|
const area = $('area');
|
||||||
// clean area.
|
// clean area.
|
||||||
/* while (area.lastChild) {
|
/* while (area.lastChild) {
|
||||||
area.removeChild(area.lastChild);
|
area.removeChild(area.lastChild);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
var table = document.createElement('table');
|
const table = document.createElement('table');
|
||||||
var row = document.createElement('tr');
|
var row = document.createElement('tr');
|
||||||
|
var cell = document.createElement('td');
|
||||||
|
var p = document.createTextNode('---');
|
||||||
|
cell.appendChild(p);
|
||||||
|
row.appendChild(cell);
|
||||||
|
for (var x = 1; x < 50; x++) {
|
||||||
var cell = document.createElement('td');
|
var cell = document.createElement('td');
|
||||||
var p = document.createTextNode('---')
|
var p = document.createTextNode(x);
|
||||||
cell.appendChild(p);
|
cell.appendChild(p);
|
||||||
row.appendChild(cell);
|
row.appendChild(cell);
|
||||||
for (var x = 1; x < 50; x++) {
|
}
|
||||||
var cell = document.createElement('td');
|
table.appendChild(row);
|
||||||
var p = document.createTextNode(x)
|
|
||||||
cell.appendChild(p);
|
/**
|
||||||
row.appendChild(cell);
|
|
||||||
}
|
|
||||||
table.appendChild(row);
|
|
||||||
/**
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
for (var y = 0; y < 51; y++) {
|
for (let y = 0; y < 51; y++) {
|
||||||
var row = document.createElement('tr');
|
var row = document.createElement('tr');
|
||||||
var cell = document.createElement('td');
|
var cell = document.createElement('td');
|
||||||
var p = document.createTextNode('[' + parseInt(y + 1) + ']')
|
var p = document.createTextNode(`[${ parseInt(y + 1) }]`);
|
||||||
cell.appendChild(p);
|
cell.appendChild(p);
|
||||||
row.appendChild(cell);
|
row.appendChild(cell);
|
||||||
for (var x = 1; x < 51; x++) {
|
for (var x = 1; x < 51; x++) {
|
||||||
var cell = document.createElement('td');
|
var cell = document.createElement('td');
|
||||||
var p = document.createTextNode(m[y][x - 1])
|
var p = document.createTextNode(m[y][x - 1]);
|
||||||
cell.appendChild(p);
|
cell.appendChild(p);
|
||||||
row.appendChild(cell);
|
row.appendChild(cell);
|
||||||
}
|
|
||||||
table.appendChild(row);
|
|
||||||
}
|
}
|
||||||
area.appendChild(table);
|
table.appendChild(row);
|
||||||
|
}
|
||||||
|
area.appendChild(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
function calc() {
|
function calc() {
|
||||||
var i = 0;
|
let i = 0;
|
||||||
for (i = 0; i < re.length - 1; i++) {
|
for (i = 0; i < re.length - 1; i++) {
|
||||||
console.log(re[i]);
|
console.log(re[i]);
|
||||||
for (var s = 1; s < 6; s++) {
|
for (let s = 1; s < 6; s++) {
|
||||||
var cv = re[i][s];
|
const cv = re[i][s];
|
||||||
console.log("row: " + cv);
|
console.log(`row: ${ cv}`);
|
||||||
for (var n = 1; n < 6; n++) {
|
for (let n = 1; n < 6; n++)
|
||||||
if (n != s) {
|
if (n != s) {
|
||||||
workVal = re[i][n];
|
workVal = re[i][n];
|
||||||
console.log(workVal);
|
console.log(workVal);
|
||||||
m[cv - 1][workVal - 1]++;
|
m[cv - 1][workVal - 1]++;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
buildTable();
|
}
|
||||||
|
buildTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
function othercalc() {
|
function othercalc() {
|
||||||
var i = 0;
|
let i = 0;
|
||||||
// var p = 1 / ((-1)*re.length);
|
// var p = 1 / ((-1)*re.length);
|
||||||
var p = 1.0 / (re.length);
|
const p = 1.0 / (re.length);
|
||||||
console.log('P', p);
|
console.log('P', p);
|
||||||
|
|
||||||
for (i = 0; i < re.length - 1; i++) {
|
for (i = 0; i < re.length - 1; i++) {
|
||||||
console.log((p * i));
|
console.log((p * i));
|
||||||
// console.log(re[i]);
|
// console.log(re[i]);
|
||||||
for (var s = 1; s < 6; s++) {
|
for (let s = 1; s < 6; s++) {
|
||||||
var cv = re[i][s];
|
const cv = re[i][s];
|
||||||
// console.log("row: " + cv);
|
// console.log("row: " + cv);
|
||||||
for (var n = 1; n < 6; n++) {
|
for (let n = 1; n < 6; n++)
|
||||||
if (n != s) {
|
if (n != s) {
|
||||||
workVal = re[i][n];
|
workVal = re[i][n];
|
||||||
// console.log(workVal);
|
// console.log(workVal);
|
||||||
// m[cv-1][workVal-1]++;
|
// m[cv-1][workVal-1]++;
|
||||||
var flag = false;
|
let flag = false;
|
||||||
for (var t = 0; t < mo.length; t++) {
|
for (var t = 0; t < mo.length; t++)
|
||||||
if (mo[t].a == cv && mo[t].b == workVal) {
|
if (mo[t].a == cv && mo[t].b == workVal) {
|
||||||
if (typeof mo[t].c == 'undefined' || mo[t].c == null)
|
if (typeof mo[t].c === 'undefined' || mo[t].c == null)
|
||||||
{
|
mo[t].c = 0;
|
||||||
mo[t].c = 0;
|
|
||||||
}
|
mo[t].c++;
|
||||||
mo[t].c++;
|
flag = true;
|
||||||
flag = true;
|
// mo[t].v++;
|
||||||
// mo[t].v++;
|
/*
|
||||||
/*
|
|
||||||
if (i < (re.length/2))
|
if (i < (re.length/2))
|
||||||
mo[t].v = mo[t].v - (p * i)
|
mo[t].v = mo[t].v - (p * i)
|
||||||
else
|
else
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// original weighting
|
// original weighting
|
||||||
//mo[t].v = mo[t].v + (p * i);
|
//mo[t].v = mo[t].v + (p * i);
|
||||||
|
|
||||||
//reverse weighting..
|
//reverse weighting..
|
||||||
mo[t].v = mo[t].v + (1-(p * i));
|
mo[t].v = mo[t].v + (1 - (p * i));
|
||||||
console.log(mo[t], 1-(p*i));
|
console.log(mo[t], 1 - (p * i));
|
||||||
//;
|
//;
|
||||||
//mo[t].v = mo[t].v + 1;
|
//mo[t].v = mo[t].v + 1;
|
||||||
// ;
|
// ;
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!flag) {
|
|
||||||
mo.push({
|
|
||||||
a: cv,
|
|
||||||
b: workVal,
|
|
||||||
v: 1
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!flag)
|
||||||
|
mo.push({
|
||||||
|
'a': cv,
|
||||||
|
'b': workVal,
|
||||||
|
'v': 1
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
console.log("******************************************");
|
console.log('******************************************');
|
||||||
mo.sort(dynamicSort("v"));
|
mo.sort(dynamicSort('v'));
|
||||||
|
|
||||||
//for (var t = (mo.length - 20); t < mo.length; t++) {
|
//for (var t = (mo.length - 20); t < mo.length; t++) {
|
||||||
var t = mo.length - 1;
|
var t = mo.length - 1;
|
||||||
while (line.length < 5) {
|
while (line.length < 5) {
|
||||||
if (line.indexOf(mo[t].a) == -1 && line.length < 5) {
|
if (line.indexOf(mo[t].a) == -1 && line.length < 5)
|
||||||
line.push(mo[t].a);
|
line.push(mo[t].a);
|
||||||
}
|
|
||||||
if (line.indexOf(mo[t].b) == -1 && line.length < 5) {
|
|
||||||
line.push(mo[t].b);
|
|
||||||
}
|
|
||||||
t = t - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// console.log(line);
|
if (line.indexOf(mo[t].b) == -1 && line.length < 5)
|
||||||
|
line.push(mo[t].b);
|
||||||
|
|
||||||
console.log(line.sort());
|
t = t - 1;
|
||||||
|
}
|
||||||
|
|
||||||
resultsObj.mainline = line.sort();
|
// console.log(line);
|
||||||
resultsObj.otherLine = [];
|
|
||||||
resultsObj.otherLine.push(mo[mo.length - 1].a);
|
|
||||||
resultsObj.otherLine.push(mo[mo.length - 1].b);
|
|
||||||
|
|
||||||
for (var t = mo.length - 1; t > (mo.length - 3); t--) {
|
console.log(line.sort());
|
||||||
// if (mo[t].v >= 3) {
|
|
||||||
if (mo[t].v > 1) {
|
resultsObj.mainline = line.sort();
|
||||||
console.log(mo[t].a + ', ' + mo[t].b + ", " + mo[t].v)
|
resultsObj.otherLine = [];
|
||||||
}
|
resultsObj.otherLine.push(mo[mo.length - 1].a);
|
||||||
}
|
resultsObj.otherLine.push(mo[mo.length - 1].b);
|
||||||
// buildTable();
|
|
||||||
|
for (var t = mo.length - 1; t > (mo.length - 3); t--)
|
||||||
|
// if (mo[t].v >= 3) {
|
||||||
|
if (mo[t].v > 1)
|
||||||
|
console.log(`${mo[t].a }, ${ mo[t].b }, ${ mo[t].v}`);
|
||||||
|
|
||||||
|
|
||||||
|
// buildTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
function tripCalc() {
|
function tripCalc() {
|
||||||
var blist = [[0, 1, 2], [0, 1, 3], [0, 1, 4], [0, 2, 3], [0, 2, 4], [0, 3, 4], [1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]];
|
const blist = [[0, 1, 2], [0, 1, 3], [0, 1, 4], [0, 2, 3], [0, 2, 4], [0, 3, 4], [1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]];
|
||||||
var p = 1.0 / (re.length);
|
const p = 1.0 / (re.length);
|
||||||
var a, b, c, cur;
|
let a, b, c, cur;
|
||||||
//var trip = [];
|
//var trip = [];
|
||||||
//console.log
|
//console.log
|
||||||
for (i = 0; i < re.length - 1; i++) {
|
for (i = 0; i < re.length - 1; i++)
|
||||||
|
|
||||||
for (var t = 0; t < blist.length; t++) {
|
for (let t = 0; t < blist.length; t++) {
|
||||||
cur = blist[t];
|
cur = blist[t];
|
||||||
|
|
||||||
a = re[i][cur[0] + 1];
|
a = re[i][cur[0] + 1];
|
||||||
b = re[i][cur[1] + 1];
|
b = re[i][cur[1] + 1];
|
||||||
c = re[i][cur[2] + 1];
|
c = re[i][cur[2] + 1];
|
||||||
|
|
||||||
|
|
||||||
// console.log(a + ", " + b + "," + c);
|
// console.log(a + ", " + b + "," + c);
|
||||||
|
|
||||||
|
|
||||||
var found = false;
|
let found = false;
|
||||||
for (y = 0; y < trip.length; y++) {
|
for (y = 0; y < trip.length; y++) {
|
||||||
var nums = trip[y].nums;
|
const nums = trip[y].nums;
|
||||||
|
|
||||||
if (!found) {
|
if (!found)
|
||||||
if ((nums.indexOf(a) != -1) && (nums.indexOf(b) != -1) && (nums.indexOf(c) != -1)) {
|
if ((nums.indexOf(a) != -1) && (nums.indexOf(b) != -1) && (nums.indexOf(c) != -1)) {
|
||||||
/* console.log("nums:" + nums);
|
/* console.log("nums:" + nums);
|
||||||
console.log("want: " + a + ", " + b + "," + c);
|
console.log("want: " + a + ", " + b + "," + c);
|
||||||
console.log("A:" + nums.indexOf(a));
|
console.log("A:" + nums.indexOf(a));
|
||||||
console.log("B:" + nums.indexOf(b));
|
console.log("B:" + nums.indexOf(b));
|
||||||
console.log("C:" + nums.indexOf(c));
|
console.log("C:" + nums.indexOf(c));
|
||||||
*/
|
*/
|
||||||
|
|
||||||
trip[y].cnt = trip[y].cnt + (p * i);
|
trip[y].cnt = trip[y].cnt + (p * i);
|
||||||
// trip[y].cnt = trip[y].cnt + 1;
|
// trip[y].cnt = trip[y].cnt + 1;
|
||||||
|
|
||||||
// console.log(">>>" + trip[y].cnt);
|
// console.log(">>>" + trip[y].cnt);
|
||||||
found = true;
|
found = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
if (!found)
|
||||||
|
|
||||||
if (!found) {
|
//trip.push({nums:[a,b,c],cnt:(p * i)});
|
||||||
|
trip.push({
|
||||||
//trip.push({nums:[a,b,c],cnt:(p * i)});
|
'nums': [a, b, c],
|
||||||
trip.push({
|
'cnt': 1
|
||||||
nums: [a, b, c],
|
});
|
||||||
cnt: 1
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var max = 0;
|
|
||||||
for (y = 0; y < trip.length; y++) {
|
|
||||||
if (trip[y].cnt > max) max = trip[y].cnt;
|
|
||||||
}
|
|
||||||
console.log("Max: " + max);
|
|
||||||
for (y = 0; y < trip.length; y++) {
|
|
||||||
if (trip[y].cnt == max) {
|
|
||||||
console.log(trip[y].cnt + ", " + trip[y].nums);
|
|
||||||
|
|
||||||
resultsObj.otherLine = resultsObj.otherLine.concat(trip[y].nums).sort();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// console.log(JSON.stringify(trip));
|
let max = 0;
|
||||||
|
for (y = 0; y < trip.length; y++)
|
||||||
|
if (trip[y].cnt > max) max = trip[y].cnt;
|
||||||
|
|
||||||
|
console.log(`Max: ${ max}`);
|
||||||
|
for (y = 0; y < trip.length; y++)
|
||||||
|
if (trip[y].cnt == max) {
|
||||||
|
console.log(`${trip[y].cnt }, ${ trip[y].nums}`);
|
||||||
|
|
||||||
|
resultsObj.otherLine = resultsObj.otherLine.concat(trip[y].nums).sort();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// console.log(JSON.stringify(trip));
|
||||||
}
|
}
|
||||||
|
|
||||||
function starcalc() {
|
function starcalc() {
|
||||||
var i = 0;
|
let i = 0;
|
||||||
var p = 1 / re.length;
|
const p = 1 / re.length;
|
||||||
for (i = 0; i < re.length - 1; i++) {
|
for (i = 0; i < re.length - 1; i++)
|
||||||
// console.log(re[i]);
|
// console.log(re[i]);
|
||||||
for (var s = 6; s < 8; s++) {
|
for (let s = 6; s < 8; s++) {
|
||||||
var cv = re[i][s];
|
const cv = re[i][s];
|
||||||
// console.log("row: " + cv);
|
// console.log("row: " + cv);
|
||||||
for (var n = 6; n < 8; n++) {
|
for (let n = 6; n < 8; n++)
|
||||||
if (n != s) {
|
if (n != s) {
|
||||||
workVal = re[i][n];
|
workVal = re[i][n];
|
||||||
// console.log(workVal);
|
// console.log(workVal);
|
||||||
// m[cv-1][workVal-1]++;
|
// m[cv-1][workVal-1]++;
|
||||||
var flag = false;
|
let flag = false;
|
||||||
for (var t = 0; t < mo.length; t++) {
|
for (var t = 0; t < mo.length; t++)
|
||||||
if (mo[t].a == cv && mo[t].b == workVal) {
|
if (mo[t].a == cv && mo[t].b == workVal) {
|
||||||
flag = true;
|
flag = true;
|
||||||
mo[t].v++;
|
mo[t].v++;
|
||||||
|
|
||||||
mo[t].v = mo[t].v + (p * i);
|
mo[t].v = mo[t].v + (p * i);
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!flag) {
|
|
||||||
mo.push({
|
|
||||||
a: cv,
|
|
||||||
b: workVal,
|
|
||||||
v: 1
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!flag)
|
||||||
|
mo.push({
|
||||||
|
'a': cv,
|
||||||
|
'b': workVal,
|
||||||
|
'v': 1
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("******************************************");
|
|
||||||
mo.sort(dynamicSort("v"));
|
|
||||||
|
|
||||||
var t = mo.length - 1;
|
console.log('******************************************');
|
||||||
|
mo.sort(dynamicSort('v'));
|
||||||
|
|
||||||
var starOutput = [];
|
var t = mo.length - 1;
|
||||||
starOutput.push(mo[t].a);
|
|
||||||
starOutput.push(mo[t].b);
|
const starOutput = [];
|
||||||
|
starOutput.push(mo[t].a);
|
||||||
|
starOutput.push(mo[t].b);
|
||||||
|
|
||||||
|
|
||||||
resultsObj.mainstars = [];
|
resultsObj.mainstars = [];
|
||||||
resultsObj.mainstars.push(starOutput.sort()[0]);
|
resultsObj.mainstars.push(starOutput.sort()[0]);
|
||||||
resultsObj.mainstars.push(starOutput.sort()[1]);
|
resultsObj.mainstars.push(starOutput.sort()[1]);
|
||||||
|
|
||||||
resultsObj.otherStars = [];
|
resultsObj.otherStars = [];
|
||||||
resultsObj.otherStars.push(mo[mo.length - 3].a);
|
resultsObj.otherStars.push(mo[mo.length - 3].a);
|
||||||
resultsObj.otherStars.push(mo[mo.length - 3].b);
|
resultsObj.otherStars.push(mo[mo.length - 3].b);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//console.log('Stars: ' + mo[t].a + ', ' + mo[t].b);
|
//console.log('Stars: ' + mo[t].a + ', ' + mo[t].b);
|
||||||
|
|
||||||
console.log('Stars: ' + starOutput.sort()[0] + ', ' + starOutput.sort()[1]);
|
console.log(`Stars: ${ starOutput.sort()[0] }, ${ starOutput.sort()[1]}`);
|
||||||
for (var t = mo.length - 6; t < mo.length; t++) {
|
for (var t = mo.length - 6; t < mo.length; t++)
|
||||||
if (mo[t].v >= 3) {
|
if (mo[t].v >= 3)
|
||||||
console.log(mo[t].a + ', ' + mo[t].b + ", " + mo[t].v)
|
console.log(`${mo[t].a }, ${ mo[t].b }, ${ mo[t].v}`);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// buildTable();
|
|
||||||
|
|
||||||
|
// buildTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
function performCalcs() {
|
function performCalcs() {
|
||||||
buildArray();
|
buildArray();
|
||||||
//buildTable();
|
//buildTable();
|
||||||
othercalc();
|
othercalc();
|
||||||
console.log("---------------------------------------");
|
console.log('---------------------------------------');
|
||||||
starcalc();
|
starcalc();
|
||||||
|
|
||||||
tripCalc();
|
tripCalc();
|
||||||
}
|
}
|
||||||
|
|
||||||
function prepareResults() {
|
function prepareResults() {
|
||||||
resultsObj.mainline = resultsObj.mainline.sort(sortNumber);
|
resultsObj.mainline = resultsObj.mainline.sort(sortNumber);
|
||||||
resultsObj.otherLine = resultsObj.otherLine.sort(sortNumber);
|
resultsObj.otherLine = resultsObj.otherLine.sort(sortNumber);
|
||||||
|
|
||||||
resultsObj.mainstars = resultsObj.mainstars.sort(sortNumber);
|
resultsObj.mainstars = resultsObj.mainstars.sort(sortNumber);
|
||||||
resultsObj.otherStars = resultsObj.otherStars.sort(sortNumber);
|
resultsObj.otherStars = resultsObj.otherStars.sort(sortNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function saveData() {
|
function saveData() {
|
||||||
jsonfile.writeFileSync(file, re);
|
jsonfile.writeFileSync(file, re);
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendEmail() {
|
function sendEmail() {
|
||||||
var email = {
|
const email = {
|
||||||
to: 'martind2000@gmail.com',
|
'to': 'martind2000@gmail.com',
|
||||||
subject: 'Todays numbers'
|
'subject': 'Todays numbers'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var template = { file: './jade/output.jade', locals: resultsObj };
|
const template = {'file': './jade/output.jade', 'locals': resultsObj};
|
||||||
mailer.sendTemplate(email, template, function(err){
|
mailer.sendTemplate(email, template, function(err) {
|
||||||
if(err) throw err;
|
if(err) throw err;
|
||||||
console.log('compiled template email sent');
|
console.log('compiled template email sent');
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function processData(data) {
|
function processData(data) {
|
||||||
newArray.push(data.drawns[0].date);
|
newArray.push(data.drawns[0].date);
|
||||||
|
|
||||||
numbers = data.drawns[0].numbers.split(' ');
|
numbers = data.drawns[0].numbers.split(' ');
|
||||||
for (var i = 0; i < numbers.length; ++i) {
|
for (var i = 0; i < numbers.length; ++i)
|
||||||
numbers[i] = parseInt(numbers[i]);
|
numbers[i] = parseInt(numbers[i]);
|
||||||
}
|
|
||||||
|
|
||||||
stars = data.drawns[0].stars.split(' ');
|
|
||||||
for (var i = 0; i < stars.length; ++i) {
|
|
||||||
stars[i] = parseInt(stars[i]);
|
|
||||||
}
|
|
||||||
newArray = newArray.concat(numbers);
|
|
||||||
newArray = newArray.concat(stars);
|
|
||||||
|
|
||||||
|
|
||||||
re.unshift(newArray);
|
stars = data.drawns[0].stars.split(' ');
|
||||||
|
for (var i = 0; i < stars.length; ++i)
|
||||||
|
stars[i] = parseInt(stars[i]);
|
||||||
|
|
||||||
|
newArray = newArray.concat(numbers);
|
||||||
|
newArray = newArray.concat(stars);
|
||||||
|
|
||||||
|
|
||||||
|
re.unshift(newArray);
|
||||||
}
|
}
|
||||||
function processDataV2(data) {
|
function processDataV2(data) {
|
||||||
var newArray = [];
|
const newArray = [];
|
||||||
var numbers, stars, date ;
|
let numbers, stars, date;
|
||||||
|
|
||||||
console.log(data);
|
console.log(data);
|
||||||
|
|
||||||
date = /(\/Date\()([0-9]+)([\s\S]+)/.exec(data.Date);
|
date = /(\/Date\()([0-9]+)([\s\S]+)/.exec(data.Date);
|
||||||
var newdate = Sugar.Date.format(new Date(parseInt(date[2])), '%Y-%m-%d');
|
const newdate = Sugar.Date.format(new Date(parseInt(date[2])), '%Y-%m-%d');
|
||||||
|
|
||||||
newArray.push(newdate);
|
newArray.push(newdate);
|
||||||
|
|
||||||
@ -483,58 +466,135 @@ function processDataV2(data) {
|
|||||||
|
|
||||||
re.unshift(newArray);
|
re.unshift(newArray);
|
||||||
console.log(newArray);
|
console.log(newArray);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function processDataV2B(data) {
|
function processDataV2B(data) {
|
||||||
var newArray = [];
|
let newArray = [];
|
||||||
var numbers=[], stars=[], date ;
|
const numbers = [], stars = [];
|
||||||
|
let date;
|
||||||
|
|
||||||
console.log(data);
|
console.log(data);
|
||||||
|
|
||||||
date = /(\/Date\()([0-9]+)([\s\S]+)/.exec(data.Date);
|
date = /(\/Date\()([0-9]+)([\s\S]+)/.exec(data.Date);
|
||||||
|
|
||||||
date = date[2];
|
date = date[2];
|
||||||
date = parseInt(date);
|
date = parseInt(date);
|
||||||
|
|
||||||
date = new Date(date);
|
date = new Date(date);
|
||||||
|
|
||||||
|
|
||||||
console.log(dateFormat(date));
|
console.log(dateFormat(date));
|
||||||
|
|
||||||
date = dateFormat(date,"yyyy-dd-mm" );
|
date = dateFormat(date, 'yyyy-dd-mm' );
|
||||||
|
|
||||||
numbers.push(parseInt(data.Num1));
|
numbers.push(parseInt(data.Num1));
|
||||||
numbers.push(parseInt(data.Num2));
|
numbers.push(parseInt(data.Num2));
|
||||||
numbers.push(parseInt(data.Num3));
|
numbers.push(parseInt(data.Num3));
|
||||||
numbers.push(parseInt(data.Num4));
|
numbers.push(parseInt(data.Num4));
|
||||||
numbers.push(parseInt(data.Num5));
|
numbers.push(parseInt(data.Num5));
|
||||||
|
|
||||||
stars.push(parseInt(data.Star1));
|
stars.push(parseInt(data.Star1));
|
||||||
stars.push(parseInt(data.Star2));
|
stars.push(parseInt(data.Star2));
|
||||||
|
|
||||||
newArray.push(date);
|
newArray.push(date);
|
||||||
newArray = newArray.concat(numbers);
|
newArray = newArray.concat(numbers);
|
||||||
newArray = newArray.concat(stars);
|
newArray = newArray.concat(stars);
|
||||||
|
|
||||||
|
|
||||||
re.unshift(newArray);
|
re.unshift(newArray);
|
||||||
|
|
||||||
console.log(newArray);
|
console.log(newArray);
|
||||||
|
|
||||||
|
return newArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function othercalcV2() {
|
||||||
|
// Var p = 1 / ((-1)*numberStore.length);
|
||||||
|
const p = 1.0 / (numberStore.length);
|
||||||
|
|
||||||
|
for (let i = 0; i < numberStore.length - 1; i++) {
|
||||||
|
const thisRow = [];
|
||||||
|
|
||||||
|
for (let s = 1; s < 6; s++) {
|
||||||
|
const cv = numberStore[i][s];
|
||||||
|
|
||||||
|
for (let n = 1; n < 6; n++)
|
||||||
|
if (n !== s) {
|
||||||
|
const workVal = numberStore[i][n];
|
||||||
|
// Console.log(workVal);
|
||||||
|
// m[cv-1][workVal-1]++;
|
||||||
|
|
||||||
|
// Console.log('mo', mo);
|
||||||
|
|
||||||
|
const tempArray = [cv, workVal].sort((a, b) => {
|
||||||
|
if (a < b)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return a > b ? 1 : 0;
|
||||||
|
});
|
||||||
|
const id = tempArray.join('-');
|
||||||
|
|
||||||
|
if (thisRow.indexOf(id) === -1) {
|
||||||
|
const record = newNumberContainer[id] || { 'c': 0, 'v': 0, 'id': id };
|
||||||
|
record.c++;
|
||||||
|
record.v += (p * i);
|
||||||
|
newNumberContainer[id] = record;
|
||||||
|
|
||||||
|
thisRow.push(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let flatArray = Object.keys(newNumberContainer).map((key) => newNumberContainer[key]);
|
||||||
|
|
||||||
|
flatArray = flatArray.sort((a, b) => {
|
||||||
|
if (a.c < b.c)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return a.c > b.c ? -1 : 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
let line = [];
|
||||||
|
let lineI = 0;
|
||||||
|
|
||||||
|
while (line.length < 5) {
|
||||||
|
const pair = flatArray[lineI];
|
||||||
|
pairS = pair.id.split('-');
|
||||||
|
|
||||||
|
if (line.indexOf(pairS[0]) === -1 && line.length < 5)
|
||||||
|
line.push(pairS[0]);
|
||||||
|
|
||||||
|
if (line.indexOf(pairS[1]) === -1 && line.length < 5)
|
||||||
|
line.push(pairS[1]);
|
||||||
|
|
||||||
|
// console.log(line);
|
||||||
|
lineI++;
|
||||||
|
}
|
||||||
|
|
||||||
|
line = line.sort((a, b) => {
|
||||||
|
if (~~a < ~~b)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return ~~a > ~~b ? 1 : 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
//console.log(line);
|
||||||
|
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
function GO() {
|
function GO() {
|
||||||
re = [];
|
re = [];
|
||||||
resultsObj = {};
|
resultsObj = {};
|
||||||
|
|
||||||
jsonfile.readFile(file, function (err, obj) {
|
jsonfile.readFile(file, function (err, obj) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
re = obj;
|
re = obj;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* performCalcs();
|
/* performCalcs();
|
||||||
|
|
||||||
prepareResults();
|
prepareResults();
|
||||||
|
|
||||||
@ -542,22 +602,21 @@ function GO() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
resultsQuery(function (a) {
|
resultsQuery(function (a) {
|
||||||
//processData(a);
|
//processData(a);
|
||||||
processDataV2(a);
|
processDataV2(a);
|
||||||
|
|
||||||
performCalcs();
|
performCalcs();
|
||||||
|
|
||||||
prepareResults();
|
prepareResults();
|
||||||
|
|
||||||
console.log(resultsObj);
|
console.log(resultsObj);
|
||||||
|
|
||||||
sendEmail();
|
// sendEmail();
|
||||||
|
|
||||||
saveData();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
saveData();
|
||||||
});
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -567,8 +626,8 @@ function GO() {
|
|||||||
|
|
||||||
//sendEmail();
|
//sendEmail();
|
||||||
|
|
||||||
cron.schedule('10 13 * * 2,5', function(){
|
cron.schedule('10 13 * * 2,5', function() {
|
||||||
GO();
|
GO();
|
||||||
// console.log('tick');
|
// console.log('tick');
|
||||||
return -1;
|
return -1;
|
||||||
});
|
});
|
||||||
|
104
lotV2.js
104
lotV2.js
@ -4,16 +4,12 @@ const jsonfile = require('jsonfile'),
|
|||||||
|
|
||||||
const Sugar = require('sugar-date');
|
const Sugar = require('sugar-date');
|
||||||
|
|
||||||
const file = 'data/data.json';
|
const pusher = require('./pusher');
|
||||||
const m = [],
|
|
||||||
prev = [],
|
|
||||||
mo = [],
|
|
||||||
star = [],
|
|
||||||
trip = [],
|
|
||||||
results = [],
|
|
||||||
line = [];
|
|
||||||
|
|
||||||
let newNumberContainer = {};
|
const file = 'data/data.json';
|
||||||
|
const m = [];
|
||||||
|
|
||||||
|
const newNumberContainer = {};
|
||||||
|
|
||||||
let numberStore = [];
|
let numberStore = [];
|
||||||
let resultsObj = {};
|
let resultsObj = {};
|
||||||
@ -21,9 +17,9 @@ let resultsObj = {};
|
|||||||
function buildArray() {
|
function buildArray() {
|
||||||
for (let x = 0; x < 51; x++) {
|
for (let x = 0; x < 51; x++) {
|
||||||
const l = [];
|
const l = [];
|
||||||
for (let y = 0; y < 51; y++) {
|
for (let y = 0; y < 51; y++)
|
||||||
l.push(0);
|
l.push(0);
|
||||||
}
|
|
||||||
m[x] = l;
|
m[x] = l;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -38,14 +34,16 @@ function dynamicSort(property) {
|
|||||||
sortOrder = -1;
|
sortOrder = -1;
|
||||||
property = property.substr(1);
|
property = property.substr(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return function(a, b) {
|
return function(a, b) {
|
||||||
const result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
|
const result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
|
||||||
return result * sortOrder;
|
|
||||||
}
|
return result * sortOrder;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function othercalcV2() {
|
function othercalcV2() {
|
||||||
// Var p = 1 / ((-1)*numberStore.length);
|
// Var p = 1 / ((-1)*numberStore.length);
|
||||||
const p = 1.0 / (numberStore.length);
|
const p = 1.0 / (numberStore.length);
|
||||||
|
|
||||||
for (let i = 0; i < numberStore.length - 1; i++) {
|
for (let i = 0; i < numberStore.length - 1; i++) {
|
||||||
@ -54,25 +52,24 @@ function othercalcV2() {
|
|||||||
for (let s = 1; s < 6; s++) {
|
for (let s = 1; s < 6; s++) {
|
||||||
const cv = numberStore[i][s];
|
const cv = numberStore[i][s];
|
||||||
|
|
||||||
for (let n = 1; n < 6; n++) {
|
for (let n = 1; n < 6; n++)
|
||||||
if (n !== s) {
|
if (n !== s) {
|
||||||
let workVal = numberStore[i][n];
|
const workVal = numberStore[i][n];
|
||||||
// Console.log(workVal);
|
// Console.log(workVal);
|
||||||
// m[cv-1][workVal-1]++;
|
// m[cv-1][workVal-1]++;
|
||||||
|
|
||||||
// Console.log('mo', mo);
|
// Console.log('mo', mo);
|
||||||
|
|
||||||
const tempArray = [cv, workVal].sort((a, b) => {
|
const tempArray = [cv, workVal].sort((a, b) => {
|
||||||
if (a < b) {
|
if (a < b)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
return a > b ? 1 : 0;
|
return a > b ? 1 : 0;
|
||||||
});
|
});
|
||||||
const id = tempArray.join('-');
|
const id = tempArray.join('-');
|
||||||
|
|
||||||
if (thisRow.indexOf(id) === -1) {
|
if (thisRow.indexOf(id) === -1) {
|
||||||
|
const record = newNumberContainer[id] || { 'c': 0, 'v': 0, 'id': id };
|
||||||
const record = newNumberContainer[id] || {c: 0, v: 0, id: id};
|
|
||||||
record.c++;
|
record.c++;
|
||||||
record.v += (p * i);
|
record.v += (p * i);
|
||||||
newNumberContainer[id] = record;
|
newNumberContainer[id] = record;
|
||||||
@ -80,52 +77,55 @@ function othercalcV2() {
|
|||||||
thisRow.push(id);
|
thisRow.push(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let flatArray = Object.keys(newNumberContainer).map((key) => newNumberContainer[key]);
|
let flatArray = Object.keys(newNumberContainer).map((key) => newNumberContainer[key]);
|
||||||
|
|
||||||
flatArray = flatArray.sort((a, b) => {
|
flatArray = flatArray.sort((a, b) => {
|
||||||
if (a.c < b.c) {
|
if (a.c < b.c)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
return a.c > b.c ? -1 : 0;
|
return a.c > b.c ? -1 : 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
let line = [];
|
let line = [];
|
||||||
let lineI = 0;
|
let lineI = 0;
|
||||||
|
|
||||||
while (line.length < 5) {
|
while (line.length < 5) {
|
||||||
let pair = flatArray[lineI];
|
const pair = flatArray[lineI];
|
||||||
pairS = pair.id.split('-');
|
pairS = pair.id.split('-');
|
||||||
|
|
||||||
if (line.indexOf(pairS[0]) === -1 && line.length < 5) {
|
if (line.indexOf(pairS[0]) === -1 && line.length < 5)
|
||||||
line.push(pairS[0]);
|
line.push(pairS[0]);
|
||||||
}
|
|
||||||
if (line.indexOf(pairS[1]) === -1 && line.length < 5) {
|
if (line.indexOf(pairS[1]) === -1 && line.length < 5)
|
||||||
line.push(pairS[1]);
|
line.push(pairS[1]);
|
||||||
}
|
|
||||||
// console.log(line);
|
// console.log(line);
|
||||||
lineI++;
|
lineI++;
|
||||||
}
|
}
|
||||||
|
|
||||||
line = line.sort((a, b) => {
|
line = line.sort((a, b) => {
|
||||||
if (~~a < ~~b) {
|
if (~~a < ~~b)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
return ~~a > ~~b ? 1 : 0;
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(line);
|
return ~~a > ~~b ? 1 : 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
//console.log(line);
|
||||||
|
|
||||||
|
return line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function performCalcs() {
|
function performCalcs() {
|
||||||
buildArray();
|
buildArray();
|
||||||
//BuildTable();
|
//BuildTable();
|
||||||
othercalcV2();
|
let line = othercalcV2();
|
||||||
console.log('---------------------------------------');
|
console.log('---------------------------------------');
|
||||||
|
console.log(`line: ${line}`);
|
||||||
|
pusher.push(`line: ${line}`);
|
||||||
// Starcalc();
|
// Starcalc();
|
||||||
|
|
||||||
// tripCalc();
|
// tripCalc();
|
||||||
@ -137,20 +137,16 @@ function GO() {
|
|||||||
resultsObj = {};
|
resultsObj = {};
|
||||||
|
|
||||||
jsonfile.readFile(file, function(err, obj) {
|
jsonfile.readFile(file, function(err, obj) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
numberStore = obj;
|
numberStore = obj;
|
||||||
|
|
||||||
// Console.log(numberStore);
|
// Console.log(numberStore);
|
||||||
performCalcs();
|
performCalcs();
|
||||||
|
|
||||||
//PrepareResults();
|
//PrepareResults();
|
||||||
|
|
||||||
// console.log(resultsObj);
|
// console.log(resultsObj);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GO();
|
GO();
|
||||||
|
@ -18,7 +18,10 @@
|
|||||||
"lot": "./lot.js"
|
"lot": "./lot.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"dateformat": "^2.0.0",
|
||||||
"jsonfile": "^2.4.0",
|
"jsonfile": "^2.4.0",
|
||||||
|
"log4js": "^2.3.3",
|
||||||
|
"node-pushover": "^0.2.2",
|
||||||
"sugar": "^2.0.1",
|
"sugar": "^2.0.1",
|
||||||
"sugar-date": "^2.0.0"
|
"sugar-date": "^2.0.0"
|
||||||
}
|
}
|
||||||
|
26
pusher.js
Normal file
26
pusher.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
* User: Martin Donnelly
|
||||||
|
* Date: 2016-04-08
|
||||||
|
* Time: 16:35
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
var Pushover = require('node-pushover'), dateFormat = require('dateformat');
|
||||||
|
var push = new Pushover({
|
||||||
|
'token': 'aqnos2j4v4pjpry3hvnxq9646eup23',
|
||||||
|
'user': 'BE2vgFxdHJw91lVGMRYvZDDmVa5cCM'
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var logger = require('log4js').getLogger();
|
||||||
|
|
||||||
|
const prefix = process.env.NODE_ENV === 'production' ? 'Production' : 'Dev';
|
||||||
|
const title = `mdLot ${ prefix } Alert`;
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
'push' : function(contents) {
|
||||||
|
var now = new Date();
|
||||||
|
var msg = `Updated at ${ dateFormat(now, 'dddd, mmmm dS, yyyy, HH:MM:ss') }\n\n${ contents }`;
|
||||||
|
push.send(title, msg);
|
||||||
|
}
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user