bot icon indicating copy to clipboard operation
bot copied to clipboard

Shoutout our patreon supporters!

Open ChrisLovering opened this issue 4 years ago • 8 comments

In a recent staff meeting we agreed that we weren't giving enough love to our patreon supporters.

As such, we have agreed that we should have the bot post in #community-meta every time someone new receives one of the patreon roles, along with posting once a month (on the 1st, just after the patreon subscription cycle) with a full list of all of our supporters.

The post when we get a new supporter should include:

  • A mention for the user who has started supporting
  • What tier they are supporting us
  • A link to our patreon page

The monthly post should include:

  • A 3 column embed (embed.add_field() makes this easy), one for each tier
  • The names of all of our current supporters, under the appropriate tier column
  • A link to our patreon page

ChrisLovering avatar Aug 22 '21 20:08 ChrisLovering

The role IDs are:

  • Tier 1 - 505040943800516611
  • Tier 2 - 743399725914390631
  • Tier 3 - 743400204367036520

The link to our Patreon is https://www.patreon.com/python_discord

ChrisLovering avatar Aug 22 '21 20:08 ChrisLovering

Patreon subscription cycle seems to be the 1st of the month in PST, so posting the monthly embed at ~1700 UTC seems like a good time to do it.

ChrisLovering avatar Aug 22 '21 20:08 ChrisLovering

Hi! I would like to implement this! This will be my first contribution, so I will probably have a lot of questions!

For the role added, I would guess the best method would be to listen for on_member_update?

Then for the monthly one, using Role.members?

I guess the #community-meta channel is in config.yml at guilds-channels-meta (meta being in the # Discussion comment)?

Should the monthly one get pinned?

mathstrains21 avatar Sep 02 '21 09:09 mathstrains21

Great! I'll assign you to the issue. For reference what is your name on Discord? Also, feel free to ask questions in #dev-contrib if you need any further help!

For the role added, I would guess the best method would be to listen for on_member_update?

Yes, that would be the way to do it. Keep in mind that we'd only want to send a message for when a new patron subscribes, rather when someone stops being a patron. The modlog cog currently watches for role changes, so if you're looking for implementation reference, that could be a good start. bot/exts/moderation/modlog:457-481

Then for the monthly one, using Role.members

Yup, that sounds like a good plan.

I guess the #community-meta channel is in config.yml at guilds-channels-meta (meta being in the # Discussion comment)?

Yes, that's the channel! I don't think we should pin it, since then we'd need to store each message, so it can be unpinned next month. I think just posting monthly is great :D

ChrisLovering avatar Sep 02 '21 10:09 ChrisLovering

Great! I'll assign you to the issue. For reference what is your name on Discord? Also, feel free to ask questions in #dev-contrib if you need any further help!

I am mathstrains19#2057 on discord!

Ok!

For the role added, I would guess the best method would be to listen for on_member_update?

Yes, that would be the way to do it. Keep in mind that we'd only want to send a message for when a new patron subscribes, rather when someone stops being a patron. The modlog cog currently watches for role changes, so if you're looking for implementation reference, that could be a good start. bot/exts/moderation/modlog:457-481

Will have a look at that section!

Then for the monthly one, using Role.members

Yup, that sounds like a good plan.

I guess the #community-meta channel is in config.yml at guilds-channels-meta (meta being in the # Discussion comment)?

Yes, that's the channel! I don't think we should pin it, since then we'd need to store each message, so it can be unpinned next month. I think just posting monthly is great :D

Ok! I will post on here with some images of what the messages are looking like so you can review and suggest some changes if wanted!

mathstrains21 avatar Sep 02 '21 10:09 mathstrains21

Had an idea - when someone changes their patreon tier to a higher level, the bot will also message.

However, this would only work if the new role was added first, and then the old role was removed.

How reliable would this be?

If it's a case of a computer changing the roles automatically, then we can make sure the requests are done in the right order.

If it's a case of a human manually doing the change, then I could provide a command that does the change, making sure it does in the right order?

mathstrains21 avatar Sep 02 '21 14:09 mathstrains21

Also, a few potential commands that could come with this:

patreon - provides a link to the patreon page, and a short description

supporters - basically the same as the monthly update, just for when the command is run

mathstrains21 avatar Sep 02 '21 15:09 mathstrains21

Yea, Patreon automatically assigns the role and removes the old one, so that should just work without change, since it just looks like a new tier 2 supporter. I don't think we should add extra logic to catch people who upgrade, just treat them as a new tier 2 or 3 supporter.

The commands seem like a good idea.

ChrisLovering avatar Sep 06 '21 12:09 ChrisLovering