Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Roadmap Features #45

Open
switchupcb opened this issue Dec 2, 2022 · 10 comments
Open

Implement Roadmap Features #45

switchupcb opened this issue Dec 2, 2022 · 10 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed up for grabs

Comments

@switchupcb
Copy link
Owner

switchupcb commented Dec 2, 2022

You can read this feature tracker for progress updates on features listed in the roadmap and this issue tracker.

Features

You can let me know when you are interested in contributing any of these features. I can provide you with more information and create an issue you can use to track the feature.

Task Assigned
Interactions via Outgoing Webhook
Voice Audio Processing #72
Cache Manager @switchupcb

Examples

You can let me know or create a pull request. when you are interested in contributing an example.

Example Description Location Tools Assigned
Message Components Demonstrate how to use every message component. _examples/message/components
Channel Demonstrate how to use all channel types. _examples/channel
Permissions Demonstrate how to use permissions. _examples/permissions Comparison, Conversion (String to BitFlag)
Guild Demonstrate how to use Guild features. _examples/guild/community
Guild (Community) Demonstrate how to use Guild features (that require the community setting to be activated). _examples/guild
Webhook Interaction Demonstrate how to handle interactions using outgoing webhook's. _examples/command/webhook
Webhook Demonstrate how to use a webhook to send a message. _examples/message/webhook

Guide

Use this guide to create an example. Each example must contain the following deliverables:

  • README.md
    • Description (Title, Description, Discord API Reference)
    • Setup (Environment, etc)
    • Usage (Running Example)
    • Output
    • Termination (if applicable)
    • etc
  • main.go (WITH COMMENTS)

The README contains a table of examples which you can check out to understand how to implement these requirements.

Tools

The Disgo Tools module contains utility tools that help users (developers) create a Disgo Bot. If you encounter code that meets any of the following criteria while creating an example, consider creating a Disgo Tool.

  • Code is boilerplate or time-consuming to create.
  • Code maintains a high complexity.
  • Code is prone to security issues without tool.
  • Code is frequently used (among programs and/or all of the Disgo ecosystem).

Refactor

You can refactor these libraries using Disgo increase Disgo's adoption.

How do you refactor a library with Disgo?

  1. Use a find and replace operation with a Discord API Wrapper's library name.
  2. Replace address all found locations.
  3. Create a pull request.
  4. List the fork here.

DiscordGo

The following libraries use DiscordGo to perform operations within the Discord API.

Library Difficulty Status
notify Easy Denied for Popularity
AutoDelete Easy No Longer Supported
matterbridge Easy
kwatch Easy
wayback Easy
discord-stock-ticker Medium
mautrix Hard
yagpdb Elite

Ensure that the bot client's Timeout is set accordingly for each refactor pull request.

@switchupcb switchupcb added enhancement New feature or request help wanted Extra attention is needed labels Dec 2, 2022
@switchupcb switchupcb mentioned this issue Dec 2, 2022
2 tasks
@switchupcb
Copy link
Owner Author

@MarkArranz has been assigned to the Message Components example.

@switchupcb
Copy link
Owner Author

The Voice Connection feature is similar to connecting to the Gateway, but with separate Events and Opcodes. There is also an added UDP Protocol step (which allows for Voice Processing). Voice Processing requires a method of parsing Opus Protocol packets. As a result of its similarity to the Gateway Implementation, I am willing to work on Voice Connections (but not Voice Processing) if required. However, this work will not be started before December 26th.

@switchupcb switchupcb added the good first issue Good for newcomers label Dec 5, 2022
@switchupcb
Copy link
Owner Author

switchupcb commented Dec 5, 2022

@TopiSenpai I recognize that you have contributed to DiscordGo with the "Interactions via Outgoing Webhook" feature (bwmarrin/discordgo#1263). Would you be willing to contribute that feature to disgo as well? It is production ready now.

@topi314
Copy link

topi314 commented Dec 5, 2022

@switchupcb eh no thank you, I have my own lib I work on

@switchupcb
Copy link
Owner Author

switchupcb commented Dec 6, 2022

#26 (comment) provides new information regarding Sharding. In a similar manner to Voice Connections, I will be able to implement this in late December or January.

@switchupcb
Copy link
Owner Author

Sharding has been implemented in v1.10.1.

@switchupcb
Copy link
Owner Author

@MarkArranz has been unassigned from the Message Components example.

@switchupcb
Copy link
Owner Author

I have added the Message Components example outline and request logic for the Action Row, Button, and Select Menu.

  • The request logic for the modal still must be demonstrated.
  • Handling message component interactions still must be demonstrated.

@switchupcb
Copy link
Owner Author

I have updated the assignments for the next few weeks.

@switchupcb
Copy link
Owner Author

Assignments have been updated.

@switchupcb switchupcb pinned this issue Feb 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed up for grabs
Projects
None yet
Development

No branches or pull requests

2 participants