[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
🔎 Hunt down social media accounts by username across social networks

Hunt down social media accounts by username across social networks Installation | Usage | Docker Notes | Contributing Installation # clone the repo $

Sherlock 38.2k Jan 01, 2023
Netflix Movies and TV Series Downloader Tool including CDM L1 which you guys can Donwload 4K Movies

NFRipper2.0 I could not shared all the code here Because its has lots of files inisde it https://new.gdtot.me/file/86651844 - Downoad File From Here.

Kiran 15 May 06, 2022
A very simple Salesforce.com REST API client for Python

Simple Salesforce Simple Salesforce is a basic Salesforce.com REST API client built for Python 3.5, 3.6, 3.7 and 3.8. The goal is to provide a very lo

simple salesforce 1.4k Dec 29, 2022
An Simple Advance Auto Filter Bot Complete Rewritten Version Of Adv-Filter-Bot

Adv Auto Filter Bot V2 This Is Just An Simple Advance Auto Filter Bot Complete Rewritten Version Of Adv-Filter-Bot.. Just Sent Any Text As Query It Wi

0 Dec 18, 2021
This is a Innexia Chat Bot Open Source Code 🤬

⚡ Innexia ⚡ A Powerful, Smart And Simple Chat Bot ... Written with Python... Available on Telegram as @InnexiaChatBot ❤️ Support ⭐️ Thanks to everyone

Dark Cyber 4 Oct 02, 2022
ВКонтакте бот для управления Sugar кошельком

Sugarchain VK ВКонтакте бот для управления Sugar кошельком Установка Установить зависимости можно командой: pip install -r requirements.txt Запуск (из

Vladimir 4 Jun 06, 2021
Automation for grabbing keys from a Linux host. Useful during red team exercises to quickly help assess what access to a Linux host can lead to.

keygrabber Automation for grabbing keys from a Linux host. This can be helpful during red team exercises when you gain access to a Linux host and want

Cedric Owens 14 Sep 27, 2022
An alternative to OpenFaaS nats-queue-worker for long-running functions

OpenFaas Job Worker OpenFaas Job Worker is a fork of project : OSCAR Worker - https://github.com/grycap/oscar-worker Thanks to Sebástian Risco @srisco

Sebastien Aucouturier 1 Jan 07, 2022
Jalali version of python calendar :date:

jcalendar jcalendar is Jalali implementation of Python's calendar module Status Install pip install jcalendar Documents This module almost follows Py

Iman Kermani 7 Aug 09, 2022
A Simple Advance Auto Filter Bot Complete Rewritten Version Of Adv-Filter-Bot

Adv Auto Filter Bot This Is Just An Simple Advance Auto Filter Bot Complete Rewritten Version Of Adv-Filter-Bot.. Just Sent Any Text As Query It Will

TeamShadow 4 Dec 10, 2021
The easiest way to deploy this Bot

How To Host The easiest way to deploy this Bot Update Channe

Isekai Reszz 1 Jan 23, 2022
A tool for creating credentials for accessing S3 buckets

s3-credentials A tool for creating credentials for accessing S3 buckets For project background, see s3-credentials: a tool for creating credentials fo

Simon Willison 138 Jan 06, 2023
Example of a discord bot in Python

discordbot.py Example of a discord bot in Python Requirements Python 3.8 or higher Discord Bot Setting Up Clone this repo or download the files Rename

Debert Jamie 1 Oct 23, 2021
Live Weather Updates using Flask and OpenWeather

AuraX Live Weather Updates using Flask and OpenWeather Installation To setup this project on your local machine, first clone this repository and insta

Ayush Gupta 3 Nov 02, 2021
Download videos from Youtube and other platforms through a Telegram Bot

ytdl-bot Download videos from YouTube and other platforms through a Telegram Bot Usage: https://t.me/benny_ytdlbot Send link from YouTube directly to

Telegram Bot Collection 289 Jan 03, 2023
Crypto Signal Provider - A web application that allows users to select a cryptocurrency

Crypto_Signal_Provider This is a web application that allows users to select a c

Raul 2 Dec 11, 2022
Get informed when your DeFI Earn CRO Validator is jailed or changes the commission rate.

CRO-DeFi-Warner Intro CRO-DeFi-Warner can be used to notify you when a validator changes the commission rate or gets jailed. It can also notify you wh

5 May 16, 2022
SkyzoMusicBot - Bot Music Telegram By Skyzo

SKYZO MUSIC BOT Telegram Music Bot And Stream Feature New Version Ready to use m

Skyzo 19 Apr 08, 2022
This Lambda will Pull propagated routes from TGW and update VPC route table

AWS-Transitgateway-Route-Propagation This Lambda will Pull propagated routes from TGW and update VPC route table. Tested on python 3.8 Lambda AWS INST

4 Jan 20, 2022
Revolt.py - An async library to interact with the https://revolt.chat api.

Revolt.py An async library to interact with the https://revolt.chat api. This library will be focused on making bots and i will not implement anything

Zomatree 0 Oct 08, 2022