Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xbony2/esaebsad3

A Discord bot written in Ruby for manipulation of the FTB Wiki.
https://github.com/xbony2/esaebsad3

bot discordrb ftb-wiki mediawiki mediawiki-bot ruby wiki

Last synced: 22 days ago
JSON representation

A Discord bot written in Ruby for manipulation of the FTB Wiki.

Awesome Lists containing this project

README

        

# ESAEBSAD3
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)

## E-say-bee-what?
ESAEBSAD3 pronounced /i.ˈseɪ.bi.sæd.θɹiː/ (e-say-b-sad-three). It stands for **E**xperimental **S**elf **A**ware **E**lectronic **B**ased **S**pace **A**nalyzing **D**roid [in the] **3**rd-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.

## Setup
A [Discord application token](https://discordapp.com/developers/applications) should already be generated, and a [bot login and password](https://ftb.fandom.com/wiki/Special:BotPasswords) 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](https://ftb.fandom.com/wiki/Special:BotPasswords).
* The `WIKI_TOKEN` variable is the wiki bot's token, as generated by [Special:BotPasswords](https://ftb.fandom.com/wiki/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](https://discord.com/developers/applications).
* 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](https://bundler.io) should be installed as well; running `bundle` will install all other dependencies.

## Running
1. Setup the appropriate environmental variables listed in `example.env`. Locally, I do this by running `export $(cat .env | xargs)`, or through Heroku, I have [config vars](https://devcenter.heroku.com/articles/config-vars) set up.
2. Run `ruby run.rb` to start the bot.

## Usage
Just run the command `!help` and it will list all of the commands and how to use them. ezpz.

## Dependencies
Here are the dependencies of ESAEBSAD3:
* [Ruby](https://www.ruby-lang.org/en/)
* [Bundler](https://bundler.io)
* [discordrb](https://github.com/shardlab/discordrb)
* [MediaWiki::Butt](https://github.com/FTB-Gamepedia/MediaWiki-Butt-Ruby)
* [pg](https://github.com/ged/ruby-pg)
* [require_all](https://github.com/jarmo/require_all)
* [rubocop](https://github.com/rubocop/rubocop) (for development only)
* [rubocop-performance](https://github.com/rubocop/rubocop-performance) (for development only)
* [PostgreSQL](https://www.postgresql.org)
* [Heroku](https://heroku.com) (for deployment only)
* [pre-commit](https://pre-commit.com) (for development only)

The specific versions are listed in the `Gemfile`.

## Earlier bots
* [ESAEBSAD (the original)](https://github.com/xbony2/Experimental-Self-Aware-Electronic-Based-Space-Analyzing-Droid)
* [ESAEBSAD2](https://github.com/xbony2/ESAEBSAD2)