Coder Social home page Coder Social logo

kumaslash's Introduction

ghostbear

Hallå där 👋

Here is a ghostbear which is known as Andreas and he lives in a great country which lies in Scandinavia called Sweden. He likes working on mobile applications, but as long as code is involved he will probably work on it without much complaining. When he is not coding then he is probably cooking something or enjoying some manga.


🌱 Ghostbear is currently learning more about Android Development with Kotlin

⚡ Fun fact he will most likley do a table flip if he sees old code

😄 Pronouns

  • He/Him

❤ Favorite repositories

  • Tachiyomi, a free and open source manga reader for Android.
  • LISTEN.moe, an open source (J/K)-pop radio app for Android

💾 Favorite programming languages

  • Kotlin
  • JavaScript

ghostbear

ghostbear

kumaslash's People

Contributors

ghostbear avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

kumaslash's Issues

Timeout Logging Command

The command is simple. It should only allow the user to set a guild channel as a logging channel for timeout logging

/timeout channel #1234567890

JUnit and testing the application

Invenstigate
How the application can be tested using JUnit. The most significant unknown area is Discord4J it may not be possible to test that but it may be possible to test individual event handlers.

Seperate Guild and Tachiyomi database into seperate databases

Currently, the Guild and the Tachiyomi database tables are in the same database it would be ideal to have them separate as that would mean all modules are plug-and-play

Flyway migrations will most likely need to move to a subfolder in the resource folder <name>/db/migrations

Configuration for the databases can be nested under spring.r2dbc.<name>

GitHub command

What?

A set of GitHub commands to download, show issues/PRs, etc.

Things to think about*

It might be good to let the bot owner and/or guild owner set predefined repository entries

Create Tags

Similar to what Carl Bot has

Types of Tags

  • Textual (text or URL)
  • Embed

Disallow users from using both at the same time

To investigate

  • Ways to allow users (with permission) to create tags

Possible approaches

  • Use Markdown to parse user input
    • Preferably hand-made Markdown parser, to allow extension of the Markdown specification

Rework Event Handler Components

The current way of handling events with the event handler is far from perfect.

The idea is to create a more Spring type of working with Discord4J would be to create a few annotations that would allow us to define event handlers.

@EventHandlerComponent
public class MyEventHandler {

  @SlashCommandHandler(command = "parent.subcommand")
  public Mono<Void> mySubcommandHandler(ChatInputInteractionEvent event) {}

  @EventHandler(for = ModalSubmitInteractionEvent.class, customId = "myCustomId")
  public Mono<Void> myModalHandler(ModalSubmitInteractionEvent event) {}

  @EventHandler(for = ModalSubmitInteractionEvent.class)
  public Publisher<?> myMessageCreateHandler(MessageCreateEvent event)

}

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/BeanPostProcessor.html

AniList error handling

One result show ephemeral or message user about the error.
Multiple results show in list what wasn't found

- A
- B

Not found
- C

Advanced AniList search

Cycle through search results

Interaction
Buttons

Prev | Index | Next

Investigate
How to handle search sessions.
What if a user queries 10 media entries from AniList creates 10 messages? Will the bot be throttled and not be able to send all 10 at once

Reminder command

What?

A command that lets you create a reminder to be notified at a specific time.

Media.format throwing NullPointerException

java.lang.NullPointerException: Cannot invoke "me.ghostbear.kumaslash.anilist.model.Media$Format.ordinal()" because the return value of "me.ghostbear.kumaslash.anilist.model.Media.format()" is null

Timeout Logging Event Handler

The timeout logging event handler is complex as it should listen for both Member Updates and Auto Mod Action Execution. It should then get the timeout logging channel and send a message there notifying who timeout the user, who the user is, the reason, and the timeout duration. In parallel it should also send the user a message with the reason why they were timeout.

Regarding request steps app thingy

Is it possible to alter who can trigger Request Steps from Apps in Right Click Menu dialog

or maybe just duplicate it into a slash command is also a possible option

AniList recommendations

Allow getting recommendations from AniList search results

Interactions
Emoji or button trigger

Investigate
Have it as a separate message trigger ~{{}}, ~[[]], ~<<>>?
Create a Slash command /anilist recommendations for_query:"Attack on Kuma"?

Partially blocked by #25

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.