DXsmiley / mathbot

Discord bot for mathematics
https://dxsmiley.github.io/mathbot/
GNU General Public License v3.0
279 stars 53 forks source link

Message Content Access Deprecation for Verified Bots #100

Open DXsmiley opened 3 years ago

DXsmiley commented 3 years ago

Discord will be deprecating message content access for verified bots (this includes MathBot) in April 2022.

I will be applying for the message content privilege, however this isn't guaranteed.

This means that mathbot should move to slash commands.

Most commands should be fairly straightforward to convert once we've figured out a good way to do it, however there's a number of commands which could prove much more difficult.

LaTeX commends

Note that without the message content privilege, inline LaTeX will be entirely broken. If Discord denies me there'll basically be nothing I can do about it, since I don't see a way to convert that to a slash command in a meaningful manner. If this happens, I'll update the bot to give a deprecation warning alongside any output from inline tex commands.

Wolfram Alpha

Calc Command

Settings

Ytrog commented 3 years ago

Damn this sucks. Especially for inline latex. I can imagine this is a disaster for any auto moderator bots. 😳

On Sun, Aug 1, 2021, 07:03 Declan @.***> wrote:

Discord will be deprecating message content access for verified bots https://support-dev.discord.com/hc/en-us/articles/4404772028055 (this includes MathBot) in April 2022.

I will be applying for the message content privilege, however this isn't guaranteed.

This means that mathbot should move to slash commands.

Most commands should be fairly straightforward to convert once we've figured out a good way to do it, however there's a number of commands which could prove much more difficult. LaTeX commends

  • Basic responses (=tex command)
  • Update output when message is edited
  • Delete output with 🗑️ reaction
  • "MathBot is typing" notification, since the command can run for a while.
  • Variants including texw and texp.

Note that without the message content privilege, inline LaTeX will be entirely broken. If Discord denies me there'll basically be nothing I can do about it, since I don't see a way to convert that to a slash command in a meaningful manner. If this happens, I'll update the bot to give a deprecation warning alongside any output from inline tex commands. Wolfram Alpha

  • Basic command functionality (=wolf command)
  • Re-running commands with assumptions
  • "MathBot is typing" notification, since the command can run for a while.
  • Pup command

Calc Command

  • Should be mostly fine, but we might loose the == shortcut and have to pick something else.

Settings

  • Internals of how the settings commands work will probably have to change a lot.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/DXsmiley/mathbot/issues/100, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAV7G6DP57BZ52MRFGKCEG3T2TITFANCNFSM5BKXPRHQ .

DXsmiley commented 3 years ago

Nah, they specifically say that moderation bots should be fine.

From the annoucement:

We know that many bots and apps function specifically to read, moderate, and otherwise manage messages sent by Discord users. We expect to grant those requests for message content without issue. If your bot has unique functionality that cannot be replicated or otherwise implemented with interactions, you can begin applying once we open the queue for this intent in fall of 2021.

I'm hoping that MathBot can classify under "unique functionality", but I don't want to put all my eggs in that basket.

Ytrog commented 3 years ago

I hope so too.

On Mon, Aug 2, 2021, 08:50 Declan @.***> wrote:

Nah, they specifically say that moderation bots should be fine.

From the annoucement https://support-dev.discord.com/hc/en-us/articles/4404772028055:

We know that many bots and apps function specifically to read, moderate, and otherwise manage messages sent by Discord users. We expect to grant those requests for message content without issue. If your bot has unique functionality that cannot be replicated or otherwise implemented with interactions, you can begin applying once we open the queue for this intent in fall of 2021.

I'm hoping that MathBot can classify under "unique functionality", but I don't want to put all my eggs in that basket.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/DXsmiley/mathbot/issues/100#issuecomment-890768866, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAV7G6BSDX45M6GMXAQKF63T2Y535ANCNFSM5BKXPRHQ .

tweirtx commented 3 years ago

How will the deprecation of discord.py affect this?

DXsmiley commented 3 years ago

How will the deprecation of discord.py affect this?

Thanks for bringing this to my attention. That's a pretty bad sign and I'm not really sure what the full implications will be. This might mean that a major rewrite of MathBot is required, unfortunately.

(for anyone else reading this you can find details of the discord.py situation here)

DenverCoder1 commented 2 years ago

All bots will still be able to see messages they are pinged in, so even if message intents are denied for MathBot, you will still be able to do stuff like:

@MathBot tex \sqrt{x^2}

That being said, Discord does want developers to switch over to slash commands and other interactions wherever possible.

It will require choosing a library (either a 3rd-party addon like discord-interactions or a fork such as nextcord, pycord, or edpy). Then each command will need decorators that specify what types each input to the command should accept. The forks are still currently in development, so it's best to wait before switching to one I think.

tweirtx commented 2 years ago

I am curious if you're planning to bump the targeted Python version as well, as 3.6 becomes End Of Life in a few months.

tweirtx commented 2 years ago

Just wanted to check if there was any update on this

DXsmiley commented 2 years ago

I'm currently looking at discord-interactions as the library of choice going forward. Version 4.0 of the library is dropping on December 15th. It's a major rework of the library, so I'll be targeting that version rather than starting now and then having to convert (might start development working off their dev branch before that though).

I'll also bump to python 3.8 (or newer).

Ahsoka commented 2 years ago

Update here: discord.py is back. See this gist.