1
0
Fork 0

Use allowed_mentions instead of disableEveryone

This commit is contained in:
Cadence Ember 2024-03-07 13:07:10 +13:00
parent cc9e1de49e
commit 25cd8cb289
2 changed files with 330 additions and 86 deletions

View file

@ -425,9 +425,6 @@ const attachmentEmojis = new Map([
* @param {{api: import("../../matrix/api"), snow: import("snowtransfer").SnowTransfer, fetch: import("node-fetch")["default"], mxcDownloader: (mxc: string) => Promise<Buffer | undefined>}} di simple-as-nails dependency injection for the matrix API * @param {{api: import("../../matrix/api"), snow: import("snowtransfer").SnowTransfer, fetch: import("node-fetch")["default"], mxcDownloader: (mxc: string) => Promise<Buffer | undefined>}} di simple-as-nails dependency injection for the matrix API
*/ */
async function eventToMessage(event, guild, di) { async function eventToMessage(event, guild, di) {
/** @type {(DiscordTypes.RESTPostAPIWebhookWithTokenJSONBody & {files?: {name: string, file: Buffer | Readable}[]})[]} */
let messages = []
let displayName = event.sender let displayName = event.sender
let avatarURL = undefined let avatarURL = undefined
/** @type {string[]} */ /** @type {string[]} */
@ -786,11 +783,15 @@ async function eventToMessage(event, guild, di) {
// Split into 2000 character chunks // Split into 2000 character chunks
const chunks = chunk(content, 2000) const chunks = chunk(content, 2000)
messages = messages.concat(chunks.map(content => ({ /** @type {(DiscordTypes.RESTPostAPIWebhookWithTokenJSONBody & {files?: {name: string, file: Buffer | Readable}[]})[]} */
const messages = chunks.map(content => ({
content, content,
allowed_mentions: {
parse: ["users", "roles"]
},
username: displayNameShortened, username: displayNameShortened,
avatar_url: avatarURL avatar_url: avatarURL
}))) }))
if (attachments.length) { if (attachments.length) {
// If content is empty (should be the case when uploading a file) then chunk-text will create 0 messages. // If content is empty (should be the case when uploading a file) then chunk-text will create 0 messages.

View file

@ -90,7 +90,10 @@ test("event2message: body is used when there is no formatted_body", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "testing plaintext", content: "testing plaintext",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -125,7 +128,10 @@ test("event2message: any markdown in body is escaped, except strikethrough", asy
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "testing \\*\\*special\\*\\* ~~things~~ which \\_should\\_ \\*not\\* \\`trigger\\` @any <effects>, except strikethrough", content: "testing \\*\\*special\\*\\* ~~things~~ which \\_should\\_ \\*not\\* \\`trigger\\` @any <effects>, except strikethrough",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -157,7 +163,10 @@ test("event2message: links in formatted body are not broken", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "<@111604486476181504> I wonder what the midjourney text description of this photo is https://upload.wikimedia.org/wikipedia/commons/f/f3/After_gay_pride%2C_rainbow_flags_flying_along_Beach_Street_%2814853144744%29.jpg", content: "<@111604486476181504> I wonder what the midjourney text description of this photo is https://upload.wikimedia.org/wikipedia/commons/f/f3/After_gay_pride%2C_rainbow_flags_flying_along_Beach_Street_%2814853144744%29.jpg",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -187,7 +196,10 @@ test("event2message: links in plaintext body are not broken", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "I wonder what the midjourney text description of this photo is https://upload.wikimedia.org/wikipedia/commons/f/f3/After_gay_pride%2C_rainbow_flags_flying_along_Beach_Street_%2814853144744%29.jpg", content: "I wonder what the midjourney text description of this photo is https://upload.wikimedia.org/wikipedia/commons/f/f3/After_gay_pride%2C_rainbow_flags_flying_along_Beach_Street_%2814853144744%29.jpg",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -214,7 +226,10 @@ test("event2message: links in formatted body where the text & href are the same,
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "https://privatebin.net/?9111cb16f28da21b#62CKkEr6WvXZ1gQv2M6agazsA7tGYX8ZP8drETYujYZr", content: "https://privatebin.net/?9111cb16f28da21b#62CKkEr6WvXZ1gQv2M6agazsA7tGYX8ZP8drETYujYZr",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -245,7 +260,10 @@ test("event2message: basic html is converted to markdown", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "this **is** a _**test** __of___ ~~_formatting_~~", content: "this **is** a _**test** __of___ ~~_formatting_~~",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -276,7 +294,10 @@ test("event2message: spoilers work", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "this **is** a ||_test_|| of ||spoilers||", content: "this **is** a ||_test_|| of ||spoilers||",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -307,7 +328,10 @@ test("event2message: spoiler reasons work", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "\\(cw crossword spoilers you'll never believe. don't tell anybody\\) ||zoe kills a 5 letter noun at the end||", content: "\\(cw crossword spoilers you'll never believe. don't tell anybody\\) ||zoe kills a 5 letter noun at the end||",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -338,7 +362,10 @@ test("event2message: markdown syntax is escaped", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "this \\*\\*is\\*\\* an **_extreme_** \\\\\\*test\\\\\\* of", content: "this \\*\\*is\\*\\* an **_extreme_** \\\\\\*test\\\\\\* of",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -369,7 +396,10 @@ test("event2message: html lines are bridged correctly", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "paragraph one\nline _two_\nline three\n\nparagraph two\nline _two_\nline three\n\nparagraph three\n\nparagraph four\nline two\nline three\nline four\n\nparagraph five", content: "paragraph one\nline _two_\nline three\n\nparagraph two\nline _two_\nline three\n\nparagraph three\n\nparagraph four\nline two\nline three\nline four\n\nparagraph five",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -400,7 +430,10 @@ test("event2message: html lines are bridged correctly", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "line one: test test\nline two: **test** **test**\nline three: **test test**\nline four: test test\n line five", content: "line one: test test\nline two: **test** **test**\nline three: **test test**\nline four: test test\n line five",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -432,7 +465,10 @@ test("event2message: whitespace is collapsed", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "line one: test test\nline two: **test** **test**\nline three: **test test**\nline four: test test\nline five", content: "line one: test test\nline two: **test** **test**\nline three: **test test**\nline four: test test\nline five",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -465,7 +501,10 @@ test("event2message: lists are bridged correctly", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "* line one\n* line two\n* line three\n * nested one\n * nested two\n* line four", content: "* line one\n* line two\n* line three\n * nested one\n * nested two\n* line four",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -494,11 +533,17 @@ test("event2message: long messages are split", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: (("a".repeat(130) + " ").repeat(15)).slice(0, -1), content: (("a".repeat(130) + " ").repeat(15)).slice(0, -1),
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}, { }, {
username: "cadence [they]", username: "cadence [they]",
content: (("a".repeat(130) + " ").repeat(4)).slice(0, -1), content: (("a".repeat(130) + " ").repeat(4)).slice(0, -1),
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -529,7 +574,10 @@ test("event2message: code blocks work", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "preceding\n\n```\ncode block\n```\n\nfollowing `code` is inline", content: "preceding\n\n```\ncode block\n```\n\nfollowing `code` is inline",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -556,7 +604,10 @@ test("event2message: code block contents are formatted correctly and not escaped
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "```\ninput = input.replace(/(<\\/?([^ >]+)[^>]*>)?\\n(<\\/?([^ >]+)[^>]*>)?/g,\n_input_ = input = input.replace(/(<\\/?([^ >]+)[^>]*>)?\\n(<\\/?([^ >]+)[^>]*>)?/g,\n```\n\n`input = input.replace(/(<\\/?([^ >]+)[^>]*>)?\\n(<\\/?([^ >]+)[^>]*>)?/g,`", content: "```\ninput = input.replace(/(<\\/?([^ >]+)[^>]*>)?\\n(<\\/?([^ >]+)[^>]*>)?/g,\n_input_ = input = input.replace(/(<\\/?([^ >]+)[^>]*>)?\\n(<\\/?([^ >]+)[^>]*>)?/g,\n```\n\n`input = input.replace(/(<\\/?([^ >]+)[^>]*>)?\\n(<\\/?([^ >]+)[^>]*>)?/g,`",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -585,7 +636,10 @@ test("event2message: code blocks are uploaded as attachments instead if they con
content: "So if you run code like this `[inline_code.java]` it should print a markdown formatted code block", content: "So if you run code like this `[inline_code.java]` it should print a markdown formatted code block",
attachments: [{id: "0", filename: "inline_code.java"}], attachments: [{id: "0", filename: "inline_code.java"}],
pendingFiles: [{name: "inline_code.java", buffer: Buffer.from('System.out.println("```");')}], pendingFiles: [{name: "inline_code.java", buffer: Buffer.from('System.out.println("```");')}],
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -625,7 +679,10 @@ test("event2message: characters are encoded properly in code blocks", async t =>
+ '\n .map(|c| c.get(1).unwrap().as_str())' + '\n .map(|c| c.get(1).unwrap().as_str())'
+ '\n .collect::<String>();' + '\n .collect::<String>();'
)}], )}],
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -656,7 +713,10 @@ test("event2message: quotes have an appropriate amount of whitespace", async t =
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "> Chancellor of Germany Angela Merkel, on March 17, 2017: they did not shake hands\n🤨", content: "> Chancellor of Germany Angela Merkel, on March 17, 2017: they did not shake hands\n🤨",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -694,7 +754,10 @@ test("event2message: lists have appropriate line breaks", async t => {
messagesToSend: [{ messagesToSend: [{
username: "Milan", username: "Milan",
content: `i am not certain what you mean by "already exists with as discord". my goals are\n\n* bridgeing specific channels with existing matrix rooms\n * optionally maybe entire "servers"\n* offering the bridge as a public service`, content: `i am not certain what you mean by "already exists with as discord". my goals are\n\n* bridgeing specific channels with existing matrix rooms\n * optionally maybe entire "servers"\n* offering the bridge as a public service`,
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -732,7 +795,10 @@ test("event2message: ordered list start attribute works", async t => {
messagesToSend: [{ messagesToSend: [{
username: "Milan", username: "Milan",
content: `i am not certain what you mean by "already exists with as discord". my goals are\n\n1. bridgeing specific channels with existing matrix rooms\n 2. optionally maybe entire "servers"\n2. offering the bridge as a public service`, content: `i am not certain what you mean by "already exists with as discord". my goals are\n\n1. bridgeing specific channels with existing matrix rooms\n 2. optionally maybe entire "servers"\n2. offering the bridge as a public service`,
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -761,7 +827,10 @@ test("event2message: m.emote plaintext works", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "\\* cadence \\[they\\] tests an m.emote message", content: "\\* cadence \\[they\\] tests an m.emote message",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -792,7 +861,10 @@ test("event2message: m.emote markdown syntax is escaped", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "\\* cadence \\[they\\] shows you \\*\\*her\\*\\* **_extreme_** \\\\\\*test\\\\\\* of", content: "\\* cadence \\[they\\] shows you \\*\\*her\\*\\* **_extreme_** \\\\\\*test\\\\\\* of",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -842,7 +914,10 @@ test("event2message: rich reply to a sim user", async t => {
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504>:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504>:"
+ "\n> Slow news day." + "\n> Slow news day."
+ "\nTesting this reply, ignore", + "\nTesting this reply, ignore",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -911,7 +986,10 @@ test("event2message: rich reply to a rich reply to a multi-line message should c
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:"
+ "\n> I just checked in a fix that will probably work..." + "\n> I just checked in a fix that will probably work..."
+ "\nwill try later (tomorrow if I don't forgor)", + "\nwill try later (tomorrow if I don't forgor)",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -988,7 +1066,10 @@ test("event2message: rich reply to an already-edited message will quote the new
content: "> <:L1:1144820033948762203><:L2:1144820084079087647><@111604486476181504>:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647><@111604486476181504>:"
+ "\n> this is the new content. heya!" + "\n> this is the new content. heya!"
+ "\nhiiiii....", + "\nhiiiii....",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1038,7 +1119,10 @@ test("event2message: rich reply to a missing event will quote from formatted_bod
username: "cadence [they]", username: "cadence [they]",
content: "> But who sees the seashells she sells sitting..." content: "> But who sees the seashells she sells sitting..."
+ "\nWhat a tongue-bender...", + "\nWhat a tongue-bender...",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1084,7 +1168,10 @@ test("event2message: rich reply to a missing event without formatted_body will u
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "Testing this reply, ignore", content: "Testing this reply, ignore",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1132,7 +1219,10 @@ test("event2message: rich reply to a missing event and no reply fallback will no
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "Testing this reply, ignore.", content: "Testing this reply, ignore.",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1181,7 +1271,10 @@ test("event2message: should avoid using blockquote contents as reply preview in
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504>:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504>:"
+ "\n> that can't be true! there's no way :o" + "\n> that can't be true! there's no way :o"
+ "\nI agree!", + "\nI agree!",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1267,7 +1360,10 @@ test("event2message: should include a reply preview when message ends with a blo
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**_ooye_cookie**:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**_ooye_cookie**:"
+ "\n> https://tootsuite.net/Warp-Gate2.gif tanget: @..." + "\n> https://tootsuite.net/Warp-Gate2.gif tanget: @..."
+ "\naichmophobia", + "\naichmophobia",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1348,7 +1444,10 @@ test("event2message: should include a reply preview when replying to a descripti
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/497161350934560778/1162625810109317170 <@1109360903096369153>:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/497161350934560778/1162625810109317170 <@1109360903096369153>:"
+ "\n> It looks like this queue has ended." + "\n> It looks like this queue has ended."
+ `\nso you're saying on matrix side I would have to edit ^this^ to add "Timed out" before the blockquote?`, + `\nso you're saying on matrix side I would have to edit ^this^ to add "Timed out" before the blockquote?`,
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1398,7 +1497,10 @@ test("event2message: entities are not escaped in main message or reply preview",
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:"
+ "\n> Testing? \"':.`[]&things" + "\n> Testing? \"':.`[]&things"
+ "\n_Testing?_ \"':.\\`\\[\\]&things", + "\n_Testing?_ \"':.\\`\\[\\]&things",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1445,7 +1547,10 @@ test("event2message: reply preview converts emoji formatting when replying to a
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:"
+ "\n> <:hippo:230201364309868544>" + "\n> <:hippo:230201364309868544>"
+ "\nreply", + "\nreply",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1492,7 +1597,10 @@ test("event2message: reply preview can guess custom emoji based on the name if i
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:"
+ "\n> <:hippo:230201364309868544>" + "\n> <:hippo:230201364309868544>"
+ "\nreply", + "\nreply",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1539,7 +1647,10 @@ test("event2message: reply preview uses emoji title text when replying to an unk
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:"
+ "\n> :svkftngur_gkdne:" + "\n> :svkftngur_gkdne:"
+ "\nreply", + "\nreply",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1586,7 +1697,10 @@ test("event2message: reply preview ignores garbage image", async t => {
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**:"
+ "\n> I am having a nice day" + "\n> I am having a nice day"
+ "\nreply", + "\nreply",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1632,7 +1746,10 @@ test("event2message: reply to empty message doesn't show an extra line or anythi
username: "cadence [they]", username: "cadence [they]",
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**cadence [they]**"
+ "\nreply", + "\nreply",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1712,7 +1829,10 @@ test("event2message: editing a rich reply to a sim user", async t => {
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504>:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504>:"
+ "\n> Slow news day." + "\n> Slow news day."
+ "\nEditing this reply, which is also a test", + "\nEditing this reply, which is also a test",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
} }
}], }],
messagesToSend: [] messagesToSend: []
@ -1765,7 +1885,10 @@ test("event2message: editing a plaintext body message", async t => {
message: { message: {
username: "cadence [they]", username: "cadence [they]",
content: "well, I guess it's no longer brand new... it's existed for mere seconds...", content: "well, I guess it's no longer brand new... it's existed for mere seconds...",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
} }
}], }],
messagesToSend: [] messagesToSend: []
@ -1817,13 +1940,19 @@ test("event2message: editing a plaintext message to be longer", async t => {
message: { message: {
content: "aaaaaaaaa ".repeat(198) + "well, I guess it's", content: "aaaaaaaaa ".repeat(198) + "well, I guess it's",
username: "cadence [they]", username: "cadence [they]",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
} }
}], }],
messagesToSend: [{ messagesToSend: [{
content: "no longer brand new... it's existed for mere seconds..." + ("aaaaaaaaa ".repeat(20)).slice(0, -1), content: "no longer brand new... it's existed for mere seconds..." + ("aaaaaaaaa ".repeat(20)).slice(0, -1),
username: "cadence [they]", username: "cadence [they]",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -1873,7 +2002,10 @@ test("event2message: editing a plaintext message to be shorter", async t => {
message: { message: {
username: "cadence [they]", username: "cadence [they]",
content: "well, I guess it's no longer brand new... it's existed for mere seconds...", content: "well, I guess it's no longer brand new... it's existed for mere seconds...",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
} }
}], }],
messagesToSend: [] messagesToSend: []
@ -1931,7 +2063,10 @@ test("event2message: editing a formatted body message", async t => {
message: { message: {
username: "cadence [they]", username: "cadence [they]",
content: "**well, I guess it's no longer brand new... it's existed for mere seconds...**", content: "**well, I guess it's no longer brand new... it's existed for mere seconds...**",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
} }
}], }],
messagesToSend: [] messagesToSend: []
@ -1985,7 +2120,10 @@ test("event2message: rich reply to a matrix user's long message with formatting"
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 Ⓜ️**cadence [they]**:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 Ⓜ️**cadence [they]**:"
+ "\n> i should have a little happy test list bold em..." + "\n> i should have a little happy test list bold em..."
+ "\n**no you can't!!!**", + "\n**no you can't!!!**",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2044,7 +2182,10 @@ test("event2message: rich reply to an image", async t => {
username: "cadence [they]", username: "cadence [they]",
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504> 🖼️" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504> 🖼️"
+ "\nCaught in 8K UHD VR QLED Epic Edition", + "\nCaught in 8K UHD VR QLED Epic Edition",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2097,7 +2238,10 @@ test("event2message: rich reply to a spoiler should ensure the spoiler is hidden
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504>:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 <@111604486476181504>:"
+ "\n> [spoiler] cw crossword spoilers you'll never..." + "\n> [spoiler] cw crossword spoilers you'll never..."
+ "\nomg NO WAY!!", + "\nomg NO WAY!!",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2149,7 +2293,10 @@ test("event2message: with layered rich replies, the preview should only be the r
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 Ⓜ️**cadence [they]**:" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>https://discord.com/channels/112760669178241024/687028734322147344/1144865310588014633 Ⓜ️**cadence [they]**:"
+ "\n> two" + "\n> two"
+ "\nthree", + "\nthree",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/azCAhThKTojXSZJRoWwZmhvU",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2203,7 +2350,10 @@ test("event2message: if event is a reply and starts with a quote, they should be
+ "\n> i have a feeling that clients are meant to strip..." + "\n> i have a feeling that clients are meant to strip..."
+ "\n" + "\n"
+ "\n> To strip the fallback on the `body`, the client should iterate over each line of the string, removing any lines that start with the fallback prefix (\"> “, including the space, without quotes) and stopping when a line is encountered without the prefix. This prefix is known as the “fallback prefix sequence”.", + "\n> To strip the fallback on the `body`, the client should iterate over each line of the string, removing any lines that start with the fallback prefix (\"> “, including the space, without quotes) and stopping when a line is encountered without the prefix. This prefix is known as the “fallback prefix sequence”.",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/syndicated.gay/ZkBUPXCiXTjdJvONpLJmcbKP" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/syndicated.gay/ZkBUPXCiXTjdJvONpLJmcbKP",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2258,7 +2408,10 @@ test("event2message: rich reply to a deleted event", async t => {
username: "Ampflower 🌺", username: "Ampflower 🌺",
content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**Ampflower 🌺** (in reply to a deleted message)" content: "> <:L1:1144820033948762203><:L2:1144820084079087647>Ⓜ️**Ampflower 🌺** (in reply to a deleted message)"
+ "\nHuh it did the same thing here too", + "\nHuh it did the same thing here too",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/PRfhXYBTOalvgQYtmCLeUXko" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/PRfhXYBTOalvgQYtmCLeUXko",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2287,7 +2440,10 @@ test("event2message: raw mentioning discord users in plaintext body works", asyn
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "<@114147806469554185> what do you think?", content: "<@114147806469554185> what do you think?",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2318,7 +2474,10 @@ test("event2message: raw mentioning discord users in formatted body works", asyn
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "<@114147806469554185> what do you think?", content: "<@114147806469554185> what do you think?",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2349,7 +2508,10 @@ test("event2message: mentioning discord users works", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "I'm just <@114147806469554185> testing mentions", content: "I'm just <@114147806469554185> testing mentions",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2380,7 +2542,10 @@ test("event2message: mentioning discord users works when URL encoded", async t =
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "<@771520384671416320> a sample message", content: "<@771520384671416320> a sample message",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2411,7 +2576,10 @@ test("event2message: mentioning PK discord users works", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "I'm just **@Azalea &flwr; 🌺** (<@196188877885538304>) testing mentions", content: "I'm just **@Azalea &flwr; 🌺** (<@196188877885538304>) testing mentions",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2442,7 +2610,10 @@ test("event2message: mentioning matrix users works", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "I'm just [@▲](<https://matrix.to/#/@rnl:cadence.moe>) testing mentions", content: "I'm just [@▲](<https://matrix.to/#/@rnl:cadence.moe>) testing mentions",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2469,7 +2640,10 @@ test("event2message: mentioning matrix users works even when Element disambiguat
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "[@unascribed](<https://matrix.to/#/@unascribed:sleeping.town>) if you want to run some experimental software, `11864f80cf` branch of OOYE has _vastly_ improved handling of PluralKit users. feel free to try it out, if you find bugs I'd appreciate you letting me know (just tag me at the place in chat where something went wrong)", content: "[@unascribed](<https://matrix.to/#/@unascribed:sleeping.town>) if you want to run some experimental software, `11864f80cf` branch of OOYE has _vastly_ improved handling of PluralKit users. feel free to try it out, if you find bugs I'd appreciate you letting me know (just tag me at the place in chat where something went wrong)",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2500,7 +2674,10 @@ test("event2message: mentioning bridged rooms works", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "I'm just <#1100319550446252084> testing channel mentions", content: "I'm just <#1100319550446252084> testing channel mentions",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2529,7 +2706,10 @@ test("event2message: mentioning bridged rooms works (plaintext body)", async t =
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "I'm just <#1100319550446252084> testing channel mentions", content: "I'm just <#1100319550446252084> testing channel mentions",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2558,7 +2738,10 @@ test("event2message: mentioning known bridged events works (plaintext body)", as
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "it was uploaded earlier in https://discord.com/channels/497159726455455754/497161350934560778/1141619794500649020, take a look!", content: "it was uploaded earlier in https://discord.com/channels/497159726455455754/497161350934560778/1141619794500649020, take a look!",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2589,7 +2772,10 @@ test("event2message: mentioning known bridged events works (partially formatted
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "it was uploaded earlier in https://discord.com/channels/497159726455455754/497161350934560778/1141619794500649020", content: "it was uploaded earlier in https://discord.com/channels/497159726455455754/497161350934560778/1141619794500649020",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2620,7 +2806,10 @@ test("event2message: mentioning known bridged events works (formatted body)", as
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "it was uploaded earlier in https://discord.com/channels/497159726455455754/497161350934560778/1141619794500649020", content: "it was uploaded earlier in https://discord.com/channels/497159726455455754/497161350934560778/1141619794500649020",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2663,7 +2852,10 @@ test("event2message: mentioning unknown bridged events can approximate with time
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "it was uploaded years ago in https://discord.com/channels/497159726455455754/497161350934560778/753895613661184000", content: "it was uploaded years ago in https://discord.com/channels/497159726455455754/497161350934560778/753895613661184000",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2705,7 +2897,10 @@ test("event2message: mentioning events falls back to original link when server d
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "it was uploaded years ago in [amanda-spam](<https://matrix.to/#/!CzvdIdUQXgUjDVKxeU:cadence.moe/$zpzx6ABetMl8BrpsFbdZ7AefVU1Y_-t97bJRJM2JyW1?via=cadence.moe>)", content: "it was uploaded years ago in [amanda-spam](<https://matrix.to/#/!CzvdIdUQXgUjDVKxeU:cadence.moe/$zpzx6ABetMl8BrpsFbdZ7AefVU1Y_-t97bJRJM2JyW1?via=cadence.moe>)",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2746,7 +2941,10 @@ test("event2message: mentioning events falls back to original link when the chan
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "it was uploaded years ago in [ex-room-doesnt-exist-any-more](<https://matrix.to/#/!tnedrGVYKFNUdnegvf:tchncs.de/$zpzx6ABetMl8BrpsFbdZ7AefVU1Y_-t97bJRJM2JyW2?via=tchncs.de>)", content: "it was uploaded years ago in [ex-room-doesnt-exist-any-more](<https://matrix.to/#/!tnedrGVYKFNUdnegvf:tchncs.de/$zpzx6ABetMl8BrpsFbdZ7AefVU1Y_-t97bJRJM2JyW2?via=tchncs.de>)",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2773,7 +2971,10 @@ test("event2message: link to event in an unknown room (href link)", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "ah yeah, here's where the bug was reported: <https://matrix.to/#/!QtykxKocfZaZOUrTwp:matrix.org/$1542477546853947KGhZL:matrix.org>", content: "ah yeah, here's where the bug was reported: <https://matrix.to/#/!QtykxKocfZaZOUrTwp:matrix.org/$1542477546853947KGhZL:matrix.org>",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2800,7 +3001,10 @@ test("event2message: link to event in an unknown room (bare link)", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "PK API failure, tho idk how you'd handle that <https://matrix.to/#/!SeYQChwXBnZaQLoZfI:sleeping.town/$AAPZ56B2P7TfROYPTtuoJjgvXmaBM11NoNceM8GCJ7s>", content: "PK API failure, tho idk how you'd handle that <https://matrix.to/#/!SeYQChwXBnZaQLoZfI:sleeping.town/$AAPZ56B2P7TfROYPTtuoJjgvXmaBM11NoNceM8GCJ7s>",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2825,7 +3029,10 @@ test("event2message: link to event in an unknown room (plaintext)", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "ah yeah, here's where the bug was reported: <https://matrix.to/#/!QtykxKocfZaZOUrTwp:matrix.org/$1542477546853947KGhZL:matrix.org>", content: "ah yeah, here's where the bug was reported: <https://matrix.to/#/!QtykxKocfZaZOUrTwp:matrix.org/$1542477546853947KGhZL:matrix.org>",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2856,7 +3063,10 @@ test("event2message: colon after mentions is stripped", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "<@114147806469554185> hey, I'm just [@▲](<https://matrix.to/#/@rnl:cadence.moe>) testing mentions", content: "<@114147806469554185> hey, I'm just [@▲](<https://matrix.to/#/@rnl:cadence.moe>) testing mentions",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2898,7 +3108,10 @@ test("event2message: caches the member if the member is not known", async t => {
messagesToSend: [{ messagesToSend: [{
username: "should_be_newly_cached", username: "should_be_newly_cached",
content: "testing the member state cache", content: "testing the member state cache",
avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/this_is_the_avatar" avatar_url: "https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/this_is_the_avatar",
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2943,7 +3156,10 @@ test("event2message: skips caching the member if the member does not exist, some
messagesToSend: [{ messagesToSend: [{
username: "not_real", username: "not_real",
content: "should honestly never happen", content: "should honestly never happen",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -2987,7 +3203,10 @@ test("event2message: overly long usernames are shifted into the message content"
messagesToSend: [{ messagesToSend: [{
username: "I am BLACK I am WHITE I am SHORT I am LONG I am EVERYTHING YOU THINK IS", username: "I am BLACK I am WHITE I am SHORT I am LONG I am EVERYTHING YOU THINK IS",
content: "**IMPORTANT and I DON'T MATTER**\ntesting the member state cache", content: "**IMPORTANT and I DON'T MATTER**\ntesting the member state cache",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -3020,7 +3239,10 @@ test("event2message: overly long usernames are not treated specially when the ms
messagesToSend: [{ messagesToSend: [{
username: "I am BLACK I am WHITE I am SHORT I am LONG I am EVERYTHING YOU THINK IS", username: "I am BLACK I am WHITE I am SHORT I am LONG I am EVERYTHING YOU THINK IS",
content: "\\* I am BLACK I am WHITE I am SHORT I am LONG I am EVERYTHING YOU THINK IS IMPORTANT and I DON'T MATTER looks at the start of the message", content: "\\* I am BLACK I am WHITE I am SHORT I am LONG I am EVERYTHING YOU THINK IS IMPORTANT and I DON'T MATTER looks at the start of the message",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -3319,7 +3541,10 @@ test("event2message: static emojis work", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "<:hippo:230201364309868544>", content: "<:hippo:230201364309868544>",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -3346,7 +3571,10 @@ test("event2message: animated emojis work", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "<a:hipposcope:393635038903926784>", content: "<a:hipposcope:393635038903926784>",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -3373,7 +3601,10 @@ test("event2message: unknown emojis in the middle are linked", async t => {
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "a [:ms_robot_grin:](https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/RLMgJGfgTPjIQtvvWZsYjhjy) b", content: "a [:ms_robot_grin:](https://matrix.cadence.moe/_matrix/media/r0/download/cadence.moe/RLMgJGfgTPjIQtvvWZsYjhjy) b",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}] }]
} }
) )
@ -3419,7 +3650,10 @@ test("event2message: guessed @mentions in plaintext may join members to mention"
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "hey <@321876634777218072>, what food would you like to order?", content: "hey <@321876634777218072>, what food would you like to order?",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}], }],
ensureJoined: [subtext.user] ensureJoined: [subtext.user]
} }
@ -3469,7 +3703,10 @@ test("event2message: guessed @mentions in formatted body may join members to men
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "**_HEY <@321876634777218072>, WHAT FOOD WOULD YOU LIKE TO ORDER??_**", content: "**_HEY <@321876634777218072>, WHAT FOOD WOULD YOU LIKE TO ORDER??_**",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}], }],
ensureJoined: [subtext.user] ensureJoined: [subtext.user]
} }
@ -3509,7 +3746,10 @@ test("event2message: guessed @mentions feature will not activate on links or cod
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "in link [view timeline](https://example.com/social/@subtext) in autolink https://example.com/social/@subtext in pre-code```\n@subtext\n```", content: "in link [view timeline](https://example.com/social/@subtext) in autolink https://example.com/social/@subtext in pre-code```\n@subtext\n```",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}], }],
ensureJoined: [] ensureJoined: []
} }
@ -3536,7 +3776,10 @@ test("event2message: guessed @mentions work with other matrix bridge old users",
messagesToSend: [{ messagesToSend: [{
username: "cadence [they]", username: "cadence [they]",
content: "<@114147806469554185> <@176943908762006200> back me up on this sentiment, if not necessarily the phrasing", content: "<@114147806469554185> <@176943908762006200> back me up on this sentiment, if not necessarily the phrasing",
avatar_url: undefined avatar_url: undefined,
allowed_mentions: {
parse: ["users", "roles"]
}
}], }],
ensureJoined: [] // we already think it worked on Matrix side due to the pill, so no need for the OOYE sim user to join the room to indicate success. ensureJoined: [] // we already think it worked on Matrix side due to the pill, so no need for the OOYE sim user to join the room to indicate success.
} }