Skip to content
This repository has been archived by the owner on Sep 1, 2022. It is now read-only.
/ bentoTS Public archive

Discord Bot with server moderation tools and various entertaining commands. TypeScript rewrite of bentoJS.

License

Notifications You must be signed in to change notification settings

thebentobot/bentoTS

Repository files navigation

Docker Image CI Discord Bots

Bento 🍱

A Discord bot with server moderation tools and various entertaining commands.

Bento 🍱 is a TypeScript rewrite of Bento. Bento 🍱 uses the Discord.js node.js module, that interacts with the Discord API, and stores data in a PostgreSQL database.

Want to give feedback or got any questions? Join the support server here.

List of notable features

  • Gfycat API features such as create, check user feeds etc.
  • LastFM API features
  • Make scheduled and repeating announcements in a specific channel
  • Advanced moderation tools that include a comprehensive case-based logging system.
  • Custom user profiles
  • Create Streamables
  • Fun features such as rock paper scissors, 8ball, roll a number or pick an option
  • Database that saves server info such as feature settings and welcome message, and user data such as XP/Levels and command info
  • Unlimited custom commands (for the server only) that saves name for recall and content
  • Horoscope
  • Weather and time at a specific city, provided by OpenWeather
  • Chat XP/levels and "bento" leaderboard
  • Custom welcome and goodbye messages, customisable by server
  • Urban Dictionary search

Getting Started

Dependencies

Installing the server side of Bento 🍱

  • git clone https://github.com/thebentobot/bentoTS.git or download ZIP.
  • Create a dotenv file with the environment variables as listed here
  • npm install assuming you have installed node.js

Installing the database side of Bento 🍱

  • Either locally run/install PostgreSQL or get a PostgreSQL database elsewhere. Other SQL databases may be possible considering Bento uses Sequelize, but is not tested and isn't recommended because the code may use PostgreSQL specific features, and it requires additional changes to the code.
  • The creation of the database tables. An SQL DDL schema file can be found here

Executing Bento 🍱 with Docker locally

  • docker build -t [NAME] .
  • docker run [NAME or ghcr.io/thebentobot/bentots:master]

Executing Bento 🍱 with Docker Compose (to support rank/profile, gfycat, and lastfm collages)

version: '3.8'

services:
  bot:
    image: ghcr.io/thebentobot/bentots:master
    container_name: bento
    restart: unless-stopped
    env_file:
      - .env
    ports:
      - '6969:6969'
    networks:
      - bento_net
      - web
  sushii-image-server:
    image: ghcr.io/sushiibot/sushii-image-server:latest
    container_name: sushii-image-server
    restart: unless-stopped
    init: true
    cap_add:
        - SYS_ADMIN
    expose:
        - "3000"
    networks:
        - bento_net

networks:
  web:
    internal: false
  bento_net:
    external: false

Executing Bento 🍱 without Docker

  • npm start

Development

The bot is mainly developed by Christian.

Pull requests are very welcome if the features/changes makes sense and are up to par in quality.

License

This project is licensed under the AGPL-3.0 License

The avatar illustration is done by Freepik.