Giter Site home page Giter Site logo

huppy's Issues

Research Scope creation of Interaction Framework

Description

Creating own scope before Interaction Framework creates one internally opens many new options, like middleware

Tasks

  • Find the possibility of creating shared service scope before command execution
  • Implement it

[Task ⚗] Config

Description

Start using IConfiguration and bind values to appropriate value object

Goals

  • Remake configuration

Related tasks

[Task ⚗] Invite button

Description

Put Add to Server button to Huppy card

Example:
img

Goals

  • Add invite button to Huppy card
  • Make it disablable (either hardcode for now or add property in config)

[Task ⚗] Separate Loggers

Description

Consider separating logging and the implementations, making logging event-based.
Event subscription should appear in Creator.cs and services / commands should have events in places where the logging could appear.

Task is open for suggestions

Goals

  • Replace logging with events
  • Subscribe logging methods to events

[Task ⚗] Add utilities

Description

Create Console.Table utility and create folder for utilities

Goals

  • Create utilities folder
  • Create Console.Table method

Remake Commands to Modals

Modals API provides a really good and comfortable UI for user input, implementing it will be significant improvement

Tasks

  • Convert /embed command to use modals
  • Convert /ticket create command to use modals

[Task ⚗] Activity updater

Description

Create a service that will change the activity of Huppy to one of the implemented handlers in some configurable timespan

Goals

  • Add activity changer service
  • Add job to change activity after some period of time
  • Make it configurable

[BUG 🐛] Ephemeral commands problem

Describe the bug

Ephemeral messages (like /reminder time or /reminder date) are not hidden

To Reproduce

Steps to reproduce the behavior:

  1. Use an ephemeral command like /reminder time

Expected behavior

Ephemeral commands should be hidden and visible to user only

Screenshots

example

[Task ⚗] Investigate which GC we should use

Description

Test whether the Server or the Workstation options works better for GC.

Goals

  • Determine what factors we take into the consideration when determining which option is "better"
  • Investigate
  • Change the setting

[Task ⚗] Github workflow jobs

Description

Create GitHub workflow jobs/actions to improve the deployment/development process

Goals

  • Create GitHub workflow jobs

[Task ⚗] Error message templates

Description

Modify the error template to be more eye-pleasing, also reconsider displaying Exceptions (internal)

//...
case InteractionCommandError.Exception:
    embed.WithTitle("Command exception");
    embed.WithDescription(result.ErrorReason);
    await context.Interaction.ModifyOriginalResponseAsync((msg) => msg.Embed = embed.Build());
    break;      
//...       

Goals

  • Modify Template
  • Remove error icon
  • Implement Exception handler with proper message after reconsideration

[Task ⚗] Resource monitor

Description

Finish implementation of debug resource monitor command.
Maybe in future include charts for command statistics

Goals

  • Include CPU usage
  • Include RAM usage
  • Include the Number of shards
  • Include Uptime
  • Include Avg execution time of command in the last 6 hours
  • Include bot version

Related tasks

[Task ⚗] Cleaning

Description

Removed injected unused services

Goals

  • Removed injected unused services

[Task ⚗] Scoped data service

Description

Create a scoped data service in order to share a single IUser instance around the scope without the need to pass user data to other services outside of command execution context

Goals

  • Create scoped data service service
  • Refactor services to use ICurrentUser service instead of passed around IUser from interaction context

Related tasks

[Task ⚗] Rate limiting

Description

Research the topic of Rate Limiting of Discord API and implement proper limiters to prevent getting either banned or blocked.
Verify if discord.net lib doesn't have one already implemented

Goals

  • Research Rate Limits of discord
  • Eventually implement Rate Limiter

[BUG 🐛] Server bugs

Describe the bug

Huppy once joins the server doesn't add the server, doesn't add it later either
Huppy still registers debug commands and keeps the duplicates

Expected behavior

Huppy ensures the server he's in, gets added to database.
Huppy on deployment doesn't duplicate commands registered to debug guilds

[Task ⚗] Developer Precondition

Description

Create developer precondition to allow developers to use development exclusive commands / debug commands

Look up this

Goals

  • Add Developer ID list to appsettings (like debug servers)
  • Load developer IDs from appsettings
  • Store developer list in CacheService
  • Create Developer Precondition

[Task ⚗] Unified Embed System

Description

Create more accurate service wrappers around repositories to eliminate using repositories directly in commands

Goals

  • List services that require more wrapping
  • Implement methods that solve repository tasks in commands

Dev guide

Prepare branch and commit namings file, preferably CONTRIB

[Task ⚗] Memory leaks

Description

Investigate for memory leaks in commands, /debug info seems to keep increasing RAM and not releasing it

Goals

  • Find memory leaks
  • Solve memory leaks

[Task ⚗] Huppy status notifications

Description

Create email notification when huppy is down or is starting

Goals

  • Create notification service
  • Create email sender
  • Make it configurable

[Task ⚗] Refactoring

Description

Since the recent refactor of repositories, the Ticket repository hasn't been refactored yet.
We should convert it to the abstract repository.

The result should have a pattern like other repositories

Goals

  • Refactor TicketRepository
  • Verify if refactored repository works properly

Related tasks

[Task ⚗] Webhook

Description

Implement Discord <=> github webhook

Goals

  • Create webhook
  • Apply it to discord

[Task ⚗] Beta Servers saving

Description

Switch beta server to database entry as boolean property of Server model instead of saving them in appsettings.json

Goals

  • Switch beta commands to database entry as boolean property of Server model

[Task ⚗] Automation scripts

Description

Create automated build and testing scripts, for both Linux and Windows OS

Goals

  • Create a Migration script
  • Create Build Deploy script
  • Create test start script

Related tasks

[Task ⚗] Architecture

Description

Improve Huppy architecture to be based on ASP.NET N-layer / DDD architecture

Goals

  • Modify the current architecture

[Task ⚗] Repository refactor

Description

Unify repositories to use the common IRepository interface in order to increase the abstraction of code

Goals

  • Refactor repositories

[Task ⚗] Create middleware system

Description

Create middlewares system to command handler

Tasks

  • Create middleware system
  • Remake user check to middleware
  • Remake Ephemeral check to middleware
  • Remake CommandLog to middleware

[BUG 🐛] Command Usage might show incorrect numbers

Describe the bug

Investigate how Huppy counts AI usage and Command count per user

To Reproduce

Steps to reproduce the behavior:

  1. Use /ai stats
  2. Use /ai chat command and the count should increase
  3. Use /whoami
  4. Use any command and the count should increase

Expected behavior

  • /ai stats should display the number of AI conversations
  • /whoami should display the number of commands used overall

Additional context

This bug might be contained inside queries of CommandLogRepository.GetAiUsage

[Task ⚗] Investigate which GC we should use

Description

Test whether the Server or the Workstation options works better for GC.

Goals

  • Determine what factors we take into the consideration when determining which option is "better"
  • Investigate
  • Change the setting

[Task ⚗] Intents

Description

Change intents to disable GatewayIntents.GuildMessages subscription to gateway event, we do not require as for now to listen for every message.

Goals

  • Change intents

[Task ⚗] Change Bot Uptime

Description

Change Bot Uptime format in /debug info command field to better looking one (up to task taker)

Goals

  • Modify format
  • Apply to field

[BUG 🐛] Command duplicates

Describe the bug

Investigate why some commands get registered twice to a single server.

Expected behavior

Commands get registered once and displayed without duplicate.

Screenshots

preview

Additional context

Happened on recent deployment

[Task ⚗] Middleware implementations

Description

Convert command handler methods to middleware

Goals

  • Implement command log middleware
  • Implement CurrentUserMiddleware (#16 )
  • Implement Missing user/server data middleware

Related tasks

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.