Another one?

This commit is contained in:
Christopher Cookman 2023-02-07 10:17:59 -07:00
parent 58b0b9371b
commit b17d35ffcb
Signed by: ChrisChrome
GPG key ID: A023A26E42C33A42

View file

@ -16,21 +16,11 @@ const pbxClient = new FreepbxGqlClient(config.freepbx.url, {
// Some functions for FreePBX
// updatePresence, Takes the total number of extensions, and sets it as the discord status
const updatePresence = () => {
const getExtCount = () => {
return new Promise((resolve, reject) => {
pbxClient.request(funcs.generateQuery('list')).then((result) => {
var exts = result.fetchAllExtensions.extension.length;
dcClient.user.setPresence({
status: "online",
activities: [
{
name: exts + " extensions",
type: "WATCHING"
}
]
})
resolve();
pbxClient.request(funcs.generateQuery('list', {})).then((result) => {
resolve(result.fetchAllExtensions.extension.length);
}).catch((error) => {
reject(error);
});
@ -233,15 +223,28 @@ dcClient.on('ready', () => {
})();
// Presence Stuff
updatePresence().then(() => {
console.log("Presence updated");
getExtCount().then((result) => {
dcClient.user.setPresence({
activities: [{
name: `${result} extensions`,
type: "WATCHING"
}],
status: "online"
});
}).catch((error) => {
console.log(error);
});
// Run every 5 minutes
setInterval(() => {
updatePresence().then(() => {
console.log("Presence updated");
getExtCount().then((result) => {
dcClient.user.setPresence({
activities: [{
name: `${result} extensions`,
type: "WATCHING"
}],
status: "online"
});
}).catch((error) => {
console.log(error);
});
@ -309,7 +312,10 @@ dcClient.on('interactionCreate', async interaction => {
});
break;
case "whoami":
interaction.reply({ content: "<a:loading:1072558235019649124>", ephemeral: true })
interaction.reply({
content: "<a:loading:1072558235019649124>",
ephemeral: true
})
lookupExtension(interaction.user.id, "uid").then((result) => {
if (result.status == "exists") {
// The user already has an extension, return an ephemeral message saying so
@ -343,7 +349,9 @@ dcClient.on('interactionCreate', async interaction => {
break;
case "list":
interaction.reply({ content: "<a:loading:1072558235019649124>" })
interaction.reply({
content: "<a:loading:1072558235019649124>"
})
pbxClient.request(funcs.generateQuery("list", {})).then((result) => {
let extensions = result.fetchAllExtensions.extension;
// key:value pairs of extension:username
@ -375,7 +383,10 @@ dcClient.on('interactionCreate', async interaction => {
})
break;
}
interaction.reply({ content: "<a:loading:1072558235019649124>", ephemeral: true })
interaction.reply({
content: "<a:loading:1072558235019649124>",
ephemeral: true
})
lookupExtension(interaction.user.id, "uid").then((result) => {
if (result.status == "exists") {
// The user has an extension, delete it