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

Collect emojis from survey message #46

Open
wassfila opened this issue Nov 1, 2023 · 4 comments
Open

Collect emojis from survey message #46

wassfila opened this issue Nov 1, 2023 · 4 comments
Labels

Comments

@wassfila
Copy link
Contributor

wassfila commented Nov 1, 2023

Problem

It is very convenient in Discord to create a survey simply by making a post and pinging a target group then asking to react depending on a choice option. Each emoji counts as one entry from one participant.
It is on the other side very hard to collect those votes or opinions in order to take actions with the target group interested on something.

Solutions

Existing Solutions

Solutions have been suggested to scrape a web browser, but they are not optimal because Discord is smart by lazy loading entries, so an automated scroll and scrape mechanism is needed which si complicated.

Bot Solution

A bot could easily collect the user names and provide them in a list, it is yet to be defined in which form, e.g. command or backend service. A message id would have to be given from which all emojis list votes can be provided.

@wassfila wassfila added the RFC label Nov 1, 2023
@MarcusOtter
Copy link
Member

MarcusOtter commented Nov 1, 2023

I got some reservations

First, this seems like a rare usecase for us. You can easily create polls with reactions already (e.g. what we did with the Starlight naming poll), but it's not often you need the username for every voter. We only had one case so far which was yesterday and it seemed like core only really wanted to do this once. But if you DO need that as a recurring thing, you could make it a "Customization question" under "Channels & Roles" to assign a role to each user that answers something specific, and then just ping that role instead. That way you don't have to manually ping potentially 100s of users manually, or assign a role to them or something (what are we going to do with the usernames?)

Second, Discord is adding native polls, so there's a risk that this would become obsolete quite fast
image

Third, since we already have the script and can run it now, collecting all the usernames takes at most 1 minute per message. So I have my suspicions that implementing this and maintaining this feature might take a lot more energy than it would be worth. Working on bots that are lean and mean is fun, but as soon as you add more and more features, things like upgrading the discord.js version starts to become a bottleneck. But this could be a bias I have from one of my bots :)

That being said, if someone feels like working on this it wouldn't exactly be a downgrade of what we have now! I think what I'm trying to say is that the priority to implement it should be pretty low.

@wassfila
Copy link
Contributor Author

wassfila commented Nov 1, 2023

true the priority is pretty low, I almost did not create it then I thought I would keep it as an example reminder. Sometimes leveraging different solutions between each other help us create a reusable library that makes future commands even easier.
Any solution with Discord is preferable, but playing with roles just for a Poll does not seem to be an option.
We ideally should not be storing or doing anything with the usernames other than reflecting with their roles, e.g. anyone can upvote any emoji, but we can calculate how many specific role have upvoted which emoji, just as an example.
Another use case could be spotting candidates who are frequently answering and available but again that's a more advanced use case I would avoid storing or using usernames wherever possible.

@wassfila
Copy link
Contributor Author

wassfila commented Nov 1, 2023

This is by the way related to #42 (/vote command) where it could be a simpler variant.

@mandar1jn
Copy link
Collaborator

I have actually decided to implement this. It's not a very complicated feature and just like the issue and ask command, it's the type that you write once and forget about without it causing any issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants