The GitHub API provides `ref_type` as lowercase. For consistency, this
adds a utility function and makes use of it when formatting the `create`
event from GitHub.
tag => Tag
branch => Branch
The biggest hold-up was missing fields (`premium_tier`,
`welcome_screen`, etc.) but it looks like someone has provided a
helpful function called `createGuild(...)` to provide sensible default
values.
This commit fixes the errors related to creating a guild from a
template. I've also refactored the code to include roles and channels in
the template.
To make sure that the @everyone role is cloned correctly, when
creating the guild from a template, we check if the role's ID
matches the template's `source_guild_id`. If it does, we set the
@everyone role to the new guild's ID.
The `postHandleMessage` function is parsing links and adding them to the
EmbedCache table if necessary. In the previous implementation, message
updates would push to the embeds unconditionally.
This commit parses links from the message and:
1. Normalizes the URLs
- Useful for deduplicating similar URLs
2. Remove embeds with matching normalized URLs
- Leaves all embeds except for ones with a `.url` property matching
the updated message
- This allows embeds to be re-ordered if the URL is moved
3. If no normalized URLs are found, remove all embeds
4. Take the deduplicated + normalized URLs and add an embed to the message and
insert into the EmbedCache table (if necessary)
This enables:
1. Embeds to be re-ordered by re-ordering links
2. Embeds to be removed by removing links
and fixes:
1. Duplicate embeds being attached to a message when edited