snowboy's People
snowboy's Issues
Add custom aliases
Allow guild admins/mods/whatevers to add up to ~10 or so custom aliases for other commands, i.e.:
User: %alias rick
Snowboy: What command would you like to alias rick
with?
User: %play rick roll
Aliases would have to be stored in a guild's database, likely stored as: "GuildID:Aliases[0-9]", loading would just enumerate from 0 to 9
Deleting aliases would be %removealias or something along those lines.
Using already existing command names as an alias should not be allowed.
Replacing aliases should notify the user before doing so.
Allow them to simply reply with 'cancel' to cancel an alias, or any other form of invalid input (i.e. a command that doesn't exist, like trying to alias rick to asdjfahhgak)
Memory Leaks
After Snowboy leaves a VoiceChannel, the AudioStreams to each user remains in memory, increasing memory usage from the base ~35mb to ~40-50mb.
EDIT: In addition, memory use for Snowboy grows overtime. Heap snapshots show accumulation inside a JSArrayBuffer and an Object. These may be connected to stream data being buffered from the VoiceConnection receiver, as data may not be getting consumed after shutting down the AudioStream to the User. (not enough back pressure?)
Add looping support
Commands to loop the current song, or the queue
"help" Command
It would be appreciated if a command that displays what each other command does is added. To avoid going over the 2000 character limit, the commands should be split into pages, and into voice commands and text commands.
Example:
%help
would display text/voice commands in pages with descriptions of what each does, and at the bottom is a small footer saying 'Page 5 of 10, use %help [page#]
to go to the next page'.
%help voice
would display voice commands with examples of a phrase. The user should know that they do not have to say the command exactly as is for Snowboy to trigger.
%help text
would display text commands. The user should know these must be typed as is.
Formatting and Responses
It would be greatly appreciated if responses were formatted to be more varied or appealing, maybe also develop some kind of established formatting (i.e. msg for debugging, msg for general responses, and msg for errors, var
for variables)
Unit Testing
It's an absolute pain to have to test each individual command of Snowboy in every different context, so there should be unit tests developed to simply test each function/command and ensure that the output is correct. Promising packages are the mocha
or chai
testing packages.
Essentially, just make sure that each function works by passing in dummy objects, check that no errors are thrown.
"nowplaying" or Similar Command
Add a command to display what is currently playing, time in the song, full duration, what's up next, etc.
Add playlist support
When user links a playlist, iterate through all songs and add them to the queue.
Permission Checking
Right now, Snowboy executes functions willy-nilly without care for what happens afterwards. However, if the bot does not have permissions for a certain action, the application crashes, and that's bad, so permission checking would be pretty cool.
Speaking Event
After a few minutes of remaining in a VoiceChannel, Snowboy can no longer create new AudioStreams to new users. This bug arose after playing a live stream over Snowboy for ~30 minutes, then having a new user join and attempt speaking.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.