-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrun.js
114 lines (94 loc) · 2.76 KB
/
run.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
var mgr = require('./domainQueryMgr.js');
var domainLimit = 242;
var extensions = ['io'];
var batch = 0;
var responseArr = [];
mgr.resultAddedEvt(resultsReceived)
var domains = GenerateDomainNames(domainLimit, 'r');
// [0]: domains to check (generate up to n)
// [1]: batch size
// [2]: show response xml
mgr.checkDomains(
domains,
3,
false,
receiveResults
);
function receiveResults(resposeArr, time){
// console.log('batch ' + batch + 'received with ' + resposeArr.length + ' results. in: ' + time);
if (batch++ == 0)
console.log('available!');
for (var i=0; i<resposeArr.length; i++){
var res = resposeArr[i];
responseArr.push(res);
if (res.isAvailable){
process.stdout.write(' ' + res.domain + ' ');
if (i % 10 == 0) process.stdout.write('\n');
}
}
if (responseArr.length == domains.length){
console.log('finished..');
}
}
function getLetters() {
return ("abcdefghijklmnopqrstuvwxyz").split('');
}
function GenerateDomainNames(limit, startingLetter, wordSize) {
var domains = [];
var letters = getLetters();
// var arr = [];
//
// for (var x=0;x<wordSize; x++) {
// console.log('asdfasdf')
// arr[x] = [];
// for (var i in letters){
// console.log('appending ' + x + ' ' + i + ' ' + letters[i]);
// appendLetter(x,i, letters[i], arr);
// }
// }
//
// console.dir(arr);
for (var l1 in letters)
if (!startingLetter || letters[l1] == startingLetter);
for (var l2 in letters)
for (var l3 in letters)
if (limit-- > 0)
for (var e in extensions)
domains.push(letters[l1] + letters[l2] + letters[l3] + '.' + extensions[e]);
return domains;
}
function appendLetter(x,y,letter, arr){
arr[x][y] = letter;
}
function resultsReceived() {
console.log(' *** results received ** ' + mgr.results.length);
if ( mgr.results.length >= domainLimit){ // wait for all batches to finish
console.log('\n\nAvailable Domains!')
for (var i=0; i<mgr.results.length; i++){
var res = mgr.results[i];
if (res.isAvailable){
process.stdout.write(' ' + res.domain + ' ');
if (i % 10 == 0) process.stdout.write('\n');
}
}
t.stop();
console.log('\n\n *** finished.. ' + t.getTime());
}
}
var timer = function(){
var start,
end;
return {
start: function(){
start = new Date().getTime();
},
stop: function(){
end = new Date().getTime();
},
getTime: function(){
return time = end - start;
}
};
};
var t = timer();
t.start();