channel name decoration for threads and voice-text
This commit is contained in:
parent
beeb27bbd8
commit
30bf87b106
2 changed files with 33 additions and 7 deletions
|
@ -36,12 +36,17 @@ function applyKStateDiffToRoom(roomID, kstate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {{id: string, name: string, topic?: string?}} channel
|
* @param {{id: string, name: string, topic?: string?, type: number}} channel
|
||||||
* @param {{id: string}} guild
|
* @param {{id: string}} guild
|
||||||
* @param {string?} customName
|
* @param {string?} customName
|
||||||
*/
|
*/
|
||||||
function convertNameAndTopic(channel, guild, customName) {
|
function convertNameAndTopic(channel, guild, customName) {
|
||||||
const convertedName = customName || channel.name;
|
let channelPrefix =
|
||||||
|
( channel.type === DiscordTypes.ChannelType.PublicThread ? "[⛓️] "
|
||||||
|
: channel.type === DiscordTypes.ChannelType.PrivateThread ? "[🔒⛓️] "
|
||||||
|
: channel.type === DiscordTypes.ChannelType.GuildVoice ? "[🔊] "
|
||||||
|
: "")
|
||||||
|
const chosenName = customName || (channelPrefix + channel.name);
|
||||||
const maybeTopicWithPipe = channel.topic ? ` | ${channel.topic}` : '';
|
const maybeTopicWithPipe = channel.topic ? ` | ${channel.topic}` : '';
|
||||||
const maybeTopicWithNewlines = channel.topic ? `${channel.topic}\n\n` : '';
|
const maybeTopicWithNewlines = channel.topic ? `${channel.topic}\n\n` : '';
|
||||||
const channelIDPart = `Channel ID: ${channel.id}`;
|
const channelIDPart = `Channel ID: ${channel.id}`;
|
||||||
|
@ -51,7 +56,7 @@ function convertNameAndTopic(channel, guild, customName) {
|
||||||
? `#${channel.name}${maybeTopicWithPipe}\n\n${channelIDPart}\n${guildIDPart}`
|
? `#${channel.name}${maybeTopicWithPipe}\n\n${channelIDPart}\n${guildIDPart}`
|
||||||
: `${maybeTopicWithNewlines}${channelIDPart}\n${guildIDPart}`;
|
: `${maybeTopicWithNewlines}${channelIDPart}\n${guildIDPart}`;
|
||||||
|
|
||||||
return [convertedName, convertedTopic];
|
return [chosenName, convertedTopic];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -14,28 +14,49 @@ test("channel2room: general", async t => {
|
||||||
|
|
||||||
test("convertNameAndTopic: custom name and topic", t => {
|
test("convertNameAndTopic: custom name and topic", t => {
|
||||||
t.deepEqual(
|
t.deepEqual(
|
||||||
_convertNameAndTopic({id: "123", name: "the-twilight-zone", topic: "Spooky stuff here. :ghost:"}, {id: "456"}, "hauntings"),
|
_convertNameAndTopic({id: "123", name: "the-twilight-zone", topic: "Spooky stuff here. :ghost:", type: 0}, {id: "456"}, "hauntings"),
|
||||||
["hauntings", "#the-twilight-zone | Spooky stuff here. :ghost:\n\nChannel ID: 123\nGuild ID: 456"]
|
["hauntings", "#the-twilight-zone | Spooky stuff here. :ghost:\n\nChannel ID: 123\nGuild ID: 456"]
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
test("convertNameAndTopic: custom name, no topic", t => {
|
test("convertNameAndTopic: custom name, no topic", t => {
|
||||||
t.deepEqual(
|
t.deepEqual(
|
||||||
_convertNameAndTopic({id: "123", name: "the-twilight-zone"}, {id: "456"}, "hauntings"),
|
_convertNameAndTopic({id: "123", name: "the-twilight-zone", type: 0}, {id: "456"}, "hauntings"),
|
||||||
["hauntings", "#the-twilight-zone\n\nChannel ID: 123\nGuild ID: 456"]
|
["hauntings", "#the-twilight-zone\n\nChannel ID: 123\nGuild ID: 456"]
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
test("convertNameAndTopic: original name and topic", t => {
|
test("convertNameAndTopic: original name and topic", t => {
|
||||||
t.deepEqual(
|
t.deepEqual(
|
||||||
_convertNameAndTopic({id: "123", name: "the-twilight-zone", topic: "Spooky stuff here. :ghost:"}, {id: "456"}, null),
|
_convertNameAndTopic({id: "123", name: "the-twilight-zone", topic: "Spooky stuff here. :ghost:", type: 0}, {id: "456"}, null),
|
||||||
["the-twilight-zone", "Spooky stuff here. :ghost:\n\nChannel ID: 123\nGuild ID: 456"]
|
["the-twilight-zone", "Spooky stuff here. :ghost:\n\nChannel ID: 123\nGuild ID: 456"]
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
test("convertNameAndTopic: original name, no topic", t => {
|
test("convertNameAndTopic: original name, no topic", t => {
|
||||||
t.deepEqual(
|
t.deepEqual(
|
||||||
_convertNameAndTopic({id: "123", name: "the-twilight-zone"}, {id: "456"}, null),
|
_convertNameAndTopic({id: "123", name: "the-twilight-zone", type: 0}, {id: "456"}, null),
|
||||||
["the-twilight-zone", "Channel ID: 123\nGuild ID: 456"]
|
["the-twilight-zone", "Channel ID: 123\nGuild ID: 456"]
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test("convertNameAndTopic: public thread icon", t => {
|
||||||
|
t.deepEqual(
|
||||||
|
_convertNameAndTopic({id: "123", name: "the-twilight-zone", topic: "Spooky stuff here. :ghost:", type: 11}, {id: "456"}, null),
|
||||||
|
["[⛓️] the-twilight-zone", "Spooky stuff here. :ghost:\n\nChannel ID: 123\nGuild ID: 456"]
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
test("convertNameAndTopic: private thread icon", t => {
|
||||||
|
t.deepEqual(
|
||||||
|
_convertNameAndTopic({id: "123", name: "the-twilight-zone", topic: "Spooky stuff here. :ghost:", type: 12}, {id: "456"}, null),
|
||||||
|
["[🔒⛓️] the-twilight-zone", "Spooky stuff here. :ghost:\n\nChannel ID: 123\nGuild ID: 456"]
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
test("convertNameAndTopic: voice channel icon", t => {
|
||||||
|
t.deepEqual(
|
||||||
|
_convertNameAndTopic({id: "123", name: "the-twilight-zone", topic: "Spooky stuff here. :ghost:", type: 2}, {id: "456"}, null),
|
||||||
|
["[🔊] the-twilight-zone", "Spooky stuff here. :ghost:\n\nChannel ID: 123\nGuild ID: 456"]
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
Loading…
Reference in a new issue