Giter Site home page Giter Site logo

discordbots-archive / discord-uberbot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from crow08/discord-uberbot

0.0 1.0 0.0 510 KB

The UberBot is fully charged with music bot goodness! A feature rich bot for playing music and only that.

License: MIT License

JavaScript 100.00%

discord-uberbot's Introduction

Discord-UberBot

version dependencies Known Vulnerabilities license
The UberBot is fully charged with music bot goodness! A feature rich bot for playing music and only that.


Remarkable Features:

  • Can play songs from many sources:

    • SoundCloud links (tracks / playlists) or search queries.
    • YouTube links (tracks / playlists) or search queries.
    • From direct links to music files.
    • Spotify can only be used for resolving links (tracks / playlists) or to query search for songs.
      (no music streaming from Spotify atm)
  • Persistent playlists:

    • Create as many playlist as you like.
    • Automatic prevention of duplicate songs in a playlists.
    • Set one playlist as a fallback auto playlist, to never stop the music!
  • Rating system:

    • All songs can be rated once a day by each user.
    • A downvoted song gets skipped immediately.
    • If a songs rating falls below -2 it gets removed entirely.
    • If a song gets upvoted it will be added to the defined auto playlist.
  • Import songs

    • Import songs by uploading txt files with links or queries oer line.
    • Import songs via csv file to additional define the exact title and artist of the song.

Announcer:

  • Brings some sweet robotic voice to your server. Uses WaveNets Text-to-Speech
  • Disabled in default bot, because announcing sth will pause the current song and skip it afterwards, can be activated though.
  • Best to be run standalone in another instance as extra bot (Paramter to be added)

Features

  • Announces joining users with some witty voicelines
  • Comments on users that dare to leave
  • <prefix>say - Says everything you want it to say
  • <prefix>randomfact - tells you a random fact
  • <prefix>yomama - cracks a random Yo Mama joke
  • <prefix>pickupline - provides you a random pickupline

Full Command List

+----------------------------Commands--------------------------+
| Alias:  add, a                                               |
| Usage:  !add <url | query>                                   |
| About:  add a song to the current queue by url or query.     |
+--------------------------------------------------------------+
| Alias:  pladd                                                |
| Usage:  !pladd <pl name> <url | query>                       |
| About:  add a song to the specified playlist by url or       |
|         query.                                               |
+--------------------------------------------------------------+
| Alias:  autopl, apl, auto                                    |
| Usage:  !autopl [<playlist name>|"unset"]                    |
| About:  get or set a playlist name to be the auto playlist.  |
|         (playlist name to set, no parameter to get and       |
|         "unset" to unset).                                   |
+--------------------------------------------------------------+
| Alias:  addsongtopl, as2pl, as2p                             |
| Usage:  !addsongtopl <playlist>                              |
| About:  adds current song to given playlist                  |
+--------------------------------------------------------------+
| Alias:  addqueuetopl, aq2pl, aq2p                            |
| Usage:  !addqueuetopl <playlist>                             |
| About:  adds queue to given playlist                         |
+--------------------------------------------------------------+
| Alias:  clear                                                |
| Usage:  !clear                                               |
| About:  delete all songs from current queue.                 |
+--------------------------------------------------------------+
| Alias:  pldelete                                             |
| Usage:  !pldelete <pl name>                                  |
| About:  deletes a playlist permanently.                      |
+--------------------------------------------------------------+
| Alias:  join                                                 |
| Usage:  !join                                                |
| About:  ask bot nicely to join your channel                  |
+--------------------------------------------------------------+
| Alias:  help, ?, medic                                       |
| Usage:  !help                                                |
| About:  list all implemented commands                        |
+--------------------------------------------------------------+
| Alias:  leave                                                |
| Usage:  !leave                                               |
| About:  leave the current voice channel.                     |
+--------------------------------------------------------------+
| Alias:  pllist, l                                            |
| Usage:  !pllist                                              |
| About:  lists available playlists                            |
+--------------------------------------------------------------+
| Alias:  listsongs, ls                                        |
| Usage:  !listsongs <playlist>                                |
| About:  lists all songs of the specified playlist            |
+--------------------------------------------------------------+
| Alias:  plload                                               |
| Usage:  !plload <pl name>                                    |
| About:  load a playlist replacing the current queue.         |
+--------------------------------------------------------------+
| Alias:  loop                                                 |
| Usage:  !loop [1]                                            |
| About:  toggle loop mode of the queue.                       |
|         add 1 to loop only the current song.                 |
+--------------------------------------------------------------+
| Alias:  plmerge, merge                                       |
| Usage:  !merge <sourcepl> <targetpl>                         |
| About:  copies one playlist into another!                    |
+--------------------------------------------------------------+
| Alias:  nowplaying, np                                       |
| Usage:  !nowplaying                                          |
| About:  returns first song in history (current song)         |
+--------------------------------------------------------------+
| Alias:  pause                                                |
| Usage:  !pause                                               |
| About:  pause current playback.                              |
+--------------------------------------------------------------+
| Alias:  play, p                                              |
| Usage:  !play <url | query>                                  |
| About:  play a song by url or query.                         |
+--------------------------------------------------------------+
| Alias:  playnext, pn                                         |
| Usage:  !playnext <queue position>                           |
| About:  moves song at given position to top                  |
+--------------------------------------------------------------+
| Alias:  preferdsrc, searchsrc, src                           |
| Usage:  !preferdsrc [yt|sc|sp]                               |
| About:  set a source to be the default source for all        |
|         searches.                                            |
|         (valid sources to set are:                           |
|         "yt":youtube,"sc":soundcloud,"sp":spotify.           |
|         no parameter to get current source)                  |
+--------------------------------------------------------------+
| Alias:  remove                                               |
| Usage:  !remove <queue number>                               |
| About:  removes a song from the current queue.               |
+--------------------------------------------------------------+
| Alias:  plremove, plrm                                       |
| Usage:  !plremove <pl name> <song name>                      |
| About:  remove given song from given playlist                |
+--------------------------------------------------------------+
| Alias:  plrename, rename                                     |
| Usage:  !rename <playlist> <new name>                        |
| About:  renames given playlist                               |
+--------------------------------------------------------------+
| Alias:  rename, renamesong, r                                |
| Usage:  !rename <"t"|"a"> <playlist name> <song number>      |
|         <new name>                                           |
| About:  rename title or artist of song.                      |
|         (first parameter "t" for title and "a" for artist.)  |
+--------------------------------------------------------------+
| Alias:  search                                               |
| Usage:  !search <query>                                      |
|         => "cancel" |                                        |
|         ["play"|"add"] <song number> |                       |
|          "pladd" <pl name> <song number>                     |
| About:  search for a song and choose from multiple results.  |
+--------------------------------------------------------------+
| Alias:  plsearch, pls                                        |
| Usage:  !plsearch <pl name> <song name>                      |
| About:  search given song in given playlist                  |
+--------------------------------------------------------------+
| Alias:  seek                                                 |
| Usage:  !seek <number>                                       |
| About:  seek playback position.                              |
+--------------------------------------------------------------+
| Alias:  showhistory, h, history                              |
| Usage:  !showhistory                                         |
| About:  displays all songs from current history.             |
+--------------------------------------------------------------+
| Alias:  showqueue, q, queue                                  |
| Usage:  !showqueue                                           |
| About:  displays all songs from current queue.               |
+--------------------------------------------------------------+
| Alias:  shuffle                                              |
| Usage:  !shuffle                                             |
| About:  shuffle the current queue.                           |
+--------------------------------------------------------------+
| Alias:  skip, s                                              |
| Usage:  !skip                                                |
| About:  skip current song.                                   |
+--------------------------------------------------------------+
| Alias:  start                                                |
| Usage:  !start <pl name>                                     |
| About:  loads a playlist shuffles it and starts playing.     |
+--------------------------------------------------------------+
| Alias:  stop                                                 |
| Usage:  !stop                                                |
| About:  stop current playback.                               |
+--------------------------------------------------------------+
| Alias:  upload                                               |
| Usage:  !upload [<playlist name>]                            |
|         => attach file to the message                        |
|         txt files with a query each row or csv files with 3  |
|         columns per row <query>;<artist>;<title>             |
| About:  add a songs from a file to the queue or to a         |
|         playlist.                                            |
+--------------------------------------------------------------+
| Alias:  volume, vol, v                                       |
| Usage:  !volume <number>                                     |
| About:  sets volume, or returns volume if no parameter given |
+--------------------------------------------------------------+

Installation:

  1. Install node (with npm >= 10) and mongodb on the host computer.
  2. Run npm install in the project directory.
    (On Windows you may need to install windows build tools first: npm install -g windows-build-tools)
  3. Copy the settings.example.json and rename it to settings.json
  4. Open settings.json and replace the dummy values with your actual credentials:
    discord bot token, YouTube API key, SoundCloud client id and Spotify client id and secret.
  5. Run npm run start in the project directory.
  6. Enjoy your bot!

Hosting

Works great with heroku (free).
The settings and credentials can be set via heroku environment variables.
We recommend to host the DB on an external server like MongoDB Cloud (free).
Add the mongoDB url, username and password to your setting.json

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.