Skip to content
This repository has been archived by the owner on Jan 27, 2022. It is now read-only.

elibroftw/discord-bot

Repository files navigation

Multi Purpose Discord Bot

My custom-made, self-hosted Discord bot, MP bot. Rather than having a sole purpose, this bot is aimed at doing all the tasks I want it to do. I made it for a singular server so it may not work for multiple servers (regarding the music playing features).

Features

For more info, view bot.py

Admin

  • Clear chat (!clear int)
    • Can clear up to 100 messages in chat (at the moment)
  • Ban (!ban nick/username)
  • Get creation date of user (!created_at <user=YOU>)
  • Set/get self-assignable roles (!ssr [role1 role2 ...])
  • Remove/get self-assignable roles (!rsr [role1 role2 ...])

User

  • Self-set (or get) roles (!role [rolename])

Anonymous Messaging Service

  • Send a dm to a user (!dm <user/nick> ) // send it to the bot
  • Reply to a dm (!re <thread_id> )
  • Enable anonymous messages (!enable)
  • Disable anonymous messages (!disable)
  • Toggle status (!anontoggle, !anon) // Future replacement
  • See if you are opted in or out of the messages (!anonstatus)

Music

  • Summon (!summon, !play <query/youtube_url>)
  • Play or Add to queue (!play, !p)
  • Play next (adds the track to play right after, will rework this later !pn, !play_next)
  • Pause/Resume (!pause, !p, !resume)
  • Skip (!skip, !next, !n)
  • Go Back (!back, !b, !previous, !prev)
  • Fast forward (!ff <seconds=5>)
  • Rewind (!rw <seconds=5>)
  • Skip to (!st )
  • Stop (!stop, !s, !end)
  • Autoplay (adds to the music queue when the queue is empty or has only the playing track; !auto_play, !ap)
  • Repeat Options (!repeat, !repeat_all)
  • View Now Playing (!np)
  • View Upcoming tracks (!q)
  • View Recently Played (!dq)
  • Remove track (!rm )
  • Move track (!move )
  • Shuffle (!shuffle)
  • Clear queue (!cq)
  • Play from Playlist (!pp <playlist_name/url> [--s]) // use --s for shuffle
  • Save queue to playlist (!sq <playlist_name>)
  • View playlist (!vp <playlist_name/url>) // use --2/3 for different scopes
  • Search playlists (!sp [--page 1] [--query query]) // alphabetically sorted
  • Load playlist (!lp <playlist_name/url>) // adds tracks to current queue
  • Delete playlist (!dp <playlist_name>)
  • Set volume (!volume, !v) // prints volume if no int given
    • !v 100 # this will set volume to 100/100
    • !v +20 # increase volume by 20
    • !v -20 # decrease volume by 20
    • !v + # increase volume by 10
    • !v - # decrease volume by 10
  • Leave Voice chat (!leave, !dc)

Investing

  • Get the prices of stock(s) (!stock )
  • Get top movers (!movers <market='ALL'> <of='day'> <show=5>)
  • Get top winners (!gainers <market='ALL'> <of='day'> <show=5>)
  • Get top losers (!losers <market='ALL'> <of='day'> <show=5>)
  • Get random stock(s) (!random-stock <n=1>)
  • Search for a company's ticker (!fs query)
  • Add stocks to your watchlist (!watch )
  • Remove stocks from your watchlist (!unwatch )
  • View stocks in your watchlist (!wl <show_info=False>)

Games

  • Get a list of games (!games)
  • Tic-Tac-Toe (Difficulty is impossible)
    • Use !ttt to start a match
  • Shift (!shift)
    • A game my friend and I made (sends a link to the chat)
  • Youtube Search
    • Search for a video (!yt, !youtube)
    • See "Listen to Music" for playing tracks from YouTube
  • Twitter (DISABLED; Rework pending)
    • Get the latest tweet from a user (!twitter )
    • Search for a twitter user (!tu_search )

Future

  • Set and get invite codes (currently only gets the .env code)
  • Report user for bot abuse

Installation

Note that this bot has only been tested on Windows

  1. Clone the repository
  2. Have MongoDB Community 4.2.X installed
  3. Have FFmpeg accessible in PATH
  4. Do pip install -r requirements.txt in the terminal of the current directory
  5. If you want to run on Windows boot, import and edit "Discord Bot.xml" in Task Scheduler OR
  6. Click here to start from scratch

Join my server