Handle d2m events with empty guild/user avatars #106
5 changed files with 11 additions and 0 deletions
Add a few more jsdoc types
commit
9141bba25e
|
|
@ -106,6 +106,7 @@ async function ensureSimJoined(pkMessage, roomID) {
|
|||
* Generate profile data based on webhook displayname and configured avatar.
|
||||
* @param {Ty.PkMessage} pkMessage
|
||||
* @param {Ty.WebhookAuthor} author
|
||||
* @returns {Promise<Ty.Event.M_Room_Member>}
|
||||
*/
|
||||
async function memberToStateContent(pkMessage, author) {
|
||||
// We prefer to use the member's avatar URL data since the image upload can be cached across channels,
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ async function ensureSimJoined(pluRalMessage, roomID) {
|
|||
* Generate profile data based on webhook displayname and configured avatar.
|
||||
* @param {Ty.PluRalWebhookMessage} pluRalMessage
|
||||
* @param {Ty.WebhookAuthor} author
|
||||
* @returns {Promise<Ty.Event.M_Room_Member>}
|
||||
*/
|
||||
async function memberToStateContent(pluRalMessage, author) {
|
||||
// We prefer to use the member's avatar URL data since the image upload can be cached across channels,
|
||||
|
|
|
|||
|
|
@ -113,6 +113,8 @@ async function userToGlobalProfile(user) {
|
|||
/**
|
||||
* @param {DiscordTypes.APIUser} user
|
||||
* @param {Omit<DiscordTypes.APIGuildMember, "user"> | undefined} member
|
||||
* @param {string} guildID
|
||||
* @returns {Promise<Ty.Event.M_Room_Member>}
|
||||
*/
|
||||
async function memberToStateContent(user, member, guildID) {
|
||||
let displayname = user.username
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@ async function ensureSimJoined(fakeUserID, author, roomID) {
|
|||
/**
|
||||
* Generate profile data based on webhook displayname and configured avatar.
|
||||
* @param {Ty.WebhookAuthor} author
|
||||
* @returns {Promise<Ty.Event.M_Room_Member>}
|
||||
*/
|
||||
async function authorToStateContent(author) {
|
||||
const avatar = file.userAvatar(author)
|
||||
|
|
|
|||
|
|
@ -157,6 +157,12 @@ function userAvatar(user) {
|
|||
return `/avatars/${user.id}/${user.avatar}.png?size=${IMAGE_SIZE}`
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} guildID
|
||||
* @param {DiscordTypes.APIUser} user
|
||||
* @param {Omit<DiscordTypes.APIGuildMember, "user"> | undefined} member
|
||||
* @returns {string}
|
||||
*/
|
||||
function memberAvatar(guildID, user, member) {
|
||||
if (!member?.avatar) return userAvatar(user)
|
||||
return `/guilds/${guildID}/users/${user.id}/avatars/${member?.avatar}.png?size=${IMAGE_SIZE}`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue