OtherDave is not David
OtherDave does some things, but not others
Runs on discord.py and a bunch of other stuff - before starting OtherDave, run:
python3 -m pip install -r requirements.txt
OtherDave is not David
License: MIT License
Discord bots can assign users to and remove users from roles, which would be a fun way to mess with Bandit.
Responses in util.triggers.pedant should have a cooldown rather than triggering every single time.
OtherDave can generate Haikus either through the respect/prompt backbone or the mimic backbone or both.
Implement variable phrase length in terms of sentences and words per sentence.
Currently he says "Gotta love that Fast Guy" whenever sonic is mentioned, which is disruptive when discussing the blue blur.
Suggested emojis: fastguy_nice, fastguy_chilidog, or guyrunningfast
Dave wants to auto-react to messages containing certain triggers (:clown~1: on a message containing "lol", eg)
Per a suggestion from the server, add a command to parrot a users previous sentence with mixed capitals, a la "Mocking Spongebob" meme
User 1: I had a terrible day today, my breakfast was burned
User 2: !mock @user1
OtherDave: i HaD A teRriBLe DaY TodAy, mY BrEakFaST WaS bUrNed
This can be his punishment for always posting so much quote bait. If someone tries to !remember something Bandit says, OtherDave will ask them if they're willing to pay XX minutes to save the quote first.
Randomly generated compliments.
!mimic @mloc shows:
1000000 seems v large. is that just a noob but I have difficulty keeping small leaves in.
1000000 seems v large. is that just a noob but I have difficulty keeping small leaves in.
1000000 seems v large. is that just a noob but I have difficulty keeping small leaves in.
It's really important to mloc that we get mimic working, he's very sick and it's his soul's deepest desire
Expected:
10s -> "Tens"
100s -> "Hundreds"
Actual:
10s -> "Tens"
100s -> "One Hundreds"
Wherever int.to_bytes
or int.from_bytes
is called in stringmischief.py
it should also pass signed=True
as a parameter to avoid -
OverflowError: can't convert negative int to unsigned
!ignore <user> mins
Stop listening to <user> for mins minutes. They must have been naughty!
See title. Right now you can give things to literally any string.
!give help
gives a random item to someone named 'help'
Just a thought, letting this one marinate.
@tehwinrar will have his work cut out for him.
If the second line of a haiku can get up to 17 syllables from 11 in a single word it triggers detection even though it's not a valid haiku.
repro:
I guess I could still
easily set up some reorganization
Being able to silence all non-invoked functions (haiku, pedant, etc) for half an hour would be nice.
Discord.py supports the allowed_mentions properties when sending messages -
https://discordpy.readthedocs.io/en/latest/api.html?highlight=mention#discord.TextChannel.send
https://discordpy.readthedocs.io/en/latest/api.html?highlight=mention#allowedmentions
Rather than stripping @ mentions from text that's saved, just make sure those mentions aren't parsed on send.
This may apply to other commands, but commands like !respect should continue to invoke mentions, so we can't just configure this on the client to be used globally.
Use higher-level markov chains to build more believable and coherent responses.
If you add a word to the lists used by !prompt, no response or reaction is given to indicate success.
Normally it'd make sense, things should start at 0! But if the first davebucks someone receives are a string, then you try to stringmischief it with 0
. Ideally, if the initial davebucks are a string, they should be added to ""
rather than 0
so we stop getting weird initial balances.
David J Catman Esquire, Lawyer — Today at 11:15 AM
!give -me a formation
OtherDave — Today at 11:15 AM
Here, -me, have (:wine_glass:) a formation.
Now that discord.py 2.0.0 is out and contains support for /commands, switching from the current !command model would improvements to user experience when writing/understanding commands and their arguments.
Implement issuing commands to OtherDave by way of making comments to it, via Discord.
An example would be to have OtherDave change the DrunkDraw time by commenting what the new time for the drunk draw is.
Title, basically
Might be that they just get !ignore
ed or something more evil if I can think of it.
If discord.py can't map the argument to a discord.Member, it fails silently and dumps the error to the log. Error handling should be enabled for the command, per the library documentation.
⚔️ :: [weapon]
🛡️ :: [shield]
⛑️ :: [armor]
⚗️ :: [potion]
🍔 :: [food]
🍷 :: [drink]
✨ :: [enchanted item]
🪗 :: [instrument]
🔑 :: [key item]
⚱️ :: [relic]
Not counting Haiku, nothing is actually tested right now. Need to add tests for everything that can be tested locally.
!haiku -correct foo 1
eg
When a user uses the !comic command, generate a random phrase based on three separate lists representing the first, second, and third panels. Maybe eventually random images??
Much like random parrots or finds, add a small chance ( 1/100 ) to !ignore Bandit for 1-15 minutes
What about something like:
Step right up, steeeeep right up, it's time to win a prize!
Today, for your all your rampant and wanton consumption needs, you could have:
- a standard prize! (XXX Davebucks)
- a rare prize! (XXXX Davebucks)
- a legendary prize! (XXXXX Davebucks)
- a snack (X Davebucks)
Pull the lever, and see what you get!
Add !ignore for Bandit specifically to random stuff OD sometimes does, just to mess with them
Oh the joys of Python3's unlimited int length.
If the int is more bytes than the string being added, it throws an OverflowError. Need to check how many bytes the int needs and pad the string as necessary.
If the first day of the month is a Sunday, the DrunkDraw is still generated incorrectly.
A flag that makes it so !comic command won't repeat panels from a certain number of !comics back
Example: !comic -nodupes 5
Remembers all panels it used for the past 5 !comic commands and does not repeat them
Other notes: a reasonable maximum seems fine if that's necessary
"Look, he's wearing a
funny hat, because we got
10k likes yesterday!"
This triggered haiku since "10" counts as zero syllables.
need to token out the number and count its syllables.
usage:
!use [-my] <$object_in_inventory>
MadLibs a usage for $object_in_inventory
if present in OD or the user's inventory (with -my
), or prints and error
!drop [-my] <$object_in_inventory>
Drops an $object_in_inventory
if present in OD or the user's inventory (with -my
), or prints and error
Add ability for OD to find/use/drop random objects as an option for his random chatter, with find being the most likely choice.
Switch dd config to pickledb rather than yaml
Probably connect4 since that's the most fun you can have using simple inputs.
Usage would look like
!suggest -type { template | noun | ing_verb | etc } -value { string to add }
Would likely need a paired approval system, could maybe use button modals in the OD console channel to do so, with a reaction on the original !suggest
command that was made.
Have comic generator choose an available branch at random when !comic is used.
IE:
a_comic/panel01
b_comic/panel01
c_comic/panel01, etc
Optional thought: add a command that'll allow a user to request a specific branch?
IE:
!comic a_comic
!comic b_comic etc
He used to heckle you, now he doesn't.
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.