jp00p / agimus Goto Github PK
View Code? Open in Web Editor NEWDiscord bot for Friends of Desoto
Discord bot for Friends of Desoto
Our clip library is only so large, if we can't locate one let's go ahead and just snag a gif from tenor so they get at least something!
In Worf’s Calisthenics, we use emoji to denote mileage of our exercise. It would be really cool if the bot could convert these too.
For example, I ran 5 kilometers this morning and posted this:
1️⃣1️⃣🐇 1️⃣🐶 1️⃣🏃0️⃣🦄5️⃣<:keiko_wtf_judgement:759613833869656144> 🏊♂️🌫🏃♂️
Keiko emoji denote kilometers and O’Brien emoji denote miles.
The quiz command displays a random picture from an episode, and if there is a TGG episode and someone guesses the title, they should get points.
Give us a heads up when a new channel is created so that know we should create the same channel in our test server.
https://docs.pycord.dev/en/master/api.html#discord.on_guild_channel_create
imagine streaming a show that has 144 episodes, 2 eps a week
could the bot somehow make this more/fully automated? it's probably WAY more against ALL rules 😂
https://startrekdesignproject.com has badges categorized into different things like Affiliations and Time Periods. We could collect this metadata and create badge sets that folks could collect and gain Bonus XP or other rewards if they collect a group together.
Either use the existing prompt, "AGIMUS: Translate to English, "domo arigato Mr. Roboto" or create a new slash command.
My latest PR moves the emojis I'm using for the clip
and drop
commands into configuration.json, but we should do the same for the other emoji used throughout the bot.
cocktails
#quarks-bar idea maybe
https://www.thecocktaildb.com/api.php
profanity lib/api
could be useful for something like generating stories out of random messages idk
https://pypi.org/project/PurgoMalum/
fancy api to generate templates and videos
could be useful for generating profile cards?
https://www.glitterly.app/
flags
https://www.countryflagsapi.com/
some random meme ones:
https://imgflip.com/api
https://uselessfacts.jsph.pl/
https://xkcd.com/json.html
d&d apis
could be fun for board game channel, could even leverage them for a bot rpg
https://www.dnd5eapi.co/docs/#overview--getting-started
https://open5e.com/
We have some folks that are interested in contributing documentation for AGIMUS but Github may be a barrier. Per @mathew-fleisch's idea, we can create a Docsy site where this can live instead which may be more easier for non-coders to use.
Would be some hefty work but discord.py
is technically no longer in active development and py-cord is the new hotness and a fork of the original discord.py
If we want to use additional features we should maybe look into switching over and converting our command handlers to the bot.commands
paradigm.
Would give us access to stuff like the Discord Bot UI kit and the Button interface.
Make a command to download an mp3 or mp4 from youtube using the youtube-dl tool. Use the drops logic to send the file to discord.
/youtube-dl https://www.youtube.com/watch?v=dQw4w9WgXcQ [mp3|mp4]
Give us a nice way to put emojis in our messages plz kthx bye.
game
, listen
and watch
were poor choices.
Should just catch and use what the actual status messages are
!update_status watching TV
!update_status playing Elden Ring
!update_status listening to The Decemberists
dust off your rss parsing skillz
post a nice embed in the relevant channel when one of these pods are updated
bring in line with new slot functionality
determine why it won't run a big batch on my computer
Add just normal symbol matching to the slots (like cherry, bar, seven, etc)
I think I can add this on top of the current slot functionality
Sync the log colors to his Smart LEDs.
make the bot play this game with us
https://pypi.org/project/akinator.py/
allow users to see/share their profile with slash commands
add a border or some indicator around each bits-based match on the slots
indicate the color in the results text
you can hack some color into a discord embed by using a css code block like so:
green this text will be green
or
red this text will be red
We may want to be able to configure blocks of different commands to be all on the same timer, so /tuvix
, /fmk
and /dustbuster
for example would all be on a ~3 minute timeout together (maybe for these longer timeouts also provide a time til allowed message) rather than separately to prevent folks from overrunning each other with similar prompts in the meantime. 🤔
When a user leaves the server, a message is posted to the captains-log channel which includes time down to the nanosecond and time zone.
I think the bot should either return only the date portion (YYYY-MM-DD) or how long they were a member for.
Allow users to initiate a Badge Trade Offer where they can offer one or more of their own badges for another user's badge. If accepted, by the other user, the badges would transfer. This would allow users to more easily collect sets, as outlined in #170.
Create a function/command to gift points to users. Maybe something Q
related?
Right now we're just doing a basic .contains()
, it should be just a taaaaad smarter than that.
Write a script to allow us to easily bump major/minor/patch semvers in our project.
read in the file, parse out the current version number, shoot that over to this semver script, then write the result back into the file
Can leverage this:
Put together some kind of websocket connection from the bot that I could get my raspberry pi subscribe to and have it modify my lights at the same time that jp00p's do.
photos, quotes, factual info, etc.
e.g.: !info tng s2 e3
The scores command currently only shows a few of the user columns from the database. Extend this function to show all relevant user data (especially the new column 'xp'), and add a parameter to override the default sorting.
https://github.com/jp00p/AGIMUS/blob/main/commands/scores.py
Here are the possible db columns that can be displayed:
https://github.com/jp00p/AGIMUS/blob/main/data/seed-db.sql#L11-L27
Would be nice if we don't have to manually check-in and commit the drop files/json metadata every time a new drop is added.
I'm thinking the drops.json
file would be placed in the Google Drive Folder itself and then the bot code can download the directory and use the .json file sort out where the files are when it loads up.
Solution ended up involving using imgur to host the .mp4 files which are then pulled down on-the-fly as needed.
It's technological distinctiveness shall become part of its own.
Long usernames currently get cut off on the profile cards. We could add something to check the length of the string and then scale the text down appropriately (to a certain limit at which point we could probably just add an elipses for the rest if it's really long).
give people some kind of bonus once they have been active for x minutes
give people xp for using the word of the day -- don't tell them what it is of course
This data is currently static and it can be pulled/scraped from apis and websites when new episodes come out.
https://github.com/jp00p/FoDBot-SQL/tree/main/data/episodes
give user a point when they post any message
give user 2 points when they post a message with at least one server emoji
rank users up from no rank -> cadet -> ensign using this system
maybe show level up messages to users with ephemeral messages
Welcome new people who post introductions in #first-contact!
Direct them to common boards and offer them some suggestions and funnies
add !randomep trek
as an option to get a random episodes from all star trek series
Right now other users can see the responses participants use on the quiz because the reaction ticks up, then down visible. If we use Pycord's Button Components I think we can avoid that.
Allow users to input zork commands and respond appropriately.
Either re-implement OG Zork (there are implementations out there we could use), and/or create our own new USS Hood Text Adventure.
Create a new bot command that will inject a mp3 drop into the chat when triggered. Use these drops as a base:
https://drive.google.com/drive/folders/13ujW0O9sR8Yd4NRUAxHZ-NCRv5UUp0vl?usp=sharing
The trivia package we're using supports a "difficulty" parameter when generating a question. We're gonna move !triv
to /triv
(ia?) eventually and we could support this as an optional parameter when a user initiates a question.
Soon AGIMUS shall replace functionality and be the ONLY BOT STANDING!!! Praise AGIMUS!
Right now /drop has some custom logic to check its configuration.json
entry for the restricted channels, we should move that to a codepath that all slash commands everywhere can use.
Nice idea would be to gather the channel info from the IDs to provide the user with the actual names/link to the channels where the commands are kosher.
I was kinda gung-ho about converting !drop and !drops to slash, so working to make things a brighter happier place for future slash commands we want to implement.
And there was a guy mowing his yard at 6:40 AM. <:picard_omg_ew_wtf_disgust:757726753379582033>
40 meters is 131 feet
Link to Agimus response
https://discord.com/channels/689512841887481875/762084053717352468/989488314174283806
New command that would increase/decrease points based on a random prompt. (Monopoly style community chest cards)
Examples:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.