/majobot

❤️ Majo.exe - Discord Bot for Fun, Memes, Images, Giveaway, Economy, Anime, NSFW & More

Primary LanguageJavaScriptMIT LicenseMIT

Majo.exe

Majo.exe have almost everything - Fun, Memes, Images, Giveaway, Economy, Anime and NSFW. This bot serve over 150 commands!

Discord

Node.js Jekyll GitHub License Version

Invite

Go to this link and add the bot (this requires MANAGE_GUILD permission) to your server.

Features

  • ⚙️ Fully customizable
  • 🌆 Build-in Dashboard
  • 📝 Easy Config
  • 💯 150+ Commands
  • 📚 Easy Hosting

Hosting

We host this bot. Majo.exe will be online 24/7. Invite Majo here! However, if you want to host Majo yourself - take a look here

Heroku Hosting

Deploy the app to Heroku

Deploy to heroku

Heroku hosting tutorial

Self-Hosting

  1. Clone this repository git clone https://github.com/IgorKowalczyk/majobot.git
  2. Run npm install to get all dependencies,
  3. Grab a Discord Bot token and client secret on Discord's developer portal Tutorial
  4. Fill config.json with your values (See that some values point to the .env file, see it below)
  5. Rename .env.example (Located in main dir) to .env. Remember - the file is super secret, better to not share it.
  6. In .env file set this values:
    • Required:
    • TOKEN - Bot token from Discord Developer portal [no. 3]
    • PREFIX - Bot prefix, used to run commands eg. your-prefix help
    • ID - Your Discord Bot ID
    • AMEAPI - your Ametyhyste API token [Tutorial]
    • BRAINID - Your Brainshop AI Brain ID [Tutorial]
    • BRAINKEY - Your Brainshop AI Brain Key [Tutorial]
    • GENIUS - Your Genius API Key [Tutorial]
    • MYSQL_DATABASE - Your MYSQL database name
    • MYSQL_HOST - Your MYSQL Host name
    • MYSQL_PASSWORD - Your MYSQL user password
    • MYSQL_USER - Your MYSQL User name who can acces to the database
    • COOKIES - Your Youtube Cookies [Tutorial]
    • Not required (You can leave them blank):
    • DOMAIN - your website domain, eg https://example.com
    • PORT - your website port, eg 8080. [Note: If you are using heroku, don't add this value. Heroku binds port automatically!]
    • DASHBOARD=[true/false] - if true the bot will be hosted with web dasboard, if false the bot will be hosted without web dashboard.
    • SESSION_SECRET - Session secret key, random sequence of words, letterss or numbers
    • SECRET - Client secret from Discord Developers portal [no. 3]
    • ANALYTICS - Google Trakcing ID, for Website analytics [Tutorial]
    • CONTACT_WEBHOOK_ID - Your contact form webhook ID
    • CONTACT_WEBHOOK_TOKEN - Your contact form webhook token
    • STATUS_WEBHOOK_ID - Your status webhook ID
    • STATUS_WEBHOOK_TOKEN - Your status webhook token
  7. Run npm run start

Note: See the example .env file below! Note: Discord webhook link syntax: https://discord.com/api/webhooks/HERE-IS-WEBHOOK-ID/HERE-IS-WEBHOOK-TOKEN)

Dashboard hosting

  1. To test site, in .env file set the DASHBOARD config to true and assign the PORT eg 8080. (See example .env file)
  2. Fill dashboard config in (config.js and .env)
  3. Add the redirect uri here: https://discord.com/developers/applications/YOUR-BOT-ID/oauth2
    •  https://your-domain.com
       https://your-domain.com/callback
       https://your-domain.com/dashboard
       https://your-domain.com/login
      
  4. Go to your dashboard in browser (eg. to localhost:8000)

Note: See the example .env file below!

.env config table

.env varriable Description Required
TOKEN The bot token (Remember! The TOKEN is super secret) ✔️
PREFIX The default bot prefix (eg. !majo) ✔️
ID Your Discord Bot ID ✔️
AMEAPI Your Amethyste api token ✔️
BRAINID Your Brainshop AI Brain ID ✔️
MYSQL_DATABASE Your MYSQL database name ✔️
MYSQL_HOST Your MYSQL Host ✔️
MYSQL_USER Your MYSQL user ✔️
MYSQL_PASSWORD Your Brainshop AI Brain Key ✔️
GENIUS Your genius API Key ✔️
DOMAIN Your website domain (eg https://example.com)* ❌/✔️
PORT Your webiste port, (eg. 8008 )* ❌/✔️
DASHBOARD The Web-Dashboard config value. (eg. true/false, default value: false)*
SESSION_SECRET Random sequence of words, letterss or numbers* ❌/✔️
SECRET The bot client secret (Remember! The SECRET value is Super-Secret)* ❌/✔️
ANALYTICS Google analytics tracking ID, used in Web-Dashboard*
COOKIES Your youtube cookies ✔️
CONTACT_WEBHOOK_ID Your contact form webhook ID
CONTACT_WEBHOOK_TOKEN Your contact form webhook token
STATUS_WEBHOOK_ID Your status webhook ID
STATUS_WEBHOOK_TOKEN Your status webhook token
  • * = Required to run the web dashboard!

Example .env file

Example .env file

.env.example

# Environment Config

# Required
TOKEN=YOUR_TOKEN_GOES_HERE
PREFIX=!majo
ID=YOUR_BOT_ID
AMEAPI=YOUR_AMETHYSTE_API_TOKEN
MYSQL_DATABASE=YOUR_MYSQL_DATABASE_NAME
MYSQL_HOST=YOUR_MYSQL_HOST
MYSQL_PASSWORD=YOUR_MYSQL_USER_PASSWORD
MYSQL_USER=YOUR_MYSQL_DATABASE_USER
BRAINID=YOUR_BRAINSHOP_AI_BRAIN_ID
BRAINKEY=YOUR_BRAINSHOP_AI_BRAIN_KEY
GENIUS=YOUR_GENIUS_API_KEY
CONTACT_WEBHOOK_TOKEN=YOUR_CONTACT_FORM_WEBHOOK_TOKEN
CONTACT_WEBHOOK_ID=YOUR_CONTACT_FORM_WEBHOOK_ID
STATUS_WEBHOOK_TOKEN=YOUR_STATUS_WEBHOOK_TOKEN
STATUS_WEBHOOK_ID=YOUR_STATUS_WEBHOOK_ID

# Not required
DASHBOARD=[true/false]
DOMAIN=YOUR_WEBSITE_DOMAIN
PORT=YOUR_WEBSITE_PORT
SESSION_SECRET=YOUR_SESSION_SECRET_(RANDOM_WORDS)
SECRET=YOUR_BOT_CLIENT_SECRET
ANALYTICS=YOUR_GOOGLE_TRACKING_ID
COOKIES=YOUR_YOUTUBE_COOKIES

# Note: !majo is the default prefix, you can change it later.

Tokens tutorials

Discord Token

Soon!

Amethyste Api

Soon!

AI Keys

Soon!

Youtube

Soon!

Genius

Soon!

Analytics ID

Soon!

Heroku

Soon!

Contributors

Special thanks to

Freedb.tech

For free MYSQL Database ❤️

Issues

If you have any issues with the page please create new issue here

Pull Requests

When submitting a pull request:

  • Clone the repo.
  • Create a branch off of master and give it a meaningful name (e.g. my-awesome-new-feature).
  • Open a pull request on GitHub and describe the feature or fix.

License

This project is licensed under the MIT. See the LICENSE file for details