groove-theory / groovebot Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
Delete this file if it is no longer necessary, also look to clean up other files we no longer need
Find a way to log errors since the bot has been deployed (or maybe store in the DB).
Log should have error message, stack trace, and relevant input data (ChannelID, MemberID, GuildID, etc)
Implement Tic Tac Toe (probably per channel, as per user might be overkill)
Just use emojis for graphics
Groove/Admin only command
Use this to test all commands/features possible (useful before and after deploy)
In Channel Listener, when not in a silence channel, run the rest of the methods in parallel and not concurrently, in order to reduce unnecessary method dependency
Do we need this to start up on index.js? Maybe working as intended
Right now sometimes Idiom will give bad results. Should probably fix the inputs better or maybe find a way to detect bad outputs and try again
Requirements will have to be thought out, for now just logging this
change PRODUCTION variable to some sort of ENVIRONMENT_MODE in env and Globals to know where we are (testing, stage, prod)
We also need another heroku account for staging a milestone release to make sure things don't break on production. This means we can't push to master until we're absolutely ready to push to prod, i.e we always push to a stage branch
I'll throw in putting in a WINDOWS_MACHINE env variable for canvas
Related: #4
Need to check if Ouija will blow up DB. Create logic to only query the DB when necessary (even when ouija is toggled on), or find ways to reduce calls
This will not apply for Testing or Stage
Alternative to t!wiki, without 2 second wait time
Prevent certain users from using any bot commands.
Per guild? Globally?
Maybe relates to #20, where guild admins can ban per guild, but bot admins can ban globally.
Probably don't want to do it per command.
Will probably be checked on ChannelListener. Maybe use a Mongo join so we keep it 1 query per message
Make concept of Bot Admins to use special commands or other stuff (apart from regular users)
Production and testing shouldn't use same DB in the cluster, get rid of production value for channel collection and just move to different DBs when testing or on prod
We need to make Help command more accessible and abstract to drilldown into other stuff
We could probably use the DB for this, make a separate collection and manually insert strings.
We could also try having each JS file have an object property called "HelpText" or maybe convert the help file to basically a large tree object.
This might not be possible, but I'm going to log this anyway
Move js files to own folder
Don't forget to change all reference paths to JS files
Related to #14
make g!help drilldown per command, so it gives more indepth details?
Is this the start of command chaining? Do they need to input the command or command string (do we need the 'g!', as in g!help g!quote)
Do it for the memes
t!wiki is broken, g!define is not, need to investigate
Branch off master as hotfix
Probably not possible but logging here anyway
Currently probably doesn't work, use the DB to make guild options to set it up
Drill Tweet generator
Probablt jus twitter api through npm, hopefully it can look at a public account and search based on maybe a random date or int value or something
When entering options, depending on the options, read mentions or string names to get appropriate value (i.e channel name -> channelID)
Create Library of Categories/Files paradigm per guild
We could probably just see if discord's File array property on messages is something we can just store.
Not sure if we should have "public" libraries just yet, keep them private since we aren't going to do raw file hosting (just links guaranteed by Discord)
Same category/value scheme as ranks
Commands needed:
g!addlibrarycategory [category] (Mod Only)
g!removelibrarycategory [category] (Don't delete if files exists) (Mod Only)
g!renamelibrarycategory [oldcatname] [newcatname] (Mod Only)
g!addlibraryfile (wizard asks for name, category, and then file/link with a validation echo message)
g!removelibraryfile [category] (Mod Only)
Need a message from groovebot PM-ing (just for stage and production) that everything was loaded correctly, along with other diagnostic info we want
Create option to toggle auto-slowmode for spam prevention
Requirements totes needed
Foyer Copy doesn't show images or other attached files
Make it so
Probably don't have to worry about editing since I don't think you can do that on discord. But maybe even just a link will suffice and not the actual media
should only be global objects and not hardcoded values (port as new DB options if necessary)
-Enact Option Values for Vote.js
Find a way to webhook all Reddit Mod Chat channels (if available) to a discord channel for logging (mods only, but a guild can decide)
Groove Points!!
Am I just making a starboard?
By message count? I could do that, since ChannelListener detects that anyway.
g!givepoint or something to award .... other forms of credits
At some point this will have to relate to the new website
Universalize code structure, apply to all files
Right now it looks kinda weird, figuring out a way to not have to use substrings and a weird switch statement. Maybe somehow more scalable for multi-input options too?
Comments would be nice
Options.CheckServerOptionsExist seems awkward in it's implementation right now and where we use it, we should revisit this so it doesn't seem like spaghetti code as we check and/or insert option collection records for a guild.
Maybe find a way to auto-populate the table when a bot is invited as well?
Option to say that if turned on, for a channel, then all incoming messages will be auto-deleted until the option is toggled off.
Bot should be smart enough to detect toggle off mode and not delete it
Update this with all of the other commands (maybe implement react wizard)
Link to Website?
Fix formatting, make it look prettier
Related: #4
Make the Embed message look cooler
Mention the asker-author correctly with avatar
Maybe get rid of the AskOuija prefix in the question?
Describe the bug
launch.json won't work with runtimeExecutable on Windows machine
Find a way to either null it or ignore it depending on WINDOWS_MACHINE
If using the channel welcome functionality, guild admins should be able to edit this (and toggle on/off)
Requires #20
Find a way to print out DB stats (PM option) to a Bot Admin if requested.
Possibly look into automated messaging if the bot detects if it's high. Not sure if Mongo can send that to us through a socket depending on configurations. If not it's not a huge deal
Add Role/Rank support based on guildID
Create Ranks DB Collection (let's keep it away from Options), We should have the ability to split ranks into categories
Ability to Add/Remove Ranks (mod only action)
Ability to Apply/Unapply Ranks as roles
Insert Help Text
Commands:
g!addrankcategory [name] (Mod Only)
g!renamerankcategory [oldname] [newname] (Mod Only)
g!removerankcategory [name/id] (Mod Only)
g!addrank [category] [rolename/id] (Mod Only)
g!removerank [category] [rolename/id] (Mod Only)
g!rankcategory [name?] (List categories if no name, list ranks if name)
g!rank
Right now guilds can only take one guild to copy to another channel, we should be able to have guilds be able to make links to whatever they want to log to
We should somehow present uptime percentage and make it Groovebot's topic message on the members bar.
Uptime Robot too cheesy? I don't wanna log shit in the DB if I don't have to.
Need to structure formal debate, maybe research ParleyPro debate stuff again or just make a queue in speaking for debates
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.