Code Monkey home page Code Monkey logo

aquarius's Introduction

Heya!

👋 My name is Ian Mitchell (he/him), and I'm a software engineer from Seattle, Washington, specializing in front-end development (mostly using React). I've been doing web development for a long time now - I'm one of those ones that finds CSS fun, and tries to use it as much as possible.

Recently...

Interaction Kit is a Discord HTTP bot framework I'm using to learn more about the Discord API and TypeScript.

sentrydiscord.dev is a popular tool I developed for forwarding sentry alerts to a Discord server.

My personal website is a little more developer-focused, relying on MDX and custom CSS to give me maximum flexibility with my content.

Ramble is a Bluesky web client using Next.js and React Server Components (currently closed source)

Starboard is a Discord bot I recently built primarily for my community server.

I also wrote and maintain Deschtimes, a project-management solution for foreign media translation groups.

Find me out and about

👾 @desch (I have a community server you can join too!)

🌐 ianmitchell.dev

🐦 @IanMitchel1

✉️ [email protected]

aquarius's People

Contributors

ajora avatar bblia avatar bucket3432 avatar cheshyre avatar dependabot-preview[bot] avatar dependabot[bot] avatar gladstonedigital avatar iamevn avatar ianmitchell avatar jpowell2433 avatar justaperiod avatar kevintongg avatar kunaldes avatar michaellegacy avatar petzku avatar reddaedalus avatar ryaain avatar snyk-bot avatar tandpfun avatar thatiemsz avatar yonilerner avatar zaneneuschuler 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  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

aquarius's Issues

Allow Conditional Loading of Modules per Server

When Aquarius is added to a server, only a select few modules should be enabled automatically. The rest will need to be enabled by the server admin.

As part of the settings, Aquarius should also allow the restriction of modules, perhaps using the following states:

  1. ON: Anyone can use this module
  2. RESTRICTED: Only the Aquarius Mod role and server admin can use this module
  3. ADMIN: Only the server admin can use this module
  4. OFF: The module won't run on the server

Further, additional configuration values should be allowable (things like API access keys and the like)

GitHub Notifier

Using GitHub Webhooks, the bot should respond to certain events from configurable repositories and broadcast them in configurable rooms. This will be a good initial test of #43

Quote bug fixes

  • .command syntax is not working
    • .quotes add new "quote"
  • keyword "new" is not working
    • @bot new quote "quote"

Add a broadcast command

If the bot owner gives a broadcast message, Aquarius should put it in all the general rooms for each server it's in. This will help alert people it's going down

Add Startup and Setup Scripts

It'd be nice to have bin scripts to automate some of these processes, especially when we end up needing a database.

Add New Command Alerts

When new commands are added, Aquarius should alert server admins via DM so they can add the command if they wish.

Rules

When a user joins a server, Aquarius should message them with a configurable rules command. This will be a good initial test of #43

Perhaps allow it to be triggered in a room as well.

Karma system update

Add the following commands to karma

@bot karma @user - shows user's karma level
@bot karma shitlist - shows users with the lowest karma level

Add Heroku Notifier

The bot should respond to new deploys and broadcast them in configurable rooms. This will be a good initial test of #43

Message Server Admin when Added to Server

When Aquarius is added to a server, it should send a greeting to the admin explaining certain things about the bot. It should probably cover:

  1. What it does
  2. How to trigger it
  3. Common modules and how to use them
  4. How to configure bot settings for the server
  5. How to contact me / find this repository

The server admins should be able to set certain settings for the server they are running here. (The bot will need to check for multiple servers run by the admin, and require specification if it's ambiguous).

Alarm Command

This command should set an alarm for a certain time. It can be a single alarm, or repeated alarm and displays a set message when triggered.

'Same' crash

/Users/ianm/Code/aquarius/src/commands/same.js:20
  messageStack.get(server).get(channel).push(msg.cleanContent);
                                       ^

TypeError: Cannot read property 'push' of undefined
    at msg (/Users/ianm/Code/aquarius/src/commands/same.js:20:40)

Add Circle Notifier

The bot should respond to passing and failing tests and broadcast them in configurable rooms. This will be a good initial test of #43

Create Mafia Module

Module might be the wrong word, but in additional to one-off commands a broader scope should exist (system?) - but regardless, Dan wants the bot to be able to run a Mafia game.

Consider dropping `triggered`

As much as I'd hate to lose that in my code, there's a lot of duplication - it might be better to have message return false if it isn't triggered and a string on trigger, and then have Aquarius put it in a variable and run an if(var) { aq.sendMsg() } check

Add Tests

Command Tests

  • 8ball Tests
  • Choose Tests
  • Karma Tests
  • Order Tests
  • Overwatch Tests
  • Pokédex Tests
  • Quotes Tests
  • Reply Tests
  • Same Tests
  • Seen Tests

Core Command Tests

  • Broadcast Tests
  • Info Tests
  • Nickname Tests
  • Stats Tests

Framework Tests

  • Command Tests
  • Link Util Tests
  • Messaging Util Tests
  • Permission Util Tests
  • String Util Tests
  • Trigger Util Tests
  • User Util Tests

Config Tests

  • ServerSetting Tests
  • Default Key Tests
  • Config Tests

Bot Tests

  • Help Tests
  • Message Tests
  • Core Message Tests
  • Query Tests
  • Admin Tests

Dotenv Error

We need to use the Procfile to set an env flag to read from dotenv or the Heroku env - right now, it throws an error when the bot starts in production.

Seen Module

Skiddiks has requested a @bot seen @user command, which outputs the time since the user has been offline for.

Reply Usage Tracking

It'd be cool to see what replies get used most often. A simple usage counter + an "active" flag that is toggled on removal would do it (that way we don't lose data on reply deletion)

Add Streaming Commands and Alerts

It'd be fun to integrate with Twitch and YouTube Gaming and post alerts / allow stream modifications (think title updates, donation alerts).

I'd probably have to create a permission system as part of this. Maybe a custom "Aquarius-Mod" role?

Port ARX-7 Commands

  • Choose
  • Order
  • Reply
  • Same
  • Showtimes

The rest of the commands duplicate existing functionality

Better Regex / Mention System

Since a lot of the regex follows a general pattern, might be worth trying to create some helper methods for it. The bot mention for instance would be a lot cleaner if it wasn't duplicated in each command

Voice Chat Utility Commands

For large servers, it'd be nice to add a pickup group command where the bot automatically creates a voice channel and adds players to it, and then deletes channels as they become unused.

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.