[email protected] Discord server. | PythonRepo" /> [email protected] Discord server. | PythonRepo">

A bot for the [email protected] Discord server.

Overview

KittyBot - a sentient Discord bot!

Key Notes

  • An open-source, community-powered bot for the [email protected] Discord server.
  • This bot is made using Hikari & Lightbulb. These are two nice & simple Python libraries.
  • The docs for these two libraries are https://www.hikari-py.dev/hikari/ & https://hikari-lightbulb.readthedocs.io/en/latest/.
  • The following get-started guide is very nice if you want to quickly understand how these libraries work: https://neonjonn.readthedocs.io/en/latest/hikari-get-started/lightbulb.html
  • Pull requests are very much accepted (and encouraged!) if you want to add features to the bot & server :)
  • If you want to play around with it, you will need to use your own bot token. You could then invite your own bot (with the token you got) to your own personal server and play around with it there for testing (this is all in the above guide) :)
  • You can install the required dependencies (listed in requirements.txt) using the command pip install -r requirements.txt.
  • For readability purposes, if you want to add a function/command, please write it in a new python file placed in the extensions folder -- just like the userinfo and fortune commands are.
  • Important: If you want to develop/contribute/test/play-around, you will need to create a .env file and inside it add your bot token (as explained in the guide), and the 'default guild' IDs. It will need to be like: BOT_TOKEN = 123456 and DEFAULT_GUILDS = 123456,56789 (comma-seperated list). Specifying guild IDs in .env is not neccessary, and actually the act of specifying certain IDs to it (can be many guilds) means that slash commands will only be available in those guilds. The benefit of specifying default guilds is that the slash commands become available instantly in those servers, which is good for testing purposes. Note: 'guild' means Discord server.
  • So, to be clear, your .env file should be located in the top layer of the repository (same level as bot.py and requirements.txt) and could look like this:
BOT_TOKEN = 123456 # Your bot’s token from the Discord Developer Portal.
DEFAULT_GUILDS = 123456,56789 # The 'default guilds' -- these instantly load slash comamands. Can be empty.
FORTUNE_DIRECTORY=/usr/share/games/fortunes # Location of where fortunes is installed on your machine.
  • The +fortune command requires the fortunes package to be installed and pointed to by the FORTUNE_DIRECTORY variable in .env.
    • If you're on Linux you can install fortunes with sudo apt-get install -y fortune and in .env set FORTUNE_DIRECTORY=/usr/share/games/fortunes
    • If you're on macOS you can install fortunes with brew install fortune and in .env set FORTUNE_DIRECTORY=/usr/local/Cellar/fortune/9708/share/games/fortunes
    • I don't have Windows so if you develop on Windows you'll have to find how to download the fortunes package yourself. If you can't find it it's fine, it just means the +fortune command won't work during testing (but everything else should).
    • You may optionally white-list and black-list database files by setting FORTUNE_WHITELIST and/or FORTUNE_BLACKLIST to a space-separated list of database file names.
  • The bot is deployed on a cloud server (droplet on Digital Ocean) which runs Ubuntu 20.04.

Current Functionality

  • Automatically assigns the #NotALurker role to members who qualify for it (previously mods had to manually assign it).
  • Answers questions with a magic 8 ball response.
  • +ping command: Kitti returns to you a heartbeat latency message.
  • +numberadder command: Takes 2 numbers as input and returns the sum of them.
  • +fact command: Returns a random fact // common misconception.
  • +fortune command: Returns a random fortune. Beware!
  • +userinfo command: Returns an embed containing useful information of a specified member of the server. If no member is specified, it returns that of the user who issued the command.
  • All commands have a 10-second cooldown period (per user), and can also be called in slash command form.

Further Ideas // Ways to Contribute

  • Resolve outstanding issues noted in Issues.
  • Perhaps a unimelb-handbook webscraping related command? The repo already uses a webscraper (BeautifulSoup) you could use!
  • Greeting new people when they join the server in #general.
  • Getting Kitti to reply to someone if they thank Kitti (e.g.: Thanks @Kitti! ... You're welcome @____ 🐱).
  • Add programming/CS related facts to the fact 'database'. The database is currently a list of strings whereby each string is a fact/common-misconception scraped from a Wikipedia page.
  • Implement some sort of natural language processing thing (neural network?) that does something to do with text analysis (e.g. off a message that someone sends). This is some next level stuff, but hey, if there's an interest then why not? 😃
  • Implement a creative command you have of your own!
Owner
Ollie
Hey! I’m Ollie - a current graduate student at The University of Melbourne. I'm most interested in machine learning, web dev, and distributed systems :)
Ollie
Calendars for various securities exchanges.

IMPORTANT NOTE This package is currently unmaintained as the sponsor, quantopian, is going through corporate changes. As such there is a fork of this

Quantopian, Inc. 545 Jan 07, 2023
Send SMS text messages via email with as many accounts as you want :)

SMS-Spammer Send SMS text messages via email with as many accounts as you want :) Example Set Up Guide! To start log into the gmail account you would

Riceblades11 10 Oct 25, 2022
Stock trading bot made using the Robinhood API / Python library...

High-Low Stock trading bot made using the Robinhood API / Python library... Index Installation Use Development Notes Installation To Install and run t

Reed Graff 1 Jan 07, 2022
Mass-unscrobble Last.fm scrobbles based on artist, track title, or time of day of the scrobble.

Unscrobbler This program is designed to mass-unscrobble Last.fm scrobbles based on artist, track title, or time of day of the scrobble. For example, i

Nathan 6 Nov 04, 2022
The first open-source PyTgCalls-based project.

Calls Music — Telegram bot + userbot for streaming audio in group calls ✍🏻 Requirements FFmpeg Python 3.7+ 🚀 Deployment 🛠 Configuration Copy exampl

Calls Music 74 Nov 19, 2022
My homeserver setup. Everything managed securely using Portainer.

homeserver-traefik-portainer Features: access all services with free TLS from letsencrypt using your own domain running a side project is super simple

Tomasz Wójcik 44 Jan 03, 2023
Python wrapper for CoWin API's

Cowin Tracker Python API wrapper for CoWin, India's digital platform launched by the government to help citizens register themselves for the vaccinati

Saiprasad Balasubramanian 43 Jun 11, 2022
An attempt to escape the horrible JIRA editor.

An attempt to escape the horrible JIRA editor. jira_filter.py is a pandoc filter that cleans up some of JIRA's html so that it can be converted to Mar

Stefan Matting 2 Feb 10, 2022
Example app to be deployed to AWS as an API Gateway / Lambda Stack

Disclaimer I won't answer issues or emails regarding the project anymore. The project is old and not maintained anymore. I'm not sure if it still work

Ben 123 Jan 01, 2023
A discord bot can stress ip addresses with python tool

Python-ddos-bot Coded by Lamp#1442 A discord bot can stress ip addresses with python tool. Warning! DOS or DDOS is illegal, i shared for educational p

IrgyGANS 1 Nov 16, 2021
OSINT tool to get information from a Github and Gitlab profile and find user's email addresses leaked on commits.

gitrecon OSINT tool to get information from a Github or Gitlab profile and find user's email addresses leaked on commits. 📚 How does this work? GitHu

GOΠZO 211 Dec 17, 2022
A discord bot that utilizes Google's Rest API for Calendar, Drive, and Sheets

Bott This is a discord bot that utilizes Google's Rest API for Calendar, Drive, and Sheets. The bot first takes the sheet from the schedule manager in

1 Dec 04, 2021
Fully Automated Omegle Chatbot

omegle-bot tutorial features fast runs in background can run multiple instances at once Requirement Run this command in cmd, terminal or PowerShell (i

6 Aug 07, 2021
A Video Streaming Telegram Bot written in Python with Pyrogram and PyTgcalls

Video Stream Bot A Video Streaming Telegram Bot written in Python using Pyrogram and PyTgcalls Requirements Python 3.9 Telegram API Telegram Bot Token

Aarav Arora 61 Dec 10, 2022
Scratch2py or S2py is a easy to use, versatile tool to communicate with the Scratch API Based of Scratch2py

Scratch2py Scratch2py or S2py is a easy to use, versatile tool to communicate with the Scratch API Based of Scratch2py Installation Run this command i

2 Jan 13, 2022
Discord E-Store Bot

A delivery bot for Discord, works like Amazon where real users can pack & deliver orders in different servers!

Amit Pathak 2 Jan 28, 2022
Catware - A powerful grabber with a built in bot control system

catware A powerful grabber with a built in bot control system PLEASE NOTE THAT I

4 Feb 04, 2022
Automatically changes your discord status

Automatically changes your discord status, Be careful as this may get you rate limited and banned

octo 5 Sep 20, 2022
🐍 VerificaC19 SDK implementation for Python

VerificaC19 Python SDK 🐍 VerificaC19 SDK implementation for Python. Requirements Python version = 3.7 Make sure zbar is installed in your system For

Lotrèk 10 Jan 14, 2022