-
Notifications
You must be signed in to change notification settings - Fork 1
/
role-audit.js
96 lines (81 loc) · 2.15 KB
/
role-audit.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
'use strict';
// TODO: This will be role audit stuff that doesn't have to be Snakeroom-specific
export const performRoleAudit = () => {
};
/*/
findAllMemberJoinDates(Snakeroom)
.then(memberJoinDates => {
for(const [memberID, timestamp] of memberJoinDates) {
Snakeroom.members.fetch(memberID)
.then(member => {
if(timestamp < ogSnekCutoffDate) {
member.roles.add(originalSnekRoleID);
} else if (timestamp < vet19CutoffDate) {
member.roles.add(veteran19RoleID);
}
})
}
timestampLog("Fucking did it.");
});
//*/
/*
const hasRole = (member, roleID) => {
return member.roles.cache.has(roleID);
};
const makeAuditResult = ({stepPassed=true, reason='No reason given.', rolesToRemove=[], rolesToAdd=[]}) => {
return {
stepPassed: stepPassed,
reason: reason,
rolesToRemove: rolesToRemove,
rolesToAdd: rolesToAdd
};
};
const defaultPassResult = makeAuditResult({});
const auditRoles = () => {
const roleErrors = {
};
const roleAuditStepList = [
sneklingAuditStep,
trustedDeveloperAuditStep
];
Snakeroom.members.fetch()
.then(snekList => {
snekList.each(snekMember => {
for (const auditStep of roleAuditStepList) {
const stepResult = auditStep(snekMember);
if (!stepResult.stepPassed) {
if (!(snekMember in roleErrors)) {
roleErrors[snekMember] = [];
}
for (const roleToRemove of stepResult.rolesToRemove) {
if (hasRole(snekMember, roleToRemove.id)) {
roleErrors[snekMember].push({
action: RoleAction.remove,
role: roleToRemove,
reason: stepResult.reason
})
}
}
for (const roleToAdd of stepResult.rolesToAdd) {
if (!hasRole(snekMember, roleToAdd.id)) {
roleErrors[snekMember].push({
action: RoleAction.add,
role: roleToAdd,
reason: stepResult.reason
})
}
}
}
}
});
console.log(roleErrors)
})
.catch(err => {
console.error(err);
});
console.log(Snakeroom.memberCount);
};
const isBot = (member) => {
return member.user.bot;
};
//*/