discord | discord gateway | discord api | Search

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.

Run example

npm run import -- "discord bot configuration"

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
}

What the code could have been:

// 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,
};

Module Overview

This module exports various constants and variables used in a Discord bot application.

Environment Variables

Local Filepaths

Token and Secret Retrieval

Module Exports

The module exports all the above constants and variables.