-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcalendar.js
109 lines (86 loc) · 2.31 KB
/
calendar.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
var Database = require('./database'),
Util = require('./util');
function getMinutes (firstCalendar) {
var minuteTMP = [];
var count = 0;
var valid = true;
var dayMinutes = 1440;
var timeStamp = Date.now();
while(valid) {
var NextFollow = Util.randomInt(5, 50);
var PassedLimit = NextFollow + count >= dayMinutes;
if (PassedLimit == false) {
if (firstCalendar && count == 0) {
count = count + 1;
minuteTMP.push({ timestamp: timeStamp });
} else {
count = count + NextFollow;
minuteTMP.push({ timestamp: timeStamp + count * 60000 });
}
} else {
valid = false;
}
}
return minuteTMP;
}
function _fillWithFollow (calendar, firstCalendar) {
var FollowLimit = Util.randomInt(950,1000);
var FollowHour = Math.floor(FollowLimit/calendar.length);
console.log('FollowLimit');
console.log(FollowLimit)
var FollowToday = 0;
calendar.forEach(function (action, index) {
var IncrementF = Util.randomInt(0,7);
var PassedLimit = (FollowToday + FollowHour + IncrementF) >= FollowLimit;
if(firstCalendar && FollowToday == 0){
FHour = Util.randomInt(35,45);
}else{
if(Util.randomInt(0,1) == 0 || PassedLimit){
if(PassedLimit){
var FHour = 0;
calendar.splice(index);
} else {
var FHour = FollowHour - IncrementF;
}
}else{
var FHour = FollowHour + IncrementF;
}
}
action.follow = FHour;
FollowToday = FollowToday + FHour;
});
console.log('FollowToday');
console.log(FollowToday);
}
function _fillWithUser (calendar, uid, user) {
calendar.map(function (action){
action.user = {
screen_name: user,
id: uid,
}
});
}
function _generateNewCalendarTask(calendar) {
calendar.push({
timestamp: Date.now() + 86400000,
action: "createCalendar"
})
}
function _createCalendar (users, callback) {
var usersCalendar = [];
users.forEach(function (user) {
usersCalendar = usersCalendar.concat(createUserCalendar(user));
});
return callback(usersCalendar);
}
function createUserCalendar (user, firstCalendar) {
console.log('crete user calendar');
var calendar = getMinutes(firstCalendar);
_fillWithFollow(calendar, firstCalendar);
_generateNewCalendarTask(calendar);
_fillWithUser(calendar, user.id, user.twitter.screen_name);
return {calendar: calendar, user: user};
}
module.exports = {
createUserCalendar: createUserCalendar
}