A Discord bot used by the Official FTB Wiki (mostly me) to accomplish various automated tasks. Currently a work-in-progress!
(TODO: update README with possible Postgres requirements)
ESAEBSAD3 pronounced /i.ˈseɪ.bi.sæd.θɹiː/ (e-say-b-sad-three). It stands for Experimental Self Aware Electronic Based Space Analyzing Droid [in the] 3rd-Dimension. Despite being in the 3rd dimension, it can't analyze space very well, so instead it just does random tasks that I want it to. Mostly this is just find-replace operations and things like that.
A Discord application token should already be generated, and a bot login and password should be generated (assuming you are using Fandom; otherwise, it's probably just the username and password for the wikiLogin and wikiToken).
ESAEBSAD3 handles all tokens and other login/setup information through environmental variables. An .env
file can be loaded with all of the variables in example.env
. Note the following:
- The
WIKI_LOGIN
variable is the wiki bot's login, which is not the same as the bot's username on Fandom. This is viewable on Special:BotPasswords. - The
WIKI_TOKEN
variable is the wiki bot's token, as generated by Special:BotPasswords. Note when generated, it cannot be viewed again, so make sure to write it down before it is lost. If forgotten, a new bot password can be created, but then you have to update everything. - The
DISCORD_TOKEN
variable is the Discord bot account's token, which can be found on Discord's developer application dashboard. - The
DISCORD_CLIENT
property is the Discord bot's client ID, which can also be found on Discord's developer application dashboard.
This is a Ruby application, so Ruby should be installed. Bundler should be installed as well; running bundle
will install all other dependencies.
- Setup the appropriate environmental variables listed in
example.env
. Locally, I do this by runningexport $(cat .env | xargs)
, or through Heroku, I have config vars set up. - Run
ruby run.rb
to start the bot.
Just run the command !help
and it will list all of the commands and how to use them. ezpz.
Here are the dependencies of ESAEBSAD3:
- Ruby
- Bundler
- discordrb
- MediaWiki::Butt
- pg
- require_all
- rubocop (for development only)
- rubocop-performance (for development only)
- PostgreSQL
- Heroku (for deployment only)
- pre-commit (for development only)
The specific versions are listed in the Gemfile
.