This module exports various constants and variables used in a Discord bot application, including environment variables, local filepaths, and token and secret retrieval. The module provides default values for these variables, and can be accessed by importing the module.
npm run import -- "discord bot configuration"
var fs = require('fs')
var path = require('path')
var DEFAULT_GUILD = process.env.DEFAULT_GUILD || '319817668117135362'
var DEFAULT_CHANNEL = process.env.DEFAULT_CHANNEL || '1328142980967563337' // 366715821654933515
var DEFAULT_APPLICATION = process.env.DEFAULT_APPLICATION || '1328141471840206899'
var DEFAULT_API = process.env.DEFAULT_API || 'https://discord.com/api/v10/'
var MESSAGE_TIME = process.env.DEFAULT_TIME || 1000 * 60 * 2 // * 60 // 2 minutes to respond
var DEFAULT_RATE = 1000 / 50 // from discord documentation
var PROFILE_PATH = process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE
var DEFAULT_USERNAME = 'Orbb'
var MESSAGES_START = 1420070400000
var tokenPath
if(fs.existsSync('./discord-bot.txt')) {
tokenPath = path.resolve('./discord-bot.txt')
} else {
tokenPath = path.join(PROFILE_PATH, '.credentials/discord-bot.txt')
}
var secretPath
if(fs.existsSync('./discord.txt')) {
secretPath = path.resolve('./discord.txt')
} else {
secretPath = path.join(PROFILE_PATH, '.credentials/discord.txt')
}
var TOKEN = process.env.TOKEN
if(!TOKEN && fs.existsSync(process.env.TOKENPATH || tokenPath)) {
TOKEN = fs.readFileSync(process.env.TOKENPATH || tokenPath).toString('utf-8').trim()
}
var SECRET = process.env.SECRET
if(!SECRET && fs.existsSync(process.env.SECRETPATH || secretPath)) {
SECRET = fs.readFileSync(process.env.SECRETPATH || secretPath).toString('utf-8').trim()
}
module.exports = {
DEFAULT_GUILD,
DEFAULT_CHANNEL,
DEFAULT_APPLICATION,
DEFAULT_API,
MESSAGE_TIME,
DEFAULT_RATE,
PROFILE_PATH,
TOKEN,
SECRET,
DEFAULT_USERNAME,
MESSAGES_START
}
// Import required modules
const fs = require('fs');
const path = require('path');
// Define environment variables with default values
const ENV_VARIABLES = {
DEFAULT_GUILD: process.env.DEFAULT_GUILD || '319817668117135362',
DEFAULT_CHANNEL: process.env.DEFAULT_CHANNEL || '366715821654933515', // Prioritize this channel
DEFAULT_APPLICATION: process.env.DEFAULT_APPLICATION || '1328141471840206899',
DEFAULT_API: process.env.DEFAULT_API || 'https://discord.com/api/v10/',
MESSAGE_TIME: (process.env.DEFAULT_TIME || 1000 * 60 * 2) +'ms', // Convert to milliseconds
DEFAULT_RATE: 1000 / 50, // from discord documentation
PROFILE_PATH: process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE,
DEFAULT_USERNAME: 'Orbb',
MESSAGES_START: 1420070400000,
};
// Define file paths for token and secret
const TOKEN_FILE_PATHS = ['discord-bot.txt', path.join(process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE, '.credentials/discord-bot.txt')];
const SECRET_FILE_PATHS = ['discord.txt', path.join(process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE, '.credentials/discord.txt')];
// Check if token and secret files exist and read their contents
let tokenPath, secretPath;
if (fs.existsSync(TOKEN_FILE_PATHS[0])) {
tokenPath = path.resolve(TOKEN_FILE_PATHS[0]);
TOKEN = fs.readFileSync(tokenPath).toString('utf-8').trim();
} else if (fs.existsSync(TOKEN_FILE_PATHS[1])) {
tokenPath = TOKEN_FILE_PATHS[1];
TOKEN = fs.readFileSync(tokenPath).toString('utf-8').trim();
}
if (fs.existsSync(SECRET_FILE_PATHS[0])) {
secretPath = path.resolve(SECRET_FILE_PATHS[0]);
SECRET = fs.readFileSync(secretPath).toString('utf-8').trim();
} else if (fs.existsSync(SECRET_FILE_PATHS[1])) {
secretPath = SECRET_FILE_PATHS[1];
SECRET = fs.readFileSync(secretPath).toString('utf-8').trim();
}
// Check if token and secret are provided as environment variables
let TOKEN = process.env.TOKEN;
let SECRET = process.env.SECRET;
if (!TOKEN) {
try {
TOKEN = fs.readFileSync(tokenPath).toString('utf-8').trim();
} catch (error) {
console.error('Error reading token file:', error);
}
}
if (!SECRET) {
try {
SECRET = fs.readFileSync(secretPath).toString('utf-8').trim();
} catch (error) {
console.error('Error reading secret file:', error);
}
}
// Export environment variables
module.exports = {
...ENV_VARIABLES,
TOKEN,
SECRET,
};
This module exports various constants and variables used in a Discord bot application.
DEFAULT_GUILD
: The default Discord guild ID (defaults to '319817668117135362' if not set)DEFAULT_CHANNEL
: The default Discord channel ID (defaults to '1328142980967563337' if not set)DEFAULT_APPLICATION
: The default Discord application ID (defaults to '1328141471840206899' if not set)DEFAULT_API
: The default Discord API URL (defaults to 'https://discord.com/api/v10/' if not set)MESSAGE_TIME
: The time in milliseconds to respond (defaults to 2 minutes if not set)DEFAULT_RATE
: The default rate limit (50 requests per second)PROFILE_PATH
: The path to the user's profile directoryDEFAULT_USERNAME
: The default username ('Orbb')MESSAGES_START
: The start time of messages (1420070400000)tokenPath
: The path to the Discord bot token filesecretPath
: The path to the Discord secret fileTOKEN
: The Discord bot token (read from TOKENPATH
or tokenPath
)SECRET
: The Discord secret (read from SECRETPATH
or secretPath
)The module exports all the above constants and variables.