README .env help

This commit is contained in:
Dragon Fire
2024-04-05 00:31:01 -04:00
parent ce3b068d4f
commit 850b148a75
4 changed files with 46 additions and 8 deletions
+42 -1
View File
@@ -6,11 +6,52 @@ Just read `LICENSE.md`. Give credit if you use any part of this monster, thanks.
> Only Linux-based systems can run Xiao. She will (probably) not run on Windows or Mac without significant changes.
### Filling Out `.env`
#### Discord-related info
* `XIAO_TOKEN` is the token of your bot. You can get this at the [Discord Developer Portal](https://discord.com/developers/applications).
* `OWNERS` is the Discord user IDs of users you want to have access to sensitive commands. Be careful putting anyone but yourself here.
* `LOVER_USER_ID` is the Discord user ID of your significant other. This rigs certain commands, like `ship`. Optional for loners.
* `XIAO_PREFIX` is the prefix the bot should have.
* `INVITE` is an invite link for the bot's support server. Optional.
* `REPORT_CHANNEL_ID` is a channel ID for the bot to send reports to. Optional, by default it'll send the owners a DM.
* `JOIN_LEAVE_CHANNEL_ID` is a channel ID for the bot to send server join/leave information to. Optional.
* `COMMAND_CHANNEL_ID` is a channel ID for the bot to send command usage data to. Optional.
#### Redis info
* `REDIS_HOST` is the hostname of your Redis server. If unsure, it's probably `localhost`.
* `REDIS_PASS` is the password to your Redis server.
#### Emojis IDs
* `SUCCESS_EMOJI_ID` is an emoji ID for when things succeed. Defaults to "✅".
* `FAILURE_EMOJI_ID` is an emoji ID for when things fail. Defaults to "❌".
* `LOADING_EMOJI_ID` is an emoji ID for when things are loading. Defaults to "💬".
* `GOLD_FISH_EMOJI_ID` and `GOLD_FISH_EMOJI_NAME` are for **neko-atsume-password**. Defaults to "Gold Fish".
* `SILVER_FISH_EMOJI_ID` and `SILVER_FISH_EMOJI_NAME` are for **neko-atsume-password**. Defaults to "Silver Fish".
* `MOCKING_EMOJI_ID` and `MOCKING_EMOJI_NAME` are for **mocking**. Defaults to nothing, it just won't be there.
* `PORTAL_EMOJI_ID` and `PORTAL_EMOJI_NAME` are for **portal-send**. Defaults to "PORTAL".
* `MEGA_EVOLVE_EMOJI_ID` and `MEGA_EVOLVE_EMOJI_NAME` are for **pokedex**. Defaults to "MEGA".
* `NAME_RATER_EMOJI_ID` is for **name-rater**. Defaults to nothing, it just won't be there.
#### API Keys, IDs, and Secrets
* `ANILIST_USERNAME` is your username for [Anilist](https://anilist.co/home). Optional, defaults to "dragonfire535".
* `BITLY_KEY` is your API key for Bit.ly. You can get one [here](https://dev.bitly.com/docs/getting-started/authentication/).
* `CLEVERBOT_KEY` is your API key for Cleverbot. You can get one [here](https://www.cleverbot.com/api/).
* `GITHUB_ACCESS_TOKEN` is your access token for GitHub. [Follow these steps](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic) to make one.
* `GOOGLE_KEY` is your API key for Google, used for the YouTube Data API. You can get one [here](https://console.cloud.google.com/apis/dashboard). You must also [activate the YouTube Data API](https://console.cloud.google.com/marketplace/product/google/youtube.googleapis.com?q=search).
* `GOV_KEY` is your API key for NASA. You get get one [here](https://api.nasa.gov/).
* `SAUCENAO_KEY` is your API key for SauceNAO. Register, login, and click [here](https://saucenao.com/user.php?page=search-api) to get one.
* `SPOTIFY_KEY` and `SPOTIFY_SECRET` are your key and secret for the Spotify API. You can get one by [following these instructions](https://developer.spotify.com/documentation/web-api).
* `THECATAPI_KEY` is your API key for The Cat API. You can get one [here](https://thecatapi.com/).
* `THEDOGAPI_KEY` is your API key for The Dog API. You can get one [here](https://thedogapi.com/).
* `WEBSTER_KEY` is your API key for Merriam-Webster. You can get one [here](https://dictionaryapi.com/).
* `XIAO_GITHUB_REPO_NAME` and `XIAO_GITHUB_REPO_USERNAME` are the name and username of the GitHub repo where Xiao lives. These are optional, and default to "xiao" and "dragonfire535" respectively.
### Run
1. Install [Node.js](https://nodejs.org/en/) (you will need **at least v15.0.0**).
2. Run `apt install git` to install git.
3. Clone this repository with `git clone https://github.com/dragonfire535/xiao.git`.
4. Run `cd xiao` to move into the folder that you just created.
5. Create a file named `.env` and fill it out as shown in `.env.example`.
5. Create a file named `.env` and fill it out as shown in above and in `.env.example`.
6. Run `apt update` and `apt upgrade` to install the latest dependencies of your distro.
7. Run `apt install ffmpeg` to install ffmpeg.
8. [Follow these instructions to install the dependencies for `node-canvas`](https://github.com/Automattic/node-canvas/wiki/Installation%3A-Ubuntu-and-other-Debian-based-systems).
+1 -1
View File
@@ -137,6 +137,6 @@ module.exports = class PokedexCommand extends Command {
get megaEvolveEmoji() {
return MEGA_EVOLVE_EMOJI_ID && MEGA_EVOLVE_EMOJI_NAME
? `<:${MEGA_EVOLVE_EMOJI_NAME}:${MEGA_EVOLVE_EMOJI_ID}>`
: '';
: 'MEGA';
}
};
+3 -1
View File
@@ -2,7 +2,9 @@ const Command = require('../../framework/Command');
const { MessageEmbed } = require('discord.js');
const request = require('node-superfetch');
const { shorten, embedURL } = require('../../util/Util');
const { GITHUB_ACCESS_TOKEN, XIAO_GITHUB_REPO_USERNAME, XIAO_GITHUB_REPO_NAME } = process.env;
const { GITHUB_ACCESS_TOKEN } = process.env;
const XIAO_GITHUB_REPO_USERNAME = process.env.XIAO_GITHUB_REPO_USERNAME || 'dragonfire535';
const XIAO_GITHUB_REPO_NAME = process.env.XIAO_GITHUB_REPO_NAME || 'xiao';
module.exports = class ChangelogCommand extends Command {
constructor(client) {
-5
View File
@@ -3,7 +3,6 @@ const { exec } = require('child_process');
const { promisify } = require('util');
const execAsync = promisify(exec);
const { stripIndents } = require('common-tags');
const { XIAO_GITHUB_REPO_USERNAME, XIAO_GITHUB_REPO_NAME, GITHUB_ACCESS_TOKEN } = process.env;
module.exports = class ExecCommand extends Command {
constructor(client) {
@@ -25,10 +24,6 @@ module.exports = class ExecCommand extends Command {
}
async run(msg, { command }) {
if (command === 'git pull') {
const repo = `${XIAO_GITHUB_REPO_USERNAME}/${XIAO_GITHUB_REPO_NAME}`;
command = `git pull https://${GITHUB_ACCESS_TOKEN}@github.com/${repo}.git`;
}
const results = await this.exec(command);
return msg.reply(stripIndents`
_${results.err ? 'An error occurred:' : 'Successfully executed.'}_