-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathupdate-username-cache.js
64 lines (53 loc) · 2.14 KB
/
update-username-cache.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
var flatCache = require('flat-cache');
const logger = require('./utils/logger');
const cache = flatCache.load('username-cache');
const userHistoryChannelID = process.env.userHistoryChannelID;
const serverID = process.env.serverID;
module.exports = async function (client, GuildMember = undefined){
try{
if(!GuildMember) {
let guild = await client.guilds.cache.get(serverID);
let membersMap = await guild.members.fetch()
for (const [key,value] of membersMap) {
let GuildMember = membersMap.get(key)
checkUser(client, GuildMember)
}
}
else {
checkUser(client, GuildMember)
}
}
catch(error){
console.error(error)
client.channels.cache.get(userHistoryChannelID).send(`Username cache error: ${error}`)
}
}
async function checkUser(client, GuildMember){
try{
let username = GuildMember.user.username;
let id = GuildMember.user.id;
//Returns array of user's past usernames
let cachedUsernameArray = await cache.getKey(id);
logger.debug(`Cached username array:${cachedUsernameArray}`)
/* If id is not in cache, insert into cache with
the id as key and array with username as value */
if(cachedUsernameArray === undefined){
let usernameArray = [username]
await cache.setKey(id, usernameArray)
client.channels.cache.get(userHistoryChannelID).send(`NEW username: ${username}`)
logger.info(`NEW username: ${username}`)
}
else if(cachedUsernameArray[0] != username){
cachedUsernameArray.unshift(username);
logger.debug(`here's the username array before being set as a key${cachedUsernameArray}`)
await cache.setKey(id, cachedUsernameArray);
logger.debug(`cache.getKey(id): ${cache.getKey(id)}`)
client.channels.cache.get(userHistoryChannelID).send(`CHANGED username: "${cachedUsernameArray[1]}" is now "${cachedUsernameArray[0]}"`);
logger.info(`CHANGED username: "${cachedUsernameArray[1]}" is now "${cachedUsernameArray[0]}"`);
}
cache.save()
}
catch(error){
console.error(`Error in checkUser: ${error}`)
}
}