Giter Site home page Giter Site logo

chipbot2.0's Introduction

Grading Web Tools

This repository contains an HTML/CSS validator frontend and a plagiarism checker service developed to help streamline my work grading labs as a tutor at Georgia Southern. These services are no longer in use. and I cannot guarantee that they work.

It used the W3C HTML validator API, and CSSHint on the backend.

chipbot2.0's People

Contributors

bclindner avatar dependabot[bot] avatar

Watchers

 avatar  avatar

chipbot2.0's Issues

Karma command muting

Hoodie has requested the ability to mute the karma system, to curb chat spamming during events on the Discord.

A bit tricky, I think - gotta come up with some mixin or decorator or similar pattern I can use which lets me compose a mute functionality into those two commands.

TDD/BDD and CI

This would take a bit of work, but would help maintenance efforts tremendously - we practically wouldn't have to test the thing ourselves at all.

We'll definitely want to use mocha for this, being the biggest and baddest Node.js test framework out there.

The main problem here is that there's no good way to locally test a Discord bot, AFAIK. I guess it's possible to have a Discord server set up specifically for testing, launch the bot with a test token, and then write a bot that acts as a client, but that could turn out to be an awful lot of work.

Karma ridicule system

It should be possible to set custom denial lines for any number of blacklisted subjects (i.e. Other M).

Should this be part of the KarmaManager object? I'm honestly not sure. As it is it's mostly an abstraction for the DB.

Dockerize

Depending on what the server's set up, it might be advantageous to Dockerize the bot. This would be totally trivial with how Docker works with Node projects, but if the server's not already running Docker there wouldn't be much of a point, I think.

Command handler

After some study of other bots and some tutorials, it looks like the usual programming pattern for the library being used here (discord.js) is having a single command handler running on top of the bot which can take files as command configurations, rather than the other way around. I'll see about having this done soon; the way commands are currently handled is absolutely atrocious.

Refine karma subject regex

The Hoods have requested some changes to what counts as a karma subject - up to 5 words separated by spaces. Trivial regex change, I think?

Karma system rank command

Chipbot IRC allowed you to display the top 5 rated karma subjects.

I'd ideally like this to function similar to the original bot with a few simple extras:

  • A bottom 5 rated karma subjects. Oh yeah. Other M gets its own list. ๐Ÿ˜Ž
  • A way to list the top 10 or 20 subjects at least. Maybe through a parameter for the command?

This should probably have a function in the KarmaManager object - a getTop(numOfSubjects) and a similar getBottom function, perhaps.

ChipWINdex command

This may not be something we want, and definitely not an idea for the first release, but if the ChipWINdex does eventually get sorted out, it might be cool to have a sort of getInfo command if someone wants to pull up a release quickly. It'd probably just be me stunting after release at some point.

OO Karma system conversion

Karma system needs to be OO, and have the back-end and front-end code relatively separate in case things need to be changed around later.

Voice channel restreaming

Restreaming wouldn't be hard to manage with discord.js! We could probably allow the bot to be summoned into a voice channel with a command and automatically restream geekbeatradio to the channel.

There are some problems, though - without Discord partnership the bandwidth on the voice channels is teeny tiny - i think 96Kbps - which wouldn't allow for a very high-quality stream. This would really only be helpful if the Chip=WIN server were to apply for Discord partnership to get us at least 128Kbps.

Karma auxiliary functions

The karma system has some auxiliary functions which, while rarely used, should be implemented for the sake of completeness, I think.

Modular command classes

A base class for deriving custom command modules off of would be nice. Being able to define a custom module that automatically registers itself with the bot upon construction and has functions for handling input might be helpful later on, but I'm not sure it'd be worth the extra dev time.

Karma permissions system

It should be possible to disable upvoting and downvoting for certain cursed/blessed karma subjects, e.g. Other M and Chiptunes=WIN, respectively.
Configuration should be under a "blacklist" object in the karma config JSON, I think.
Maybe add an isBlackListed method to the KarmaManger object for this? Maybe canUpvote or canDownvote?

Quote system (using lowdb)

Re-implementing the quote system shouldn't be too bad. Should probably have an interface object for adding/pulling quotes.

We can probably piggyback off of the karma database, likely using the same lowdb database file and connection, though keeping them seperate will probably have their advantages.

We probably want a QuoteManager class similar to how the KarmaManager manipulates the db, to keep things simple.

Karma OO refactor

The KarmaManager object is a bit silly - it would be best to implement a KarmaSubject with getters and setters for the different properties of the object with helpers instead of having the KarmaManager handle everything by string. Should clean up the command handling code as well.

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.