diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-03-24 15:54:59 -0400 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-03-27 19:51:43 -0400 |
| commit | 876ecb28f03ddcfee504208f1aa0255f475be999 (patch) | |
| tree | b3a4848d23fef30c3a4d56d5ac25200f3b966b2b /packages/megalodon | |
| parent | convert notification types in mastodon API (diff) | |
| download | sharkey-876ecb28f03ddcfee504208f1aa0255f475be999.tar.gz sharkey-876ecb28f03ddcfee504208f1aa0255f475be999.tar.bz2 sharkey-876ecb28f03ddcfee504208f1aa0255f475be999.zip | |
strip "@." from local reaction names
Diffstat (limited to 'packages/megalodon')
| -rw-r--r-- | packages/megalodon/src/misskey/api_client.ts | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/packages/megalodon/src/misskey/api_client.ts b/packages/megalodon/src/misskey/api_client.ts index 6dfa59f132..4d97ae497c 100644 --- a/packages/megalodon/src/misskey/api_client.ts +++ b/packages/megalodon/src/misskey/api_client.ts @@ -340,8 +340,21 @@ namespace MisskeyAPI { return Object.entries(r).map(([key, count]) => { const me = myReaction != null && key === myReaction; - // Translate the emoji name - "r" mapping includes a leading/trailing ":" - const [,name] = key.match(/^:([^@:]+(?:@[^:]+)?):$/) ?? [null,key]; + // Name is equal to the key for native emoji reactions, and as a fallback. + let name = key; + + // Custom emoji have a leading / trailing ":", which we need to remove. + const match = key.match(/^:([^@:]+)(@[^:]+)?:$/); + if (match) { + const [, prefix, host] = match; + + // Local custom emoji end in "@.", which we need to remove. + if (host && host !== '@.') { + name = prefix + host; + } else { + name = prefix; + } + } return { count, |