woomy-v2/bot/util/redis.js

43 lines
1.1 KiB
JavaScript
Raw Normal View History

2020-08-18 11:28:28 +00:00
const redis = require('redis')
const generators = require('redis-async-gen')
class Redis {
constructor(client) {
2020-08-19 08:21:23 +00:00
this.client = client;
}
init () {
2020-08-18 11:28:28 +00:00
// Create redis client
this.global = redis.createClient(this.client.config.redis)
this.server = this.global.duplicate({ db: 1 })
this.member = this.global.duplicate({ db: 2 })
this.user = this.global.duplicate({ db: 3 })
2020-08-19 08:21:23 +00:00
}
2020-08-18 11:28:28 +00:00
2020-08-19 08:21:23 +00:00
// Deletes specified guild entry
async deleteGuild (id) {
this.server.del(id)
var { keysMatching } = await generators.using(this.member)
// eslint-disable-next-line no-unused-vars
for await (const key of keysMatching(id + '-*')) {
this.member.del(key)
2020-08-18 11:28:28 +00:00
}
2020-08-19 08:21:23 +00:00
}
2020-08-18 11:28:28 +00:00
2020-08-19 08:21:23 +00:00
// Deletes specified user and their member entries in guilds
async deleteUser (id) {
this.user.del(id)
var { keysMatching } = await generators.using(this.member)
// eslint-disable-next-line no-unused-vars
for await (const key of keysMatching('*-' + id)) {
this.member.del(key)
2020-08-18 11:28:28 +00:00
}
2020-08-19 08:21:23 +00:00
}
2020-08-18 11:28:28 +00:00
2020-08-19 08:21:23 +00:00
// Deletes member of user in specified guild
async deleteMember (guildId, id) {
this.member.del(guildId + '-' + id)
2020-08-18 11:28:28 +00:00
}
}
module.exports = Redis