Giter Club home page Giter Club logo

awesomebot's People

Contributors

anshulxyz avatar asishm avatar carefree4 avatar demipixel avatar devoidfury avatar ecoerod avatar efueger avatar fer22f avatar fzxt avatar heasummn avatar islandidealist avatar j-mcafee avatar kpwn243 avatar lethargilistic avatar maxwenger avatar melmsie avatar micwill007 avatar nagracks avatar nrcrast avatar raycatwhodat avatar raylu avatar rgoliveira avatar saethlin avatar samoxive avatar seekheart avatar snarehanger avatar stephanraab avatar superstabby avatar tbodt avatar toddwannacode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesomebot's Issues

jseval is escapeable

Example:
!bot jseval console.log.constructor("return process")()

This will return the actual process object from outside the VM.
The only way to make a safe javascript sandbox is to compile your own, i recommend compiling a custom sandbox built off of the V8 engine.

Weather needs verbose flag

The weather command gives too much information by default. On mobile, it scrolls me an entire screen. I suggest adding a flag to it to get all of that data, if desired, but defaulting to just the summary, temperature, and humidity. Preferably one line.

Remember, people use weather commands all the time.

Update README

The current version doesn't really explain how to setup and properly run the bot. It should at least mention how to setup API tokens and desired plugins.

A section about what the bot can do right now would be nice, too.

Also, a "Contributing" section should be added (or a new file?) explaining how the project is organized, how to add a new plugin, etc.

Rename `settings.json` to `settings.json.example`, ignore `settings.json`

Since said file (settings.json) could be adjusted by someone running the bot, it doesn't really make sense to have it on version control. We should, however, keep an example of it (always updated, if possible), aka settings.json.example.

Similar thing happened to tokens.json, although this one was created to move tokens out of settings.json. When we deal with this, maybe we could just move the tokens back into the main settings?

Create something to keep track of channel status

New idea: passive thing to log channel status every . Like:

  • overall members online
  • members per channel
  • message count
  • new users
  • etc...

This way we could see the most active hours, channels, where we need more attention, this kinda thing

Add simple tests to avoid breaking changes

I guess after PR #34, which broke the bot, we could use a couple simple tests to avoid major problems. I'm proposing the following just for starters:

  • Make sure the bot can connect and disconnect to Discord

One thing I'm not sure about how to solve is where we should keep the APIs keys, but I think I can set them up in Travis. We'd just need to review the code and make sure it also looks for the keys in environment variables (the weather plugin is the only one requiring keys, IIRC).

Codeblocks for !bot eval

I recommend allowing codeblocks for bot eval, so others can read your code easily while still getting the output, instead of having to send two messages, one having codeblocks to make it easier to read. This could be done by before sending the stuff to repl.it, remove lines that begin with ```

stream command fails for certain users

For some users the stream create command fails with

Sorry, could not create channel (Error: Bad Request)

I suspect it's because the nickname had spaces in it. Might be a good idea to sanitize the string against this kind of thing. Maybe we could get the user ID (that #bignumber) to use in the channel name?

Write some tests

Ok, so now that we have an initial setup for tests (#40 and #46), we should expand the coverage to at least one test per module. Let's do it!

Note: this will probably be easier if modules are refactored to decouple logic from calls to discord.js

Insert checklist with modules here

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.