Coder Social home page Coder Social logo

sarbjotm / kiwi Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 2.0 1.27 MB

Kiwi acts as a mascot for the SFU Dodo Club. All commands have been coded by club members using Python and Python libraries

License: GNU General Public License v3.0

Python 99.73% Shell 0.26% Procfile 0.02%
discord kiwi discord-py simon-fraser-university sfu club dodo-club mysql

kiwi's Introduction

SFU Dodo Club - Kiwi

discord.py Dodo Club Paypal Donate

Kiwi is one of SFU Dodo Club's mascots, and is also our main Discord bot. Kiwi is constantly being updated and is maintend by myself. Kiwi is currently being hosted on Heroku and has an MySQL Database connected to it.

Since Kiwi is changing constantly, it's commands and command parametres are below:

Commands

Kiwi uses the , as a prefix.

Role Commands

Command Alias Parameters Description Example
,collect None None Collect a random role. Command is on a 12 hour cooldown ,collect
,activate None String text Activate a role that was gained through ,collect as your colour ,activate Dodo Red
,trade None String your_role, @user, String user_role Trade your role with another user for their role. Other user must accept the trade ,trade Dodo Red @Amander Dodo Purple
,myroles None None Show all of the roles you have collected ,myroles
,roles None None Show a list of all collectable roles ,roles
,show None String role Display a specific role in your profile tab ,show Dodo red
,showall None None Display all collectable roles in your profile ,showall
,hide None String role Hide a specific role from your profile tab ,hide Dodo Red
,hideall None None Hide all collectable roles in your profile ,hideall

Economy

Command Alias Parameters Description Example
,daily None None Recieve your allowance, 24 hour cooldown. Amount recieved is between 1-1000 ,daily
,bal ,balance None View how much money you have ,bal
,shop None None View shop, and prices for items ,shop
,buy None int quantity, String role Buy x of role ,buy 1 Dodo Red
,sell None int quantity, String role Sell x of role, each role can sell between 1-1000 ,sell 1 Dodo Red
,leaderboard None None Show top 5 richest users on the server ,leaderboard

String Manpilation

Command Alias Parameters Description Example
,spongebob None String text Return the string in "SpOnGeBoB" format ,spongebob Hello World
,fireworks ,fw String text Return the string with fireworks inbetween the words ,fireworks Github is the best

Decision Making

Command Alias Parameters Description Example
,help None None Display a list of all of the commands ,help
,ping None None Returns "pong" if the bot is online ,ping
,poll None String text String Option 1-10 Give the users to vote on a question. Users can pick from 1-10 responses ,poll "What Movie Should we Watch" Comedy Action "Rom Com"
,_8ball ,8ball String text Ask Kiwi a Question and get an answer ,8ball Will it snow

Astrology

Command Alias Parameters Description Example
,horoscope ,zodiac String zodiac Display daily horoscope and compatible matches ,horoscope libra

Weather

Command Alias Parameters Description Example
,weather None String city Display weather information from requested city ,weather Vancouver

Birthday

Command Alias Parameters Description Example
,setbirthday ,birthday String mmdd Aadd your birthday in the database so kiwi wishes you a happy birthday ,birthday 0114

Other

Command Alias Parameters Description Example
,help None None Display a list of all of the commands ,help
,ping None None Returns "pong" if the bot is online ,ping
,kittyclap ,travisclap None Return an emoji of a cat clapping ,kittyclap

Contribute

We welcome changes that benefit the server as a whole! Please feel free to discuss in our discord server by pinging one of the moderators or post in one of the chats.

Development Branch

IMPORTANT If you are adding a feature to Kiwi, use Dev Branch. After you have pushed your code, head over to the development heroku enviornment, turn on the worker and test your commands in the testing server before merging to main

kiwi's People

Contributors

earthensky avatar papashirogane avatar sarbjotm avatar tooo avatar unicue avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

kiwi's Issues

Implement "Collect command"

Users are allowed to run the collect command once every 24 hours, and they receive a themed role, which they can keep. Each role will have a weighted probability for the user to obtain.

For example:

Santa - 1%
Christmas Tree - 50 %
Reindeer - 30%
Christmas Lights - 10%
Rudolph - 9%

Leaderboard

Leaderboard is not being displayed

To Reproduce:

  1. Go to Discord Server
  2. Use ,leaderboard command

Help Command

After cogs have been finished implement a better help command that'll display what each function does, and the alias of the function names.

Preferably use the embed builder

Fix Weather Module

The ,weather command is reporting KeyError: 'BASE_URL' on the latest version of the dev branch.

Spin Command

Re-add spin command to kiwi.

0 ~18.69%
250 ~18.69%
500 ~14.9%
1000 ~14.9%
2500 ~11.21%
5000 ~7.47%
10000 ~7.47%
25000 ~3.73%
50000 ~1.869%
100000 ~0.93%

Horoscope

Command usage:
,horoscope SIGN - Display daily horoscope for the sign requested. Will be grabbing data from the web

SFU API Usage

Is your feature request related to a problem? Please describe.
Instead of using Beautiful Soup to grab the information off of the SFU Webpage, using the SFU Courses API

Describe the solution you'd like
With the courses API, parsing the data will be easier, and less chances of errors.

Trade Command Fix

Instead of doing this:

  • User roleupdate
  • otherUser update
  • user remove
  • member remove add roles

Do the following:

  • Update user information in Database
  • Add/Remove User Roles
  • Update Other User Information
  • Add/Remove Other User Roles

To avoid potential SQL mix upss

Add Shop

Allow users to buy roles.

,buy role - see if user can afford the role then take x money away and update database

Add games

Add games user can bet money on, if users "win" the game they win 2x the amount, if they lose, then they lose the betted money

Transfer mentionable commands to slash commands

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Turn the mentionable commands such as hug and wave into slash (/) commands

Describe the solution you'd like
A clear and concise description of what you want to happen.

This would cause the user to only get pinged once, instead of being pinged twice

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Update Leaderboard Command

Instead of tagging users for the leaderboard, we will grab the usernames, as discord names are now unique

Command Errors

Error handling for incorrect commands and missing/incorrect arguments

Image match game

Implementing a commandline game where kiwi generates a random (hidden) search term, passes it through google image search, and picks 4 images & titles.

Players are shown one of the images and all 4 of the image titles, and must guess which title the image corresponds to.

This game in certain situations is very easy, but in others it is completely random. I predict people will not be able to abuse it in order to make insane amounts of money.

Dashboard

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Create a dashboard that shows information about the bot:

  • Leaderboards in terms of money
  • Games
  • Help Command
  • Etc

"Kiwi's Top Picks" Flicker / Instagram integration

Would involve creating a flicker account, then utilizing the flicker file uploading API to enable users to upload files to the account with a command, or through a special channel where every image in said channel gets uploaded.

Must include a command for deleting images if flicker API allows.

I chose not to use instagram since my brief research appeared to show that accounts could be banned for using file uploading automation. However, this may have changed recently with a new API addition for uploading files to instagram. Will need to look into this as instagram would be prefered over Flicker

Keep Function

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Some users want to sell all of their roles and only keep x of each one

Describe the solution you'd like
A clear and concise description of what you want to happen.

A keep command where the user sells all roles until they have less than or equal to x of each role left. So ,keep 2 would keep 0 1 or 2 roles of each, whichever is greater

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Manually selling each role, but that takes time

Additional context
Add any other context or screenshots about the feature request here.

Requested by Ally: <@233048072375107584>

New Colour Roles **Limited Edition**

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Add new colour roles, but make the available for "limited" time, put in regular list but lower the percentages so all the others stay higher then these

#fa86ca Taffy
#c6a27e oak
$ffffff White
#ffcc00 Gold
#000000 Black
#f37a48 Amanderin

Modified Help Command

Is your feature request related to a problem? Please describe.
Nope, just general usability

Describe the solution you'd like
Typing ,help should display all the categories like Games, Roles, Zodiac, Weather, etc while doing ,help Category should display commands info for commands relating to specified category.

Example:
,help
Send embed about:
Help Categories

  1. Role Based Commands
  2. Zodiac
  3. Weather
    etc

,help Weather
Will should all commands relating to Weather

Weather

Describe the bug
Weather displays placeholder text and floats are really long

To Reproduce
Steps to reproduce the behavior:

  1. Go to discord'
  2. Enter ,weather <desired_city>

Expected behavior
Show temp in F, C, humidity levels and weather description neatly

Show/ShowAll/Hide/HideAll

Show - enter a particular role to showoff in your profile
ShowAll - Showcase all of your roles

Hide- enter a particular role to hide in your profile
HideAll- Hide all of your roles

Update help command

Check if help command contains all commands, and add any commands that are missing

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.