Code Monkey home page Code Monkey logo

brayanbot's Introduction

Logo

BrayanBot

Discord JavaScript Node.js

๐Ÿ“ข About BrayanBot


BrayanBot is a free (and open source), addon-oriented, actively maintained base Discord bot for Developers and Community Managers alike. It holds the intention of being as fast as lightweight as possible out of the box, while allowing users to customize the bot (or fork it!) entirely to their own liking. With so little hard-coded commands, BrayanBot is the Discord bot of your dreams.

BrayanBot is currently going through its V2 rework and is actively looking for new features and ideas to make it better. If you have any ideas for BrayanBot V2, please feel free to join our Discord Server and let us know. If you are interested in contributing to the codebase with your ideas, please make an issue or a pull request. We always appreciate any and all contributions.

โœจ Contributing


We think everyone should be able to contribute to BrayanBot, so we have listed below the list of ways in which you can contribute to BrayanBot. For any questions, don't hesitate to ask them in our Support Server.

We welcome all kinds of contributions. Feel free to open a pull request for any code contributions, or an issue for feature requests and support.

Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the F.A.Q to make sure. And if you have a question, please ask it in the Discord server instead of opening an issue.

Discussion & Suggestions

We believe there is no such thing as a stupid idea! Which means, you may feel absolutely free to request any features over Issues or our Discord Server. While new commands most likely to make it to the bot, suggest them anyway! There is a high chance that they can become implemented as Addons

Code Contributions

If you consider yourself proficient in JavaScript, then feel free to contribute new features by Forking this repository. Or if you are interested in creating your own Addons, make sure you have read the necessary development. Feel free to hop in our Discord Server for development support.

If you would like to make a contribution, we kindly ask that you respect our Contribution Guidelines while doing so.

Translations

We do not yet have a streamlined system for Translations, however, if you have translated the bot to a specific language you are proficient in, you can offer your work to public appreciation by sharing it with us for us share your translations in its own dedicated channel.

Bug Reports

There's a fly in your room? Found a command that nukes your entire operating system when ran? Then you should definitely consider opening a Bug Report or reporting said bug over Discord. We make sure everything is fixed as soon as possible and no bugs ever get to you. You report em', we squash em'

Our Awesome Contributors

brayanbot's People

Contributors

dakshnamdev avatar dependabot[bot] avatar ignautomating avatar kevinsidd avatar notashelf avatar simonb50 avatar xcraftman52 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  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

brayanbot's Issues

Un-deprecate `setup.js`

I have recently noticed that the setup script (npm run setup) is now heavily outdated after the config changes and ultimately, too primitive to actively implement. Additionally, the prompt library introduces a minor vulnerability that we, naturally, do not want to have in BrayanBot.

Problem is, the prompt library may be deprecated (see #223 on their repo) and the alternatives do not include the regular expression checker that I need the setup.js to be opinionated to the necessary degree.

The alternatives are:

We can either contribute to one of the alternative libraries (would good publicity) or deprecate setup.js entirely.

Permissions | Add option to add permission to user

โš ๏ธ Please verify that this feature request has NOT been suggested before.

  • I checked and didn't find a similar feature request

๐Ÿท๏ธ Feature Type

Other

๐Ÿ”– Feature description

This future is about giving permissions for users.
Like:

Permission:
     - "SimonB50#1234"

This will be usefull for owner and/or dev commands

โœ”๏ธ Solution

Reworking permissions system to have this future

โ“ Alternatives

No response

๐Ÿ“ Additional Context

No response

add mysql support lol

โš ๏ธ Please verify that this feature request has NOT been suggested before.

  • I checked and didn't find a similar feature request

๐Ÿท๏ธ Feature Type

Other

๐Ÿ”– Feature description

lol lol lol

โœ”๏ธ Solution

mysql lol

โ“ Alternatives

mysql is superior lol

๐Ÿ“ Additional Context

no u no u

Migrate to pnpm, or Yarn

BrayanBot is currently using npm (which, ironically does not stand for node package manager) and as much as it is simple to use, it is is slow, inefficient and insecure by default. Yarn mitigates some of it's issues (and it's comparatively faster than npm) but the security concern remains. pnpm on the other hand, is fast, efficient and secure; which is why I will recommend switching to it by default in our package.json and documentation

Naturally, further testing remains to be done; but since pnpm stands for performant npm; compatibility should be superb.

Alternative reads:

display disk usage by the bot on start

Is your feature request related to a problem? Please describe.
No. It's merely a quality of life change.

Describe the solution you'd like
Calculate the size of the base directory before NPM modules are loaded (for precision) and then log it with console.log.

(not mine) pseudocode:

const { readdir, stat } = require('fs/promises');

const dirSize = async directory => {
  const files = await readdir( directory );
  const stats = files.map( file => stat( path.join( directory, file ) ) );

  return ( await Promise.all( stats ) ).reduce( ( accumulator, { size } ) => accumulator + size, 0 );
}
const size = await dirSize( '/path/to/directory' );
console.log( size );

Describe alternatives you've considered
Tried du -sh ../path/to/directory but that is only the manual solution. An automatic solution that provides debug information (current bot disk usage) to the devs would be more handy if it was calculated and emitted automatically.

Additional context
...

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.