NoMoreAcronyms/commands/addPhrase.cjs

47 lines
1.6 KiB
JavaScript

const { SlashCommandBuilder } = require('discord.js');
var abbreviationKey = require("../abbreviation_key.json");
const fs = require('node:fs');
var path = require('node:path');
//console.log(abbreviationKey);
module.exports = {
data: new SlashCommandBuilder()
.setName("add_phrase")
.setDescription("adds abbreviation to respond to")
.addStringOption( (option) =>
option.setName("abbreviation")
.setDescription("The abbreviation to target")
.setRequired(true)
)
.addStringOption( option =>
option.setName('phrase')
.setDescription("The phrase that the abbreviation shortens")
.setRequired(true)
),
async execute(interaction, client) {
var abbreviation = interaction.options.getString('abbreviation').toLowerCase();
var phrase = interaction.options.getString('phrase');
await interaction.reply('Adding abbreviation `' + abbreviation + "` to target list. This will complete to the phrase `" + phrase + "`");
addPhrase(abbreviation, phrase);
},
};
function addPhrase(abbrevation, phrase) {
console.log(abbrevation, phrase);
abbreviationKey.target_phrases[abbrevation] = phrase;
console.log(abbreviationKey);
// Write data to file
var jsonString = JSON.stringify(abbreviationKey);
try {
//console.log(fs.existsSync("../abbreviation_key.json"));
var jsonPath = path.join(__dirname, '..', 'abbreviation_key.json');
fs.unlinkSync(jsonPath);
fs.writeFileSync(jsonPath, jsonString, { encoding: 'utf8' }, "\t");
console.log("Added Phrase to list. JSON now contains:" + abbreviationKey);
} catch (err) {
console.error(err);
}
}