Skip to content

Commit 3092f95

Browse files
authored
Merge pull request #130 from RandomAPI/loadTracker
Load tracker
2 parents 3626678 + ac60cd5 commit 3092f95

10 files changed

Lines changed: 84 additions & 125 deletions

File tree

api/.nextRelease/api.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
*/
1212

1313
const fs = require('fs');
14-
const util = require('util');
15-
const readDir = util.promisify(fs.readdir);
16-
const readFile = util.promisify(fs.readFile);
14+
const readDir = require('util').promisify(fs.readdir);
15+
const readFile = require('util').promisify(fs.readFile);
1716
const path = require('path');
1817
const mersenne = require('mersenne');
1918
const crypto = require('crypto');
@@ -22,6 +21,7 @@ const js2xmlparser = require('js2xmlparser');
2221
const converter = require('json-2-csv');
2322
const faker = require('faker');
2423
const tr = require("transliteration");
24+
const util = require('../../util');
2525
const settings = require('../../settings');
2626
const version = '1.3';
2727

@@ -234,7 +234,7 @@ class Generator {
234234
let json = {
235235
results: output,
236236
info: {
237-
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
237+
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? util.pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
238238
results: this.results,
239239
page: this.page,
240240
version: this.version
@@ -426,12 +426,6 @@ function randomItem(arr) {
426426
return arr[range(0, arr.length-1)];
427427
}
428428

429-
function pad (n, width, z) {
430-
z = z || '0';
431-
n = n + '';
432-
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
433-
}
434-
435429
function range (min, max) {
436430
return min + mersenne.rand(max-min+1);
437431
}
@@ -457,7 +451,7 @@ module.exports = {
457451
Generator,
458452
random,
459453
randomItem,
460-
pad,
454+
pad: util.pad,
461455
range,
462456
uppercaseify,
463457
include,

api/1.0/api.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
const fs = require('fs');
2-
const util = require('util');
3-
const readDir = util.promisify(fs.readdir);
4-
const readFile = util.promisify(fs.readFile);
2+
const readDir = require('util').promisify(fs.readdir);
3+
const readFile = require('util').promisify(fs.readFile);
54
const path = require('path');
65
const mersenne = require('mersenne');
76
const crypto = require('crypto');
87
const YAML = require('yamljs');
98
const js2xmlparser = require('js2xmlparser');
109
const converter = require('json-2-csv');
10+
const util = require('../../util');
1111
const settings = require('../../settings');
1212
const version = '1.0';
1313

@@ -193,7 +193,7 @@ class Generator {
193193
let json = {
194194
results: output,
195195
info: {
196-
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
196+
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? util.pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
197197
results: this.results,
198198
page: this.page,
199199
version: this.version
@@ -308,12 +308,6 @@ function randomItem(arr) {
308308
return arr[range(0, arr.length-1)];
309309
}
310310

311-
function pad (n, width, z) {
312-
z = z || '0';
313-
n = n + '';
314-
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
315-
}
316-
317311
function range (min, max) {
318312
return min + mersenne.rand(max-min+1);
319313
}
@@ -339,7 +333,7 @@ module.exports = {
339333
Generator,
340334
random,
341335
randomItem,
342-
pad,
336+
pad: util.pad,
343337
range,
344338
uppercaseify,
345339
include,

api/1.1/api.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77
*/
88

99
const fs = require('fs');
10-
const util = require('util');
11-
const readDir = util.promisify(fs.readdir);
12-
const readFile = util.promisify(fs.readFile);
10+
const readDir = require('util').promisify(fs.readdir);
11+
const readFile = require('util').promisify(fs.readFile);
1312
const path = require('path');
1413
const mersenne = require('mersenne');
1514
const moment = require('moment');
1615
const crypto = require('crypto');
1716
const YAML = require('yamljs');
1817
const js2xmlparser = require('js2xmlparser');
1918
const converter = require('json-2-csv');
19+
const util = require('../../util');
2020
const settings = require('../../settings');
2121
const version = '1.1';
2222

@@ -204,7 +204,7 @@ class Generator {
204204
let json = {
205205
results: output,
206206
info: {
207-
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
207+
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? util.pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
208208
results: this.results,
209209
page: this.page,
210210
version: this.version
@@ -373,12 +373,6 @@ function randomItem(arr) {
373373
return arr[range(0, arr.length-1)];
374374
}
375375

376-
function pad (n, width, z) {
377-
z = z || '0';
378-
n = n + '';
379-
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
380-
}
381-
382376
function range (min, max) {
383377
return min + mersenne.rand(max-min+1);
384378
}
@@ -404,7 +398,7 @@ module.exports = {
404398
Generator,
405399
random,
406400
randomItem,
407-
pad,
401+
pad: util.pad,
408402
range,
409403
uppercaseify,
410404
include,

api/1.2/api.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
*/
1212

1313
const fs = require('fs');
14-
const util = require('util');
15-
const readDir = util.promisify(fs.readdir);
16-
const readFile = util.promisify(fs.readFile);
14+
const readDir = require('util').promisify(fs.readdir);
15+
const readFile = require('util').promisify(fs.readFile);
1716
const path = require('path');
1817
const mersenne = require('mersenne');
1918
const moment = require('moment');
@@ -22,6 +21,7 @@ const YAML = require('yamljs');
2221
const js2xmlparser = require('js2xmlparser');
2322
const converter = require('json-2-csv');
2423
const faker = require('faker');
24+
const util = require('../../util');
2525
const settings = require('../../settings');
2626
const version = '1.2';
2727

@@ -231,7 +231,7 @@ class Generator {
231231
let json = {
232232
results: output,
233233
info: {
234-
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
234+
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? util.pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
235235
results: this.results,
236236
page: this.page,
237237
version: this.version
@@ -401,12 +401,6 @@ function randomItem(arr) {
401401
return arr[range(0, arr.length-1)];
402402
}
403403

404-
function pad (n, width, z) {
405-
z = z || '0';
406-
n = n + '';
407-
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
408-
}
409-
410404
function range (min, max) {
411405
return min + mersenne.rand(max-min+1);
412406
}
@@ -432,7 +426,7 @@ module.exports = {
432426
Generator,
433427
random,
434428
randomItem,
435-
pad,
429+
pad: util.pad,
436430
range,
437431
uppercaseify,
438432
include,

api/1.3/api.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
*/
1212

1313
const fs = require('fs');
14-
const util = require('util');
15-
const readDir = util.promisify(fs.readdir);
16-
const readFile = util.promisify(fs.readFile);
14+
const readDir = require('util').promisify(fs.readdir);
15+
const readFile = require('util').promisify(fs.readFile);
1716
const path = require('path');
1817
const mersenne = require('mersenne');
1918
const crypto = require('crypto');
@@ -22,6 +21,7 @@ const js2xmlparser = require('js2xmlparser');
2221
const converter = require('json-2-csv');
2322
const faker = require('faker');
2423
const tr = require("transliteration");
24+
const util = require('../../util');
2525
const settings = require('../../settings');
2626
const version = '1.3';
2727

@@ -234,7 +234,7 @@ class Generator {
234234
let json = {
235235
results: output,
236236
info: {
237-
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
237+
seed: String(this.seed + (this.nat !== null && !Array.isArray(this.nat) ? util.pad((this.nats.indexOf(this.nat)).toString(16), 2) : '')),
238238
results: this.results,
239239
page: this.page,
240240
version: this.version
@@ -426,12 +426,6 @@ function randomItem(arr) {
426426
return arr[range(0, arr.length-1)];
427427
}
428428

429-
function pad (n, width, z) {
430-
z = z || '0';
431-
n = n + '';
432-
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
433-
}
434-
435429
function range (min, max) {
436430
return min + mersenne.rand(max-min+1);
437431
}
@@ -457,7 +451,7 @@ module.exports = {
457451
Generator,
458452
random,
459453
randomItem,
460-
pad,
454+
pad: util.pad,
461455
range,
462456
uppercaseify,
463457
include,

models/Load.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const mongoose = require('mongoose');
2+
3+
const loadSchema = mongoose.Schema({
4+
date: {
5+
type: Date,
6+
unique: true
7+
},
8+
'load': Number
9+
});
10+
loadSchema.index({date: 1}, {unique: true});
11+
12+
const Load = mongoose.model('Load', loadSchema);
13+
14+
module.exports = Load;

routes/api.js

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
const fs = require('fs');
2-
const util = require('util');
3-
const writeFile = util.promisify(fs.writeFile);
4-
const unlink = util.promisify(fs.unlink);
2+
const writeFile = require('util').promisify(fs.writeFile);
3+
const unlink = require('util').promisify(fs.unlink);
54
const qs = require('qs');
65
const express = require('express');
76
const router = express.Router();
87
const settings = require('../settings');
98
const Request = require('../models/Request');
109
const legRequest = require('request-promise-native');
1110
const store = require('../store');
11+
const util = require('../util');
1212

1313
router.use('/portraits', express.static('public/portraits'));
1414

@@ -111,7 +111,7 @@ async function genUser(req, res, version) {
111111
payload[version.replace(/\./g, '_')] = results;
112112

113113
let doc = await Request.findOneAndUpdate(
114-
{date: getDateTime()},
114+
{date: util.getDateTime()},
115115
{$setOnInsert: payload},
116116
{
117117
returnOriginal: false,
@@ -120,7 +120,7 @@ async function genUser(req, res, version) {
120120
);
121121

122122
if (doc !== null) {
123-
await Request.updateOne({date: getDateTime()}, {$inc: payload});
123+
await Request.updateOne({date: util.getDateTime()}, {$inc: payload});
124124
}
125125

126126
res.send(ret);
@@ -188,7 +188,7 @@ async function genUser(req, res, version) {
188188
payload[version.replace(/\./g, '_')] = results;
189189

190190
let doc = await Request.findOneAndUpdate(
191-
{date: getDateTime()},
191+
{date: util.getDateTime()},
192192
{$setOnInsert: payload},
193193
{
194194
returnOriginal: true,
@@ -197,7 +197,7 @@ async function genUser(req, res, version) {
197197
);
198198

199199
if (doc !== null) {
200-
await Request.updateOne({date: getDateTime()}, {$inc: payload});
200+
await Request.updateOne({date: util.getDateTime()}, {$inc: payload});
201201
}
202202

203203
// Download or output file
@@ -227,23 +227,4 @@ async function genUser(req, res, version) {
227227
}
228228
}
229229

230-
function getDateTime() {
231-
const date = new Date();
232-
const year = date.getFullYear();
233-
234-
let month = date.getMonth() + 1;
235-
month = (month < 10 ? '0' : '') + month;
236-
237-
let day = date.getDate();
238-
day = (day < 10 ? '0' : '') + day;
239-
240-
return year + '-' + pad(month, 2) + '-' + pad(day, 2);
241-
}
242-
243-
function pad(n, width, z) {
244-
z = z || '0';
245-
n = n + '';
246-
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
247-
}
248-
249230
module.exports = router;

routes/stats.js

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ const format = require('format-number')();
55
const filesize = require('filesize');
66
const router = express.Router();
77
const Request = require('../models/Request');
8+
const util = require('../util');
89

910
router.get('/', (req, res, next) => {
1011
Request.find({
11-
date: { $gte: getDateTime(30) }
12+
date: { $gte: util.getDateTime(30) }
1213
}, {
1314
date: 1,
1415
bandwidth: 1,
@@ -27,29 +28,9 @@ router.get('/', (req, res, next) => {
2728
});
2829
});
2930

30-
function getDateTime(daysBack) {
31-
daysBack = daysBack || 0;
32-
const date = new Date(new Date().getTime() - 86400000 * daysBack);
33-
const year = date.getFullYear();
34-
35-
let month = date.getMonth() + 1;
36-
month = (month < 10 ? '0' : '') + month;
37-
38-
let day = date.getDate();
39-
day = (day < 10 ? '0' : '') + day;
40-
41-
return year + '-' + pad(month, 2) + '-' + pad(day, 2);
42-
}
43-
44-
function pad(n, width, z) {
45-
z = z || '0';
46-
n = n + '';
47-
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
48-
}
49-
5031
function simpleDate(date) {
5132
const a = new Date(date);
52-
return pad(a.getMonth()+1, 2) + "." + pad(a.getUTCDate(), 2);
33+
return util.pad(a.getMonth()+1, 2) + "." + util.pad(a.getUTCDate(), 2);
5334
}
5435

5536
module.exports = router;

0 commit comments

Comments
 (0)