radixsh / qubitz

Qubitz is an uwubot and a music bot that can upload custom emojis and help you find people by their roles.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bitz? Quartz?

Qubitz is an uwubot and a music bot with custom emoji uploading capability, the ability to find people by their roles, and connectivity to The Cat API just for fun.

I began developing an uwubot named Bitz for Discord in June 2020, in discord.js because the first guides I found were in JavaScript. This turned out to be very misguided, because (as I realized when our AP Computer Science Principles teacher taught us Python and the basics of discord.py later that year) discord.py is far superior. Over the summer of 2020, I developed and hosted both bots on my Chromebook. Sometime or other I also spun up another discord.py bot, Amicitia, to help students in a university Discord server find people with the same major (majors being roles).

I've wanted to translate Bitz's uwubot functionalities to Python for a while, and I finally did, almost two years later. Bitz, the original uwubot I created, has been translated to Python and conflated with Quartz's capabilities to form Qubitz.

Development of Qubitz is stagnant. I only update when I don't have homework and want to fix a breaking change.

Functionalities

Qubitz's functionalities include:

Music

  • .p[lay] <search term>: Streams the first YouTube result in vc.
  • .np: Displays the current song.
  • .q[ueue]: Displays the song queue.
  • .rm <some song>: Removes the specified song from the queue.
  • .skip: Skips the currently playing song.
  • .stop: Disconnects Qubitz from vc.

Utilities

  • .l[ist]: Lists each role and everyone in them.
  • .f[ind] <some role>: Prints a list of everyone with the specified role.
  • .p[ing]: Pokes Qubitz to see if they're awake.
  • .up[time]: Displays how long Qubitz has been awake.
  • .i[nfo] ("all"): Displays guild and channel information, and if "all" is given as an argument, then displays guild member information as well.

Miscellaneous

  • .create <emoji_name>: Sets attached image as a custom server emoji with the given name.
  • .uwu[ify] <something>: Uwuifies your message, deleting the command message.
  • .echo <something>: Echoes back your message, deleting the command message.
  • .c[at]: Shows a cat from The Cat API.

Technologies

Usage

To set Qubitz up locally, you'll need python3 and the packages for discord, requests, and aiohttp.

You'll also need an API token, which you get by creating an application in your Discord developer portal. Click the subheading "bot" in the menubar on the left and add a bot, and a secret token will have been generated under the bot's username.

Create a file called env.py with this as its contents:

TOKEN = "your-token-here-between-quotes"

In the developer portal again, under Bot, enable the server members and message content intents. Under OAuth2 > URL Generator, generate an invite link by selecting the "bot" scope and adding the following permissions:

  • Read Messages / View Channels
  • Send Mesages
  • Manage Messages
  • Embed Links
  • Attach Files
  • Use External Emojis
  • Add Reactions

Then you can run Qubitz with python3 index.py (or nodemon --exec python3 index.py).

Acknowledgements

Bitz was named by my close friend Tumega500#1234.

License

Released under GNU GPL v3.

About

Qubitz is an uwubot and a music bot that can upload custom emojis and help you find people by their roles.


Languages

Language:Python 100.0%