summaryrefslogtreecommitdiff
path: root/packages/megalodon
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-03-24 15:54:59 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-03-27 19:51:43 -0400
commit876ecb28f03ddcfee504208f1aa0255f475be999 (patch)
treeb3a4848d23fef30c3a4d56d5ac25200f3b966b2b /packages/megalodon
parentconvert notification types in mastodon API (diff)
downloadsharkey-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.ts17
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,