Giter VIP home page Giter VIP logo

snowboy's People

Contributors

jonathanzhao02 avatar

Watchers

 avatar  avatar

snowboy's Issues

"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.

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)

Add playlist support

When user links a playlist, iterate through all songs and add them to the queue.

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.

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?)

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.

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.

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)

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.